From 8c2e299b84524b5f3f732afa32382bb6e70ca660 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 8 Aug 2016 23:34:32 +0200 Subject: 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 --- wscript | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wscript b/wscript index a18df6f581..4c49caf4b2 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', -- cgit v1.2.3