]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - m4/pdns_check_os.m4
Merge pull request #13082 from jacobbunk/doc-send-recv-latencies
[thirdparty/pdns.git] / m4 / pdns_check_os.m4
index df05dc251cc110cd746ca982fbf53ab17a16386b..bb5f2fd7f380c69aedc1e3e63084dbb936bc592e 100644 (file)
@@ -19,12 +19,17 @@ AC_DEFUN([PDNS_CHECK_OS],[
     have_linux="yes"
     ;;
   darwin*)
-    CXXFLAGS="-D__APPLE_USE_RFC_3542 -D_XOPEN_SOURCE $CXXFLAGS"
+    CXXFLAGS="-D__APPLE_USE_RFC_3542 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE $CXXFLAGS"
+    have_darwin="yes"
     ;;
   freebsd*)
     THREADFLAGS="-pthread"
     have_freebsd="yes"
     ;;
+  openbsd*)
+    THREADFLAGS="-pthread"
+    have_openbsd="yes"
+    ;;
   *)
     LDFLAGS="-pthread $LDFLAGS"
     CXXFLAGS="-pthread $CXXFLAGS"
@@ -32,19 +37,26 @@ AC_DEFUN([PDNS_CHECK_OS],[
   esac
 
   AM_CONDITIONAL([HAVE_FREEBSD], [test "x$have_freebsd" = "xyes"])
+  AM_CONDITIONAL([HAVE_OPENBSD], [test "x$have_openbsd" = "xyes"])
   AM_CONDITIONAL([HAVE_LINUX], [test "x$have_linux" = "xyes"])
+  AM_CONDITIONAL([HAVE_DARWIN], [test "x$have_darwin" = "xyes"])
   AM_CONDITIONAL([HAVE_SOLARIS], [test "x$have_solaris" = "xyes"])
 
-  case "$host" in
-  mips* | powerpc* )
-    AC_MSG_CHECKING([whether the linker accepts -latomic])
-    LDFLAGS="-latomic $LDFLAGS"
-    AC_LINK_IFELSE([m4_default([],[AC_LANG_PROGRAM()])],
-      [AC_MSG_RESULT([yes])],
-      [AC_MSG_ERROR([Unable to link against libatomic, cannot continue])]
-    )
-    ;;
-  esac
+  AC_MSG_CHECKING([whether -latomic is needed for __atomic builtins])
+  AC_LINK_IFELSE(
+    [AC_LANG_PROGRAM([[#include <stdint.h>]],
+       [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]]
+    )],
+    [AC_MSG_RESULT([no])],
+    [LIBS="$LIBS -latomic"
+     AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM([[#include <stdint.h>]],
+               [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]]
+       )],
+       [AC_MSG_RESULT([yes])],
+       [AC_MSG_FAILURE([libatomic needed, but linking with -latomic failed, cannot continue])]
+    )]
+  )
 
   AC_SUBST(THREADFLAGS)
   AC_SUBST([DYNLINKFLAGS], [-export-dynamic])