From 31a991eeba4f22b9fc0bc6a6b981a600e66f09ac Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Fri, 29 Mar 2019 22:08:56 +0000 Subject: [PATCH] [libc++abi] Don't set POSITION_INDEPENDENT_CODE when building static library With the current WebAssembly backend, objects built with -fPIC are not compatible with static linking. libc++abi was (mistakenly?) adding -fPIC to the objects it was including in a static library. IIUC this change should also mean the static build can be more efficient on all platforms. Differential Revision: https://reviews.llvm.org/D60005 llvm-svn: 357322 --- libcxxabi/src/CMakeLists.txt | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt index b05178a..7123718 100644 --- a/libcxxabi/src/CMakeLists.txt +++ b/libcxxabi/src/CMakeLists.txt @@ -153,9 +153,7 @@ macro(cxxabi_object_library name) CXX_STANDARD_REQUIRED ON COMPILE_FLAGS - "${LIBCXXABI_COMPILE_FLAGS}" - POSITION_INDEPENDENT_CODE - ON) + "${LIBCXXABI_COMPILE_FLAGS}") if(ARGS_DEFINES) target_compile_definitions(${name} PRIVATE ${ARGS_DEFINES}) @@ -174,15 +172,14 @@ if(LIBCXXABI_HERMETIC_STATIC_LIBRARY) _LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS FLAGS ${CXXABI_STATIC_OBJECTS_FLAGS}) - cxxabi_object_library(cxxabi_shared_objects) - set(cxxabi_static_sources $) - set(cxxabi_shared_sources $) else() - cxxabi_object_library(cxxabi_objects) - set(cxxabi_static_sources $) - set(cxxabi_shared_sources $) + cxxabi_object_library(cxxabi_static_objects) endif() +cxxabi_object_library(cxxabi_shared_objects POSITION_INDEPENDENT_CODE ON) +set(cxxabi_static_sources $) +set(cxxabi_shared_sources $) + # Build the shared library. if (LIBCXXABI_ENABLE_SHARED) add_library(cxxabi_shared SHARED ${cxxabi_shared_sources}) @@ -238,9 +235,7 @@ if (LIBCXXABI_ENABLE_STATIC) LINK_FLAGS "${LIBCXXABI_LINK_FLAGS}" OUTPUT_NAME - "c++abi" - POSITION_INDEPENDENT_CODE - ON) + "c++abi") list(APPEND LIBCXXABI_BUILD_TARGETS "cxxabi_static") if (LIBCXXABI_INSTALL_STATIC_LIBRARY) list(APPEND LIBCXXABI_INSTALL_TARGETS "cxxabi_static") -- 2.7.4