forked from OSchip/llvm-project
libc++abi: add a top level option for using CompilerRT
Add an option to opt into compiler-rt instead of libgcc. This option defaults to OFF to avoid a behaviour change. It is not possible to mix and match different runtime libraries. Disabling this requires that libc++ is built accordingly. This knob is particularly useful for targets that are GCC by default (i.e. Linux). llvm-svn: 275505
This commit is contained in:
parent
0d09a865c6
commit
6e2aa5e1a9
|
@ -113,6 +113,7 @@ option(LIBCXXABI_ENABLE_ASSERTIONS "Enable assertions independent of build mode.
|
|||
option(LIBCXXABI_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)
|
||||
option(LIBCXXABI_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)
|
||||
option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF)
|
||||
option(LIBCXXABI_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF)
|
||||
option(LIBCXXABI_ENABLE_THREADS "Build with threads enabled" ON)
|
||||
option(LIBCXXABI_HAS_PTHREAD_API "Ignore auto-detection and force use of pthread API" OFF)
|
||||
option(LIBCXXABI_BUILD_32_BITS "Build 32 bit libc++abi." ${LLVM_BUILD_32_BITS})
|
||||
|
@ -243,6 +244,9 @@ if (LIBCXXABI_HAS_NOSTDINCXX_FLAG)
|
|||
string(REPLACE "-stdlib=libstdc++" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
endif()
|
||||
|
||||
if (LIBCXXABI_USE_COMPILER_RT)
|
||||
list(APPEND LIBCXXABI_LINK_FLAGS "-rtlib=compiler-rt")
|
||||
endif ()
|
||||
|
||||
append_if(LIBCXXABI_COMPILE_FLAGS LIBCXXABI_HAS_WERROR_FLAG -Werror=return-type)
|
||||
|
||||
|
|
|
@ -42,6 +42,8 @@ check_cxx_compiler_flag(/GR- LIBCXXABI_HAS_NO_GR_FLAG)
|
|||
check_library_exists(c fopen "" LIBCXXABI_HAS_C_LIB)
|
||||
check_library_exists(dl dladdr "" LIBCXXABI_HAS_DL_LIB)
|
||||
check_library_exists(pthread pthread_once "" LIBCXXABI_HAS_PTHREAD_LIB)
|
||||
check_library_exists(gcc_s __gcc_personality_v0 "" LIBCXXABI_HAS_GCC_S_LIB)
|
||||
if (NOT LIBCXXABI_USE_COMPILER_RT)
|
||||
check_library_exists(gcc_s __gcc_personality_v0 "" LIBCXXABI_HAS_GCC_S_LIB)
|
||||
endif ()
|
||||
check_library_exists(c __cxa_thread_atexit_impl ""
|
||||
LIBCXXABI_HAS_CXA_THREAD_ATEXIT_IMPL)
|
||||
|
|
Loading…
Reference in New Issue