[glib] fix atomic ops detection



commit 996edb0c46356d8a326f886b91a77a6af9a2de3e
Author: Antoine Jacoutot <antoine mtier org>
Date:   Wed Aug 28 09:35:27 2013 +0200

    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 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 826204e..3c2e142 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])])


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]