summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@chromium.org>2018-04-05 09:33:09 +0800
committerMatt Turner <mattst88@gmail.com>2018-05-07 10:14:53 -0700
commit54ba73ef102f7b9085922686bb31719539e0dc3c (patch)
tree51044bfaf20d574880c3ff833f9c89dc8f3aa7d9 /configure.ac
parent8b519075eac86a4b2187020f1f54c5e5b979b40d (diff)
configure.ac/meson.build: Fix -latomic test
When compiling with LLVM 6.0 on x86 (32-bit) for Android, the test fails to detect that -latomic is actually required, as the atomic call is inlined. In the code itself (src/util/disk_cache.c), we see this pattern: p_atomic_add(cache->size, - (uint64_t)size); where cache->size is an uint64_t *, and results in the following link time error without -latomic: src/util/disk_cache.c:628: error: undefined reference to '__atomic_fetch_add_8' Fix the configure/meson test to replicate this pattern, which then correctly realizes the need for -latomic. Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac6
1 files changed, 4 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index f1fbdcc6c7c..c0fbfe94135 100644
--- a/configure.ac
+++ b/configure.ac
@@ -445,9 +445,11 @@ if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" = x1; then
AC_MSG_CHECKING(whether -latomic is needed)
AC_LINK_IFELSE([AC_LANG_SOURCE([[
#include <stdint.h>
- uint64_t v;
+ struct {
+ uint64_t *v;
+ } x;
int main() {
- return (int)__atomic_load_n(&v, __ATOMIC_ACQUIRE);
+ return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE);
}]])], GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC=no, GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC=yes)
AC_MSG_RESULT($GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC)
if test "x$GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC" = xyes; then