mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
Adding a new option to CMake to disable C++ atexit on llvm-shlib.
Summary: This is desirable for WebKit and other clients of the llvm-shlib because C++ exit time destructors have a tendency to crash when invoked from multi-threaded applications. Ideally this option will be temporary, because the ideal fix is to just not have exit time destructors. Reviewers: chapuni, ributzka Reviewed By: ributzka Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6572 llvm-svn: 223805
This commit is contained in:
parent
14af293376
commit
279565eead
@ -324,6 +324,10 @@ option (LLVM_BUILD_EXTERNAL_COMPILER_RT
|
||||
"Build compiler-rt as an external project." OFF)
|
||||
|
||||
option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" OFF)
|
||||
option(LLVM_DISABLE_LLVM_DYLIB_ATEXIT "Disable llvm-shlib's atexit destructors." ON)
|
||||
if(LLVM_DISABLE_LLVM_DYLIB_ATEXIT)
|
||||
set(DISABLE_LLVM_DYLIB_ATEXIT 1)
|
||||
endif()
|
||||
|
||||
# All options referred to from HandleLLVMOptions have to be specified
|
||||
# BEFORE this include, otherwise options will not be correctly set on
|
||||
|
@ -18,6 +18,9 @@
|
||||
/* Define to enable crash overrides */
|
||||
#cmakedefine ENABLE_CRASH_OVERRIDES
|
||||
|
||||
/* Define to disable C++ atexit */
|
||||
#cmakedefine DISABLE_LLVM_DYLIB_ATEXIT
|
||||
|
||||
/* Define if position independent code is enabled */
|
||||
#cmakedefine ENABLE_PIC
|
||||
|
||||
|
@ -11,3 +11,10 @@
|
||||
// you can't define a target with no sources.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/Config/config.h"
|
||||
|
||||
#if defined(DISABLE_LLVM_DYLIB_ATEXIT)
|
||||
extern "C" int __cxa_atexit();
|
||||
extern "C" int __cxa_atexit() { return 0; }
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user