From 996edb0c46356d8a326f886b91a77a6af9a2de3e Mon Sep 17 00:00:00 2001 From: Antoine Jacoutot Date: Wed, 28 Aug 2013 09:35:27 +0200 Subject: [PATCH] fix atomic ops detection AC_TRY_LINK should be used instead of AC_TRY_COMPILE because the code will compile everywhere, either producing ``atomic'' code, or an external reference to __sync_bool_compare_and_swap. https://bugzilla.gnome.org/show_bug.cgi?id=706958 --- configure.ac | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 826204eaf..3c2e142b7 100644 --- a/configure.ac +++ b/configure.ac @@ -2454,7 +2454,7 @@ AC_CACHE_CHECK([for lock-free atomic intrinsics], glib_cv_g_atomic_lock_free, [ glib_cv_g_atomic_lock_free=yes ;; *) - AC_TRY_COMPILE([], + AC_TRY_LINK([], [volatile int atomic = 2;\ __sync_bool_compare_and_swap (&atomic, 2, 3);], [glib_cv_g_atomic_lock_free=yes], @@ -2462,7 +2462,7 @@ AC_CACHE_CHECK([for lock-free atomic intrinsics], glib_cv_g_atomic_lock_free, [ if test "$glib_cv_g_atomic_lock_free" = "no"; then SAVE_CFLAGS="${CFLAGS}" CFLAGS="-march=i486" - AC_TRY_COMPILE([], + AC_TRY_LINK([], [volatile int atomic = 2;\ __sync_bool_compare_and_swap (&atomic, 2, 3);], [AC_MSG_ERROR([GLib must be build with -march=i486 or later.])], @@ -2480,7 +2480,7 @@ case $host in # Some compilers support atomic operations but do not define # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, like clang if test x"$glib_cv_g_atomic_lock_free" = xyes; then - AC_TRY_COMPILE([], + AC_TRY_LINK([], [__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;], [], [AC_DEFINE(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, 1, [ compiler supports atomic operations])])