Index: src/config.h =================================================================== --- src/config.h +++ src/config.h @@ -16,11 +16,9 @@ #include -#if !defined(LIBCXXABI_SINGLE_THREADED) && \ - defined(_POSIX_THREADS) && _POSIX_THREADS > 0 -# define LIBCXXABI_SINGLE_THREADED 0 -#else -# define LIBCXXABI_SINGLE_THREADED 1 +// Set this in the CXXFLAGS when you need it +#if !defined(LIBCXXABI_HAS_NO_THREADS) +# define LIBCXXABI_HAS_NO_THREADS 0 #endif // Set this in the CXXFLAGS when you need it, because otherwise we'd have to Index: src/cxa_exception.cpp =================================================================== --- src/cxa_exception.cpp +++ src/cxa_exception.cpp @@ -17,7 +17,7 @@ #include // for std::terminate #include // for malloc, free #include // for memset -#if !LIBCXXABI_SINGLE_THREADED +#if !LIBCXXABI_HAS_NO_THREADS # include // for fallback_malloc.ipp's mutexes #endif #include "cxa_exception.hpp" Index: src/cxa_exception_storage.cpp =================================================================== --- src/cxa_exception_storage.cpp +++ src/cxa_exception_storage.cpp @@ -15,7 +15,7 @@ #include "config.h" -#if LIBCXXABI_SINGLE_THREADED +#if LIBCXXABI_HAS_NO_THREADS namespace __cxxabiv1 { extern "C" { Index: src/cxa_guard.cpp =================================================================== --- src/cxa_guard.cpp +++ src/cxa_guard.cpp @@ -10,7 +10,7 @@ #include "abort_message.h" #include "config.h" -#if !LIBCXXABI_SINGLE_THREADED +#if !LIBCXXABI_HAS_NO_THREADS # include #endif #include @@ -62,7 +62,7 @@ #endif -#if !LIBCXXABI_SINGLE_THREADED +#if !LIBCXXABI_HAS_NO_THREADS pthread_mutex_t guard_mut = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t guard_cv = PTHREAD_COND_INITIALIZER; #endif @@ -166,7 +166,7 @@ extern "C" { -#if LIBCXXABI_SINGLE_THREADED +#if LIBCXXABI_HAS_NO_THREADS int __cxa_guard_acquire(guard_type* guard_object) { return !is_initialized(guard_object); @@ -183,7 +183,7 @@ *guard_object = 0; } -#else // !LIBCXXABI_SINGLE_THREADED +#else // !LIBCXXABI_HAS_NO_THREADS int __cxa_guard_acquire(guard_type* guard_object) { @@ -250,7 +250,7 @@ abort_message("__cxa_guard_abort failed to broadcast condition variable"); } -#endif // !LIBCXXABI_SINGLE_THREADED +#endif // !LIBCXXABI_HAS_NO_THREADS } // extern "C" Index: src/fallback_malloc.ipp =================================================================== --- src/fallback_malloc.ipp +++ src/fallback_malloc.ipp @@ -26,7 +26,7 @@ namespace { // When POSIX threads are not available, make the mutex operations a nop -#if LIBCXXABI_SINGLE_THREADED +#if LIBCXXABI_HAS_NO_THREADS static void * heap_mutex = 0; #else static pthread_mutex_t heap_mutex = PTHREAD_MUTEX_INITIALIZER; @@ -34,7 +34,7 @@ class mutexor { public: -#if LIBCXXABI_SINGLE_THREADED +#if LIBCXXABI_HAS_NO_THREADS mutexor ( void * ) {} ~mutexor () {} #else @@ -44,7 +44,7 @@ private: mutexor ( const mutexor &rhs ); mutexor & operator = ( const mutexor &rhs ); -#if !LIBCXXABI_SINGLE_THREADED +#if !LIBCXXABI_HAS_NO_THREADS pthread_mutex_t *mtx_; #endif }; Index: test/test_exception_storage.cpp =================================================================== --- test/test_exception_storage.cpp +++ test/test_exception_storage.cpp @@ -12,7 +12,7 @@ #include #include #include -#if !LIBCXXABI_SINGLE_THREADED +#if !LIBCXXABI_HAS_NO_THREADS # include #endif #include @@ -38,7 +38,7 @@ return parm; } -#if !LIBCXXABI_SINGLE_THREADED +#if !LIBCXXABI_HAS_NO_THREADS #define NUMTHREADS 10 size_t thread_globals [ NUMTHREADS ] = { 0 }; pthread_t threads [ NUMTHREADS ]; @@ -54,7 +54,7 @@ int main ( int argc, char *argv [] ) { int retVal = 0; -#if LIBCXXABI_SINGLE_THREADED +#if LIBCXXABI_HAS_NO_THREADS size_t thread_globals; retVal = thread_code(&thread_globals) != 0; #else