diff options
| author | Wladimir J. van der Laan <[email protected]> | 2016-09-09 08:57:08 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2016-09-09 08:58:39 +0200 |
| commit | 7f8b677aeb79abe5d52b18afb888d9a82204b276 (patch) | |
| tree | 2986a1e7b632cc7fe2df6b386d8ecee488853f59 | |
| parent | Merge #8680: Address Travis spurious failures (diff) | |
| parent | Add configure check for -latomic (diff) | |
| download | discoin-7f8b677aeb79abe5d52b18afb888d9a82204b276.tar.xz discoin-7f8b677aeb79abe5d52b18afb888d9a82204b276.zip | |
Merge #8563: Add configure check for -latomic
878faac Add configure check for -latomic (Anthony Towns)
| -rw-r--r-- | build-aux/m4/l_atomic.m4 | 40 | ||||
| -rw-r--r-- | configure.ac | 3 |
2 files changed, 43 insertions, 0 deletions
diff --git a/build-aux/m4/l_atomic.m4 b/build-aux/m4/l_atomic.m4 new file mode 100644 index 000000000..906724b64 --- /dev/null +++ b/build-aux/m4/l_atomic.m4 @@ -0,0 +1,40 @@ +# Some versions of gcc/libstdc++ require linking with -latomic if +# using the C++ atomic library. +# +# Sourced from http://bugs.debian.org/797228 + +m4_define([_CHECK_ATOMIC_testbody], [[ + #include <atomic> + #include <cstdint> + + int main() { + std::atomic<int64_t> a{}; + + int64_t v = 5; + int64_t r = a.fetch_add(v); + return static_cast<int>(r); + } +]]) + +AC_DEFUN([CHECK_ATOMIC], [ + + AC_LANG_PUSH(C++) + + AC_MSG_CHECKING([whether std::atomic can be used without link library]) + + AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_ATOMIC_testbody])],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + LIBS="$LIBS -latomic" + AC_MSG_CHECKING([whether std::atomic needs -latomic]) + AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_ATOMIC_testbody])],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_FAILURE([cannot figure our how to use std::atomic]) + ]) + ]) + + AC_LANG_POP +]) diff --git a/configure.ac b/configure.ac index add8d2178..607adec4f 100644 --- a/configure.ac +++ b/configure.ac @@ -57,6 +57,9 @@ case $host in esac dnl Require C++11 compiler (no GNU extensions) AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory]) +dnl Check if -latomic is required for <std::atomic> +CHECK_ATOMIC + dnl Libtool init checks. LT_INIT([pic-only]) |