summaryrefslogtreecommitdiffstats
path: root/libcxx/src
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2019-10-08 16:26:24 +0000
committerLouis Dionne <ldionne@apple.com>2019-10-08 16:26:24 +0000
commit32300877f9f450c0a58810d94a905a0fd76f9948 (patch)
tree10f50bc85599b2fb9843085b72f1f3c437af44e4 /libcxx/src
parenteb6698572623f7f704596949bfc2a6bdcc7940d1 (diff)
downloadbcm5719-llvm-32300877f9f450c0a58810d94a905a0fd76f9948.tar.gz
bcm5719-llvm-32300877f9f450c0a58810d94a905a0fd76f9948.zip
[libc++] Make sure we link all system libraries into the benchmarks
It turns out that r374056 broke _some_ build bots again, specifically the ones using sanitizers. Instead of trying to link the right system libraries to the benchmarks bit-by-bit, let's just link exactly the system libraries that libc++ itself needs. llvm-svn: 374079
Diffstat (limited to 'libcxx/src')
-rw-r--r--libcxx/src/CMakeLists.txt65
1 files changed, 2 insertions, 63 deletions
diff --git a/libcxx/src/CMakeLists.txt b/libcxx/src/CMakeLists.txt
index 2dad20049a1..fc14b1e71a3 100644
--- a/libcxx/src/CMakeLists.txt
+++ b/libcxx/src/CMakeLists.txt
@@ -137,65 +137,6 @@ if (APPLE AND LLVM_USE_SANITIZER)
endif()
endif()
-function(cxx_link_system_libraries target)
- target_add_link_flags_if_supported(${target} PRIVATE "-nodefaultlibs")
- target_add_compile_flags_if_supported(${target} PRIVATE "/Zl")
- target_add_link_flags_if_supported(${target} PRIVATE "/nodefaultlib")
-
- if (LIBCXX_HAS_SYSTEM_LIB)
- target_link_libraries(${target} PRIVATE System)
- endif()
-
- if (LIBCXX_HAS_PTHREAD_LIB)
- target_link_libraries(${target} PRIVATE pthread)
- endif()
-
- if (LIBCXX_HAS_C_LIB)
- target_link_libraries(${target} PRIVATE c)
- endif()
-
- if (LIBCXX_HAS_M_LIB)
- target_link_libraries(${target} PRIVATE m)
- endif()
-
- if (LIBCXX_HAS_RT_LIB)
- target_link_libraries(${target} PRIVATE rt)
- endif()
-
- if (LIBCXX_USE_COMPILER_RT)
- find_compiler_rt_library(builtins LIBCXX_BUILTINS_LIBRARY)
- if (LIBCXX_BUILTINS_LIBRARY)
- target_link_libraries(${target} PRIVATE "${LIBCXX_BUILTINS_LIBRARY}")
- endif()
- elseif (LIBCXX_HAS_GCC_S_LIB)
- target_link_libraries(${target} PRIVATE gcc_s)
- endif()
-
- if (LIBCXX_HAVE_CXX_ATOMICS_WITH_LIB)
- target_link_libraries(${target} PRIVATE atomic)
- endif()
-
- if (MINGW)
- target_link_libraries(${target} PRIVATE "${MINGW_LIBRARIES}")
- endif()
-
- if (LIBCXX_TARGETING_MSVC)
- if (LIBCXX_DEBUG_BUILD)
- set(LIB_SUFFIX "d")
- else()
- set(LIB_SUFFIX "")
- endif()
-
- target_link_libraries(${target} PRIVATE ucrt${LIB_SUFFIX}) # Universal C runtime
- target_link_libraries(${target} PRIVATE vcruntime${LIB_SUFFIX}) # C++ runtime
- target_link_libraries(${target} PRIVATE msvcrt${LIB_SUFFIX}) # C runtime startup files
- target_link_libraries(${target} PRIVATE msvcprt${LIB_SUFFIX}) # C++ standard library. Required for exception_ptr internals.
- # Required for standards-complaint wide character formatting functions
- # (e.g. `printfw`/`scanfw`)
- target_link_libraries(${target} PRIVATE iso_stdio_wide_specifiers)
- endif()
-endfunction()
-
if (LIBCXX_ENABLE_PARALLEL_ALGORITHMS AND NOT TARGET pstl::ParallelSTL)
message(FATAL_ERROR "Could not find ParallelSTL")
endif()
@@ -219,7 +160,6 @@ if (LIBCXX_ENABLE_SHARED)
if(COMMAND llvm_setup_rpath)
llvm_setup_rpath(cxx_shared)
endif()
- cxx_link_system_libraries(cxx_shared)
target_link_libraries(cxx_shared PRIVATE ${LIBCXX_LIBRARIES})
set_target_properties(cxx_shared
PROPERTIES
@@ -322,7 +262,6 @@ endif()
# Build the static library.
if (LIBCXX_ENABLE_STATIC)
add_library(cxx_static STATIC ${exclude_from_all} ${LIBCXX_SOURCES} ${LIBCXX_HEADERS})
- cxx_link_system_libraries(cxx_static)
target_link_libraries(cxx_static PRIVATE ${LIBCXX_LIBRARIES})
set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
set_target_properties(cxx_static
@@ -385,9 +324,9 @@ if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY)
)
add_library(cxx_experimental STATIC ${LIBCXX_EXPERIMENTAL_SOURCES})
if (LIBCXX_ENABLE_SHARED)
- target_link_libraries(cxx_experimental cxx_shared)
+ target_link_libraries(cxx_experimental PRIVATE cxx_shared)
else()
- target_link_libraries(cxx_experimental cxx_static)
+ target_link_libraries(cxx_experimental PRIVATE cxx_static)
endif()
set_target_properties(cxx_experimental
OpenPOWER on IntegriCloud