]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add explicit check for libatomic
authorOndřej Surý <ondrej@sury.org>
Fri, 1 Mar 2019 09:10:17 +0000 (10:10 +0100)
committerEvan Hunt <each@isc.org>
Tue, 5 Mar 2019 23:24:04 +0000 (15:24 -0800)
(cherry picked from commit fcade0610fbfc888b324e46cb869cb3c9942c67a)

configure
configure.ac

index 7a4651ead1c50b288de114e51a28003840f7e92d..851f7203ab25ce26814ec25ce01d6b6d0f70e909 100755 (executable)
--- a/configure
+++ b/configure
@@ -17958,9 +17958,33 @@ if ac_fn_c_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 else
+  ISC_ATOMIC_LIBS="-latomic"
+        save_LIBS="$LIBS"
+        LIBS="$LIBS $ISC_ATOMIC_LIBS"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdatomic.h>
+int
+main ()
+{
+atomic_int_fast64_t val = 0; atomic_fetch_add_explicit(&val, 1, memory_order_relaxed);
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-        ISC_ATOMIC_LIBS="-latomic"
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "libatomic needed, but linking with -latomic failed, please fix your toolchain.
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        LIBS="$save_LIBS"
 
 fi
 rm -f core conftest.err conftest.$ac_objext \
@@ -17969,7 +17993,7 @@ rm -f core conftest.err conftest.$ac_objext \
 else
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "stdatomic.h header found, but compilation failed, fix your toolchaing.
+as_fn_error $? "stdatomic.h header found, but compilation failed, please fix your toolchain.
 See \`config.log' for more details" "$LINENO" 5; }
 
 fi
@@ -18013,9 +18037,33 @@ if ac_fn_c_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 else
+  ISC_ATOMIC_LIBS="-latomic"
+        save_LIBS="$LIBS"
+        LIBS="$LIBS $ISC_ATOMIC_LIBS"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <inttypes.h>
+int
+main ()
+{
+int64_t val = 0; __atomic_fetch_add(&val, 1, __ATOMIC_RELAXED);
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-        ISC_ATOMIC_LIBS="-latomic"
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "libatomic needed, but linking with -latomic failed, please fix your toolchain.
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        LIBS="$save_LIBS"
 
 fi
 rm -f core conftest.err conftest.$ac_objext \
index 5b11dad987d3c8f4736c2c36f642f95f083605fa..34af113a3f637cbc7f1cfaa5a0beaf84775d703e 100644 (file)
@@ -1939,11 +1939,20 @@ AC_CHECK_HEADERS(
           [[atomic_int_fast64_t val = 0; atomic_fetch_add_explicit(&val, 1, memory_order_relaxed);]]
         )],
        [AC_MSG_RESULT([no])],
-       [AC_MSG_RESULT([yes])
-        ISC_ATOMIC_LIBS="-latomic"
+       [ISC_ATOMIC_LIBS="-latomic"
+        save_LIBS="$LIBS"
+        LIBS="$LIBS $ISC_ATOMIC_LIBS"
+        AC_LINK_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[#include <stdatomic.h>]],
+             [[atomic_int_fast64_t val = 0; atomic_fetch_add_explicit(&val, 1, memory_order_relaxed);]]
+           )],
+          [AC_MSG_RESULT([yes])],
+          [AC_MSG_FAILURE([libatomic needed, but linking with -latomic failed, please fix your toolchain.])])
+        LIBS="$save_LIBS"
        ])
      ],
-     [AC_MSG_FAILURE([stdatomic.h header found, but compilation failed, fix your toolchaing.])]
+     [AC_MSG_FAILURE([stdatomic.h header found, but compilation failed, please fix your toolchain.])]
    )],
   [AC_MSG_CHECKING([for memory model aware atomic operations])
    AC_COMPILE_IFELSE(
@@ -1960,8 +1969,17 @@ AC_CHECK_HEADERS(
           [[int64_t val = 0; __atomic_fetch_add(&val, 1, __ATOMIC_RELAXED);]]
         )],
        [AC_MSG_RESULT([no])],
-       [AC_MSG_RESULT([yes])
-        ISC_ATOMIC_LIBS="-latomic"
+       [ISC_ATOMIC_LIBS="-latomic"
+        save_LIBS="$LIBS"
+        LIBS="$LIBS $ISC_ATOMIC_LIBS"
+        AC_LINK_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[#include <inttypes.h>]],
+             [[int64_t val = 0; __atomic_fetch_add(&val, 1, __ATOMIC_RELAXED);]]
+           )],
+          [AC_MSG_RESULT([yes])],
+          [AC_MSG_FAILURE([libatomic needed, but linking with -latomic failed, please fix your toolchain.])])
+        LIBS="$save_LIBS"
        ])
      ],
      [AC_MSG_RESULT([__sync builtins])