Use webkit code snippet to detect GNU gold

This commit is contained in:
Patrick Niklaus 2016-07-01 16:05:26 +02:00 committed by Michael Krasnyk
parent 01b0bce2d5
commit 5ee15ee339
No known key found for this signature in database
GPG Key ID: 3854C9454FE00649

View File

@ -55,7 +55,7 @@ option(COVERAGE OFF)
option(SANITIZER OFF) option(SANITIZER OFF)
option(ENABLE_LTO "Use LTO if available" ON) option(ENABLE_LTO "Use LTO if available" ON)
option(ENABLE_FUZZING "Fuzz testing using LLVM's libFuzzer" OFF) option(ENABLE_FUZZING "Fuzz testing using LLVM's libFuzzer" OFF)
option(ENABLE_GOLD_LINKER "Use ld.gold if available" ON) option(ENABLE_GOLD_LINKER "Use GNU gold linker if available" ON)
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/include/) include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/include/)
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/include/) include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/include/)
@ -118,9 +118,16 @@ if(CMAKE_BUILD_TYPE MATCHES Debug)
endif() endif()
endif() endif()
check_cxx_compiler_flag("-Wl,-fuse-ld=gold" GOLD_AVAILABLE) if(ENABLE_GOLD_LINKER)
if (ENABLE_GOLD_LINKER AND GOLD_AVAILABLE) execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-fuse-ld=gold") if("${LD_VERSION}" MATCHES "GNU gold")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold -Wl,--disable-new-dtags")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold -Wl,--disable-new-dtags")
message(STATUS "Using GNU gold as linker.")
else()
message(WARNING "GNU gold linker isn't available.")
set(ENABLE_GOLD_LINKER OFF)
endif()
endif() endif()
if(CMAKE_BUILD_TYPE MATCHES Release) if(CMAKE_BUILD_TYPE MATCHES Release)