Skip to content

Commit

Permalink
[libc++abi] Add LIBCXXABI_ENABLE_PIC cmake option
Browse files Browse the repository at this point in the history
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
  • Loading branch information
sbc100 committed Apr 3, 2019
1 parent 1e6c931 commit 31d7394
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
1 change: 1 addition & 0 deletions libcxxabi/CMakeLists.txt
Expand Up @@ -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)
Expand Down
5 changes: 4 additions & 1 deletion libcxxabi/src/CMakeLists.txt
Expand Up @@ -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()
Expand All @@ -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>)
Expand Down

0 comments on commit 31d7394

Please sign in to comment.