summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-08-08 23:34:32 +0200
committerwm4 <wm4@nowhere>2016-08-09 17:09:29 +0200
commit8c2e299b84524b5f3f732afa32382bb6e70ca660 (patch)
tree1b373bdb3dc7f29d0b68e7461c16f08c8e47bb80
parent469666b75bdf336f6c263faa313d46f5684cc577 (diff)
downloadmpv-8c2e299b84524b5f3f732afa32382bb6e70ca660.tar.bz2
mpv-8c2e299b84524b5f3f732afa32382bb6e70ca660.tar.xz
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 <thomas.petazzoni@free-electrons.com>
-rw-r--r--wscript2
1 files changed, 1 insertions, 1 deletions
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',