1AC_DEFUN([PDNS_CHECK_OS],[ 2 THREADFLAGS="" 3 4 case "$host_os" in 5 solaris2.1*) 6 LIBS="-lposix4 -lpthread $LIBS" 7 CXXFLAGS="-D_REENTRANT $CXXFLAGS" 8 have_solaris="yes" 9 ;; 10 solaris2.8 | solaris2.9 ) 11 AC_DEFINE(NEED_POSIX_TYPEDEF,,[If POSIX typedefs need to be defined]) 12 AC_DEFINE(NEED_INET_NTOP_PROTO,,[If your OS is so broken that it needs an additional prototype]) 13 LIBS="-lposix4 -lpthread $LIBS" 14 CXXFLAGS="-D_REENTRANT $CXXFLAGS" 15 have_solaris="yes" 16 ;; 17 linux*) 18 THREADFLAGS="-pthread" 19 have_linux="yes" 20 ;; 21 darwin*) 22 CXXFLAGS="-D__APPLE_USE_RFC_3542 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE $CXXFLAGS" 23 ;; 24 freebsd*) 25 THREADFLAGS="-pthread" 26 have_freebsd="yes" 27 ;; 28 *) 29 LDFLAGS="-pthread $LDFLAGS" 30 CXXFLAGS="-pthread $CXXFLAGS" 31 ;; 32 esac 33 34 AM_CONDITIONAL([HAVE_FREEBSD], [test "x$have_freebsd" = "xyes"]) 35 AM_CONDITIONAL([HAVE_LINUX], [test "x$have_linux" = "xyes"]) 36 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$have_solaris" = "xyes"]) 37 38 AC_MSG_CHECKING([whether -latomic is needed for __atomic builtins]) 39 AC_LINK_IFELSE( 40 [AC_LANG_PROGRAM([[#include <stdint.h>]], 41 [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]] 42 )], 43 [AC_MSG_RESULT([no])], 44 [LIBS="$LIBS -latomic" 45 AC_LINK_IFELSE( 46 [AC_LANG_PROGRAM([[#include <stdint.h>]], 47 [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]] 48 )], 49 [AC_MSG_RESULT([yes])], 50 [AC_MSG_FAILURE([libatomic needed, but linking with -latomic failed, cannot continue])] 51 )] 52 ) 53 54 AC_SUBST(THREADFLAGS) 55 AC_SUBST([DYNLINKFLAGS], [-export-dynamic]) 56]) 57