mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-26 21:20:37 +00:00
[Solaris] Detect Solaris LD, use detection results to pass Solaris-ld options
Solaris ld is not the only linker available on Solaris. Introducing linker detection and using LLVM_LINKER_IS_SOLARISLD to select Solaris-ld specific handling. Patch by: Fedor Sergeev Differential Revision: https://reviews.llvm.org/D35325 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307852 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
13ba207632
commit
86784318a6
@ -91,7 +91,7 @@ function(add_llvm_symbol_exports target_name export_file)
|
||||
DEPENDS ${export_file}
|
||||
VERBATIM
|
||||
COMMENT "Creating export file for ${target_name}")
|
||||
if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
|
||||
if (${LLVM_LINKER_IS_SOLARISLD})
|
||||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
|
||||
LINK_FLAGS " -Wl,-M,${CMAKE_CURRENT_BINARY_DIR}/${native_export_file}")
|
||||
else()
|
||||
@ -148,13 +148,28 @@ function(add_llvm_symbol_exports target_name export_file)
|
||||
endfunction(add_llvm_symbol_exports)
|
||||
|
||||
if(NOT WIN32 AND NOT APPLE)
|
||||
# Detect what linker we have here
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} -Wl,--version
|
||||
OUTPUT_VARIABLE stdout
|
||||
ERROR_QUIET
|
||||
ERROR_VARIABLE stderr
|
||||
)
|
||||
set(LLVM_LINKER_DETECTED ON)
|
||||
if("${stdout}" MATCHES "GNU gold")
|
||||
set(LLVM_LINKER_IS_GOLD ON)
|
||||
message(STATUS "Linker detection: GNU Gold")
|
||||
elseif("${stdout}" MATCHES "^LLD")
|
||||
set(LLVM_LINKER_IS_LLD ON)
|
||||
message(STATUS "Linker detection: LLD")
|
||||
elseif("${stdout}" MATCHES "GNU ld")
|
||||
set(LLVM_LINKER_IS_GNULD ON)
|
||||
message(STATUS "Linker detection: GNU ld")
|
||||
elseif("${stderr}" MATCHES "Solaris Link Editors")
|
||||
set(LLVM_LINKER_IS_SOLARISLD ON)
|
||||
message(STATUS "Linker detection: Solaris ld")
|
||||
else()
|
||||
set(LLVM_LINKER_DETECTED OFF)
|
||||
message(STATUS "Linker detection: unknown")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user