--- a/src/libstdc++-v3/include/std/future +++ b/src/libstdc++-v3/include/std/future @@ -183,7 +183,7 @@ async(_Fn&& __fn, _Args&&... __args); #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) \ - && (ATOMIC_INT_LOCK_FREE > 1) + && ((ATOMIC_INT_LOCK_FREE > 1) || (defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP))) /// Base class and enclosing scope. struct __future_base --- a/src/libstdc++-v3/libsupc++/exception_ptr.h +++ b/src/libstdc++-v3/libsupc++/exception_ptr.h @@ -36,9 +36,11 @@ #include #include +#if !(defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)) #if ATOMIC_INT_LOCK_FREE < 2 # error This platform does not support exception propagation. #endif +#endif extern "C++" { --- a/src/libstdc++-v3/libsupc++/nested_exception.h +++ b/src/libstdc++-v3/libsupc++/nested_exception.h @@ -39,9 +39,11 @@ #include #include +#if !(defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)) #if ATOMIC_INT_LOCK_FREE < 2 # error This platform does not support exception propagation. #endif +#endif extern "C++" { --- a/src/libstdc++-v3/libsupc++/exception +++ b/src/libstdc++-v3/libsupc++/exception @@ -35,7 +35,9 @@ #pragma GCC visibility push(default) #include +#if !(defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)) #include +#endif extern "C++" { @@ -166,7 +168,7 @@ #pragma GCC visibility pop -#if (__cplusplus >= 201103L) && (ATOMIC_INT_LOCK_FREE > 1) +#if (__cplusplus >= 201103L) && ((ATOMIC_INT_LOCK_FREE > 1) || (defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP))) #include #include #endif