48 lines
1.8 KiB
Diff
48 lines
1.8 KiB
Diff
From 5a635a0066b10d2ba25e0ce78cc57b2be619371c Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
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 <thomas.petazzoni@free-electrons.com>
|
|
---
|
|
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
|
|
|