$OpenBSD: patch-src_llvm_include_llvm_Support_Threading_h,v 1.2 2017/02/15 12:52:35 landry Exp $
https://github.com/llvm-mirror/llvm/commit/f92d91a710f48a26e44451f18f0081b6af0670b7
--- src/llvm/include/llvm/Support/Threading.h.orig	Wed Dec 21 00:36:08 2016
+++ src/llvm/include/llvm/Support/Threading.h	Sun Jan 29 09:20:53 2017
@@ -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
