Allow libc++ to be built on systems without POSIX threads
If you're crazy enough to want this sort of thing, then add
-D_LIBCPP_HAS_NO_THREADS to your CXXFLAGS and
--param=additiona_features=libcpp-has-no-threads to your lit commnad line.
http://reviews.llvm.org/D3969
llvm-svn: 217271
diff --git a/libcxx/src/memory.cpp b/libcxx/src/memory.cpp
index 666673f..31e823c 100644
--- a/libcxx/src/memory.cpp
+++ b/libcxx/src/memory.cpp
@@ -9,8 +9,10 @@
#define _LIBCPP_BUILDING_MEMORY
#include "memory"
+#ifndef _LIBCPP_HAS_NO_THREADS
#include "mutex"
#include "thread"
+#endif
_LIBCPP_BEGIN_NAMESPACE_STD
@@ -119,7 +121,7 @@
#endif // _LIBCPP_NO_RTTI
-#if __has_feature(cxx_atomic)
+#if __has_feature(cxx_atomic) && !_LIBCPP_HAS_NO_THREADS
static const std::size_t __sp_mut_count = 16;
static pthread_mutex_t mut_back_imp[__sp_mut_count] =
@@ -172,7 +174,7 @@
return muts[hash<const void*>()(p) & (__sp_mut_count-1)];
}
-#endif // __has_feature(cxx_atomic)
+#endif // __has_feature(cxx_atomic) && !_LIBCPP_HAS_NO_THREADS
void
declare_reachable(void*)