summaryrefslogtreecommitdiff
path: root/include/llvm/Support/Threading.h
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-12-02 19:20:10 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-12-02 19:20:10 +0000
commit2cf3bd4601bbc6fc1f3ffe845eb57c2da2dff02c (patch)
tree6c704a1a1c04abaaf72aa6d9a019103c822f0c3e /include/llvm/Support/Threading.h
parent6449741f4c1842221757c062f4abbae7bb524ba9 (diff)
Notes
Diffstat (limited to 'include/llvm/Support/Threading.h')
-rw-r--r--include/llvm/Support/Threading.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/include/llvm/Support/Threading.h b/include/llvm/Support/Threading.h
index 09b96dfb4c1c..fe407b725314 100644
--- a/include/llvm/Support/Threading.h
+++ b/include/llvm/Support/Threading.h
@@ -20,11 +20,11 @@
#include <ciso646> // So we can check the C++ standard lib macros.
#include <functional>
-// We use std::call_once on all Unix platforms except for NetBSD with
-// libstdc++. That platform has a bug they are working to fix, and they'll
-// remove the NetBSD checks once fixed.
-#if defined(LLVM_ON_UNIX) && \
- !(defined(__NetBSD__) && !defined(_LIBCPP_VERSION)) && !defined(__ppc__)
+// std::call_once from libc++ is used on all Unix platforms. Other
+// implementations like libstdc++ are known to have problems on NetBSD,
+// OpenBSD and PowerPC.
+#if defined(LLVM_ON_UNIX) && (defined(_LIBCPP_VERSION) || \
+ !(defined(__NetBSD__) || defined(__OpenBSD__) || defined(__ppc__)))
#define LLVM_THREADING_USE_STD_CALL_ONCE 1
#else
#define LLVM_THREADING_USE_STD_CALL_ONCE 0