[libcxx-commits] [libcxxabi] r357551 - [libc++abi] Add LIBCXXABI_ENABLE_PIC cmake option

Sam Clegg via libcxx-commits libcxx-commits at lists.llvm.org
Tue Apr 2 17:34:13 PDT 2019


Author: sbc
Date: Tue Apr  2 17:34:12 2019
New Revision: 357551

URL: http://llvm.org/viewvc/llvm-project?rev=357551&view=rev
Log:
[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

Modified:
    libcxxabi/trunk/CMakeLists.txt
    libcxxabi/trunk/src/CMakeLists.txt

Modified: libcxxabi/trunk/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/CMakeLists.txt?rev=357551&r1=357550&r2=357551&view=diff
==============================================================================
--- libcxxabi/trunk/CMakeLists.txt (original)
+++ libcxxabi/trunk/CMakeLists.txt Tue Apr  2 17:34:12 2019
@@ -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)

Modified: libcxxabi/trunk/src/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/CMakeLists.txt?rev=357551&r1=357550&r2=357551&view=diff
==============================================================================
--- libcxxabi/trunk/src/CMakeLists.txt (original)
+++ libcxxabi/trunk/src/CMakeLists.txt Tue Apr  2 17:34:12 2019
@@ -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>)




More information about the libcxx-commits mailing list