forked from OSchip/llvm-project
[libc++abi] Add LIBCXXABI_ENABLE_PIC cmake option
This is on by default, since on many platforms and configurations libc++abi.a gets statically linked into shared libraries and/or PIE executables. This change is a followup to https://reviews.llvm.org/D60005 which allows us to default to PIC code, but disable this if needed (for example on WebAssembly where PIC code its currently compatible with static linking). Differential Revision: https://reviews.llvm.org/D60049 llvm-svn: 357551
This commit is contained in:
parent
1e6c931844
commit
31d7394dc7
|
@ -46,6 +46,7 @@ include(HandleCompilerRT)
|
|||
option(LIBCXXABI_ENABLE_EXCEPTIONS "Use exceptions." ON)
|
||||
option(LIBCXXABI_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON)
|
||||
option(LIBCXXABI_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)
|
||||
option(LIBCXXABI_ENABLE_PIC "Build Position-Independent Code, even in static library" 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_ENABLE_STATIC_UNWINDER "Statically link the LLVM unwinder." OFF)
|
||||
|
|
|
@ -155,6 +155,10 @@ macro(cxxabi_object_library name)
|
|||
COMPILE_FLAGS
|
||||
"${LIBCXXABI_COMPILE_FLAGS}")
|
||||
|
||||
if(LIBCXXABI_ENABLE_PIC)
|
||||
set_target_properties(${name} PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
if(ARGS_DEFINES)
|
||||
target_compile_definitions(${name} PRIVATE ${ARGS_DEFINES})
|
||||
endif()
|
||||
|
@ -177,7 +181,6 @@ else()
|
|||
endif()
|
||||
|
||||
cxxabi_object_library(cxxabi_shared_objects)
|
||||
set_target_properties(cxxabi_shared_objects PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set(cxxabi_static_sources $<TARGET_OBJECTS:cxxabi_static_objects>)
|
||||
set(cxxabi_shared_sources $<TARGET_OBJECTS:cxxabi_shared_objects>)
|
||||
|
|
Loading…
Reference in New Issue