mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
Disable the use of std::call_once on PowerPC due to an apparent bug in
libstdc++ (or in compilers, or somewhere, I can't track it down) that causes unittests that use INITIALIZE_PASS to crash. The analysis I've been able to do is that inside libstdc++'s implementation of std::call_once, it uses pthread_once, and when that returns an error code it throws std::system_error which then eventually calls std::terminate. Hopefully some of the folks who work on PPC can try to sort out what's going on here. Until then, they'll have to use the fallback implementation. llvm-svn: 271821
This commit is contained in:
parent
37b3d11aec
commit
c6ece6bf3b
@ -23,7 +23,8 @@
|
||||
// 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))
|
||||
#if defined(LLVM_ON_UNIX) && \
|
||||
!(defined(__NetBSD__) && !defined(_LIBCPP_VERSION)) && !defined(__ppc__)
|
||||
#define LLVM_THREADING_USE_STD_CALL_ONCE 1
|
||||
#else
|
||||
#define LLVM_THREADING_USE_STD_CALL_ONCE 0
|
||||
|
Loading…
Reference in New Issue
Block a user