From 32bd6197353f6ea8e5bef01f09e25c944141acfc Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 1 Sep 2021 18:54:54 +0100 Subject: [PATCH] Allow definition of BOOST_MATH_NO_ATOMIC_INT on the command line. Allows us to test/emulate platforms with no atomic integers. [buildroot@heine.tech: - backport from boostorg/math 32bd6197353f6ea8e5bef01f09e25c944141acfc - alter path to match boost release ] Signed-off-by: Michael Nosthoff --- boost/math/tools/atomic.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/boost/math/tools/atomic.hpp b/boost/math/tools/atomic.hpp index cc76ed269f..e3cbf5db89 100644 --- a/boost/math/tools/atomic.hpp +++ b/boost/math/tools/atomic.hpp @@ -16,27 +16,27 @@ namespace boost { namespace math { namespace detail { -#if ATOMIC_INT_LOCK_FREE == 2 +#if (ATOMIC_INT_LOCK_FREE == 2) && !defined(BOOST_MATH_NO_ATOMIC_INT) typedef std::atomic atomic_counter_type; typedef std::atomic atomic_unsigned_type; typedef int atomic_integer_type; typedef unsigned atomic_unsigned_integer_type; -#elif ATOMIC_SHORT_LOCK_FREE == 2 +#elif (ATOMIC_SHORT_LOCK_FREE == 2) && !defined(BOOST_MATH_NO_ATOMIC_INT) typedef std::atomic atomic_counter_type; typedef std::atomic atomic_unsigned_type; typedef short atomic_integer_type; typedef unsigned short atomic_unsigned_type; -#elif ATOMIC_LONG_LOCK_FREE == 2 +#elif (ATOMIC_LONG_LOCK_FREE == 2) && !defined(BOOST_MATH_NO_ATOMIC_INT) typedef std::atomic atomic_unsigned_integer_type; typedef std::atomic atomic_unsigned_type; typedef unsigned long atomic_unsigned_type; typedef long atomic_integer_type; -#elif ATOMIC_LLONG_LOCK_FREE == 2 +#elif (ATOMIC_LLONG_LOCK_FREE == 2) && !defined(BOOST_MATH_NO_ATOMIC_INT) typedef std::atomic atomic_unsigned_integer_type; typedef std::atomic atomic_unsigned_type; typedef long long atomic_integer_type; typedef unsigned long long atomic_unsigned_integer_type; -#else +#elif !defined(BOOST_MATH_NO_ATOMIC_INT) # define BOOST_MATH_NO_ATOMIC_INT #endif } // Namespace detail