diff --git a/package/mpv/0002-wscript-improve-stdatomic-check.patch b/package/mpv/0002-wscript-improve-stdatomic-check.patch new file mode 100644 index 0000000000..c2a307e9ab --- /dev/null +++ b/package/mpv/0002-wscript-improve-stdatomic-check.patch @@ -0,0 +1,47 @@ +From 5a635a0066b10d2ba25e0ce78cc57b2be619371c Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Mon, 8 Aug 2016 23:34:32 +0200 +Subject: [PATCH] wscript: improve stdatomic check + +The current stdatomic check verifies the availability of the function by +calling atomic_load(). It also uses this test to check if linking +against libatomic is needed or not. + +Unfortunately, on specific architectures (namely SPARC), using +atomic_load() does *not* require linking against libatomic, while other +atomic operations do. Due to this, mpv's wscript concludes that +stdatomic is available, and that linking against libatomic is not +needed, causing the following link failure: + +[190/190] Linking build/mpv +audio/out/ao.c.13.o: In function `ao_query_and_reset_events': +/home/peko/autobuild/instance-0/output/build/mpv-0.18.1/build/../audio/out/ao.c:399: undefined reference to `__atomic_fetch_and_4' + +In order to fix this, the stdatomic check is adjusted to call +atomic_fetch_add() instead, which does require libatomic. Thanks to +this, the wscript realizes that linking against libatomic is needed, and +the build works fine. + +Signed-off-by: Thomas Petazzoni +--- +Submitted upstream: https://github.com/mpv-player/mpv/pull/3403 + + wscript | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/wscript b/wscript +index a18df6f..4c49caf 100644 +--- a/wscript ++++ b/wscript +@@ -154,7 +154,7 @@ main_dependencies = [ + 'func': check_libs(['atomic'], + check_statement('stdatomic.h', + 'atomic_int_least64_t test = ATOMIC_VAR_INIT(123);' +- 'int test2 = atomic_load(&test)')) ++ 'atomic_fetch_add(&test, 1)')) + }, { + 'name': 'atomic-builtins', + 'desc': 'compiler support for __atomic built-ins', +-- +2.7.4 +