diff options
author | Petr Hosek <phosek@chromium.org> | 2018-06-07 18:27:27 +0000 |
---|---|---|
committer | Petr Hosek <phosek@chromium.org> | 2018-06-07 18:27:27 +0000 |
commit | afafc2ecb03bf24c85f58820dbed541bbaf4d723 (patch) | |
tree | 7a951a08026fa418cb94ca8f244edb43baeafa2e /cmake/Modules | |
parent | 341133044563731df0c69a90abd52a57aa24c47e (diff) |
[CMake] Filter out -z,defs when building custom libc++
-z,defs is incompatible with sanitizers so we need to filter it out
from the linker flags before passing them to the libc++ build.
Differential Revision: https://reviews.llvm.org/D47865
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@334212 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake/Modules')
-rw-r--r-- | cmake/Modules/AddCompilerRT.cmake | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake index f1f955cf9..8338eb340 100644 --- a/cmake/Modules/AddCompilerRT.cmake +++ b/cmake/Modules/AddCompilerRT.cmake @@ -512,9 +512,6 @@ macro(add_custom_libcxx name prefix) set(PASSTHROUGH_VARIABLES CMAKE_C_COMPILER_TARGET CMAKE_CXX_COMPILER_TARGET - CMAKE_SHARED_LINKER_FLAGS - CMAKE_MODULE_LINKER_FLAGS - CMAKE_EXE_LINKER_FLAGS CMAKE_INSTALL_PREFIX CMAKE_MAKE_PROGRAM CMAKE_LINKER @@ -536,6 +533,10 @@ macro(add_custom_libcxx name prefix) set(LIBCXX_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS_STRING}") set(LIBCXX_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAGS_STRING}") + string(REPLACE "-Wl,-z,defs" "" LIBCXX_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") + string(REPLACE "-Wl,-z,defs" "" LIBCXX_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") + string(REPLACE "-Wl,-z,defs" "" LIBCXX_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") + ExternalProject_Add(${name} DEPENDS ${name}-clobber ${LIBCXX_DEPS} PREFIX ${prefix} @@ -546,6 +547,9 @@ macro(add_custom_libcxx name prefix) ${compiler_args} -DCMAKE_C_FLAGS=${LIBCXX_C_FLAGS} -DCMAKE_CXX_FLAGS=${LIBCXX_CXX_FLAGS} + -DCMAKE_SHARED_LINKER_FLAGS=${LIBCXX_SHARED_LINKER_FLAGS} + -DCMAKE_MODULE_LINKER_FLAGS=${LIBCXX_MODULE_LINKER_FLAGS} + -DCMAKE_EXE_LINKER_FLAGS=${LIBCXX_EXE_LINKER_FLAGS} -DCMAKE_BUILD_TYPE=Release -DLLVM_PATH=${LLVM_MAIN_SRC_DIR} -DLLVM_BINARY_DIR=${prefix} |