diff options
-rw-r--r-- | clang/tools/driver/CMakeLists.txt | 4 | ||||
-rw-r--r-- | llvm/cmake/modules/AddLLVM.cmake | 15 |
2 files changed, 16 insertions, 3 deletions
diff --git a/clang/tools/driver/CMakeLists.txt b/clang/tools/driver/CMakeLists.txt index 6e8748dd628..db7055e886d 100644 --- a/clang/tools/driver/CMakeLists.txt +++ b/clang/tools/driver/CMakeLists.txt @@ -99,10 +99,10 @@ if (APPLE) endif() if(CLANG_ORDER_FILE AND - (LD64_EXECUTABLE OR LLVM_LINKER_IS_GOLD OR LLVM_LINKER_IS_LLD)) + (LLVM_LINKER_IS_LD64 OR LLVM_LINKER_IS_GOLD OR LLVM_LINKER_IS_LLD)) include(CheckLinkerFlag) - if (LD64_EXECUTABLE) + if (LLVM_LINKER_IS_LD64) set(LINKER_ORDER_FILE_OPTION "-Wl,-order_file,${CLANG_ORDER_FILE}") elseif (LLVM_LINKER_IS_GOLD) set(LINKER_ORDER_FILE_OPTION "-Wl,--section-ordering-file,${CLANG_ORDER_FILE}") diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index d631fcc0f05..2e0d4a4c6c8 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -147,7 +147,20 @@ function(add_llvm_symbol_exports target_name export_file) set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE) endfunction(add_llvm_symbol_exports) -if(NOT WIN32 AND NOT APPLE) +if(APPLE) + execute_process( + COMMAND "${CMAKE_LINKER}" -v + ERROR_VARIABLE stderr + ) + set(LLVM_LINKER_DETECTED ON) + if("${stderr}" MATCHES "PROJECT:ld64") + set(LLVM_LINKER_IS_LD64 ON) + message(STATUS "Linker detection: ld64") + else() + set(LLVM_LINKER_DETECTED OFF) + message(STATUS "Linker detection: unknown") + endif() +elseif(NOT WIN32) # Detect what linker we have here if( LLVM_USE_LINKER ) set(command ${CMAKE_C_COMPILER} -fuse-ld=${LLVM_USE_LINKER} -Wl,--version) |