[libcxx-commits] [libcxx] r359808 - [libc++][CMake] Link against libSystem on Apple platforms
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Thu May 2 10:43:48 PDT 2019
Author: ldionne
Date: Thu May 2 10:43:48 2019
New Revision: 359808
URL: http://llvm.org/viewvc/llvm-project?rev=359808&view=rev
Log:
[libc++][CMake] Link against libSystem on Apple platforms
Instead of manually linking against libm/librt/libpthread, we should be
linking against libSystem on Apple platforms, and only that. libm and
libpthread are symlinks to libSystem anyway.
Modified:
libcxx/trunk/cmake/config-ix.cmake
libcxx/trunk/src/CMakeLists.txt
Modified: libcxx/trunk/cmake/config-ix.cmake
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/cmake/config-ix.cmake?rev=359808&r1=359807&r2=359808&view=diff
==============================================================================
--- libcxx/trunk/cmake/config-ix.cmake (original)
+++ libcxx/trunk/cmake/config-ix.cmake Thu May 2 10:43:48 2019
@@ -80,8 +80,15 @@ if(WIN32 AND NOT MINGW)
set(LIBCXX_HAS_PTHREAD_LIB NO)
set(LIBCXX_HAS_M_LIB NO)
set(LIBCXX_HAS_RT_LIB NO)
+ set(LIBCXX_HAS_SYSTEM_LIB NO)
+elseif(APPLE)
+ check_library_exists(System write "" LIBCXX_HAS_SYSTEM_LIB)
+ set(LIBCXX_HAS_PTHREAD_LIB NO)
+ set(LIBCXX_HAS_M_LIB NO)
+ set(LIBCXX_HAS_RT_LIB NO)
else()
check_library_exists(pthread pthread_create "" LIBCXX_HAS_PTHREAD_LIB)
check_library_exists(m ccos "" LIBCXX_HAS_M_LIB)
check_library_exists(rt clock_gettime "" LIBCXX_HAS_RT_LIB)
+ set(LIBCXX_HAS_SYSTEM_LIB NO)
endif()
Modified: libcxx/trunk/src/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/CMakeLists.txt?rev=359808&r1=359807&r2=359808&view=diff
==============================================================================
--- libcxx/trunk/src/CMakeLists.txt (original)
+++ libcxx/trunk/src/CMakeLists.txt Thu May 2 10:43:48 2019
@@ -140,6 +140,10 @@ function(cxx_link_system_libraries targe
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} PUBLIC System)
+ endif()
+
if (LIBCXX_HAS_PTHREAD_LIB)
target_link_libraries(${target} PUBLIC pthread)
endif()
More information about the libcxx-commits
mailing list