mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-12 07:41:14 +00:00
Disable the use of std::call_once on OpenBSD with libstdc++.
It was noticed this caused performance regressions and deadlocks. PR30768. Reorder the code to make it clearer what is tested. PPC now disables the use of std::call_once only with libstdc++ with the reordering of the code, as was the original intent. llvm-svn: 285782
This commit is contained in:
parent
faf00da81c
commit
932954ed4f
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user