diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2016-08-08 23:34:32 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-08-09 17:09:29 +0200 |
commit | 8c2e299b84524b5f3f732afa32382bb6e70ca660 (patch) | |
tree | 1b373bdb3dc7f29d0b68e7461c16f08c8e47bb80 | |
parent | 469666b75bdf336f6c263faa313d46f5684cc577 (diff) | |
download | mpv-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-- | wscript | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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', |