[libdispatch-dev] [PATCH 03/17] move atomic builtin detections to separate autoconf macro

Paolo Bonzini bonzini at gnu.org
Sun Oct 18 08:04:03 PDT 2009


Same as above...
---
 configure.ac |   19 +------------------
 m4/atomic.m4 |   21 +++++++++++++++++++++
 2 files changed, 22 insertions(+), 18 deletions(-)
 create mode 100644 m4/atomic.m4

diff --git a/configure.ac b/configure.ac
index 90d13d0..db7cade 100644
--- a/configure.ac
+++ b/configure.ac
@@ -109,24 +109,7 @@ AC_PATH_PROGS(MIG, mig)
 
 AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
 
-#
-# This is a bit subtle: on i386 systems without at least -march=i486 defined,
-# certain built-in atomics fall back to depending on undefined symbols if
-# their return values are used.
-#
-AC_CACHE_CHECK([for gcc atomic builtins],[dispatch_cv_atomic],
-[AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[
-int i, x =0;
-i = __sync_add_and_fetch(&x,1);
-return x;]])],[dispatch_cv_atomic=yes],
-  [saveCFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -march=i486"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[
-  int i, x =0;
-  i = __sync_add_and_fetch(&x,1);
-  return x;]])],[CFLAGS="$saveCFLAGS"
-dispatch_cv_atomic="-march=i486"
-])])])
+DISPATCH_C_ATOMIC_BUILTINS
 
 case $dispatch_cv_atomic in
   yes) ;;
diff --git a/m4/atomic.m4 b/m4/atomic.m4
new file mode 100644
index 0000000..ba85004
--- /dev/null
+++ b/m4/atomic.m4
@@ -0,0 +1,21 @@
+AC_DEFUN([DISPATCH_C_ATOMIC_BUILTINS], [
+#
+# This is a bit subtle: on i386 systems without at least -march=i486 defined,
+# certain built-in atomics fall back to depending on undefined symbols if
+# their return values are used.
+#
+AC_CACHE_CHECK([for gcc atomic builtins],[dispatch_cv_atomic],
+[AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[
+int i, x =0;
+i = __sync_add_and_fetch(&x,1);
+return x;]])],[dispatch_cv_atomic=yes],
+  [saveCFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -march=i486"
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[
+  int i, x =0;
+  i = __sync_add_and_fetch(&x,1);
+  return x;]])],[CFLAGS="$saveCFLAGS"
+dispatch_cv_atomic="-march=i486"
+])])])
+
+])
-- 
1.6.2.5





More information about the libdispatch-dev mailing list