libcxx-3.9-cmake-link-flags.patch (1014B)
1 diff --git a/CMakeLists.txt b/CMakeLists.txt 2 index d618e83..0e76525 100644 3 --- a/CMakeLists.txt 4 +++ b/CMakeLists.txt 5 @@ -293,6 +293,18 @@ remove_flags(-DNDEBUG -UNDEBUG -D_DEBUG 6 # so they don't get transformed into -Wno and -errors respectivly. 7 remove_flags(-Wno-pedantic -pedantic-errors -pedantic) 8 9 +# FIXME: this is cribbed from HandleLLVMOptions.cmake. 10 +if(LIBCXX_STANDALONE_BUILD) 11 + # Pass -Wl,-z,defs. This makes sure all symbols are defined. Otherwise a DSO 12 + # build might work on ELF but fail on MachO/COFF. 13 + if(NOT (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR WIN32 OR CYGWIN OR 14 + ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR 15 + ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") AND 16 + NOT LLVM_USE_SANITIZER) 17 + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,defs") 18 + endif() 19 +endif() 20 + 21 # Required flags ============================================================== 22 add_compile_flags_if_supported(-std=c++11) 23 if (NOT MSVC AND NOT LIBCXX_SUPPORTS_STD_EQ_CXX11_FLAG)