From 380f3da69a9555b5fc9b19650d938c751df53b14 Mon Sep 17 00:00:00 2001 From: "ossy@webkit.org" Date: Fri, 21 Nov 2014 07:06:28 +0000 Subject: [PATCH] [CMake] Use ld.gold if it is available to speedup builds https://bugs.webkit.org/show_bug.cgi?id=137953 Reviewed by Carlos Garcia Campos. * Source/cmake/OptionsCommon.cmake: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176442 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- ChangeLog | 9 +++++++++ Source/cmake/OptionsCommon.cmake | 19 +++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 888ceed1dfab..895f4460c4d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-11-20 Csaba Osztrogonác + + [CMake] Use ld.gold if it is available to speedup builds + https://bugs.webkit.org/show_bug.cgi?id=137953 + + Reviewed by Carlos Garcia Campos. + + * Source/cmake/OptionsCommon.cmake: + 2014-11-19 Akos Kiss Fix the detection of toolchain support for Cortex-A53 erratum 835769 workaround diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake index c76aa90ded77..d91715347185 100644 --- a/Source/cmake/OptionsCommon.cmake +++ b/Source/cmake/OptionsCommon.cmake @@ -60,14 +60,25 @@ if (WTF_CPU_ARM64_CORTEXA53) endif () endif () +# Use ld.gold if it is available and isn't disabled explicitly +option(USE_LD_GOLD "Use GNU gold linker" ON) +if (USE_LD_GOLD) + execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) + if ("${LD_VERSION}" MATCHES "GNU gold") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold") + else () + message(WARNING "GNU gold linker isn't available, using the default system linker.") + endif () +endif () + option(DEBUG_FISSION "Use Debug Fission support") if (DEBUG_FISSION) - execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) - if (NOT "${LD_VERSION}" MATCHES "GNU gold") + if (NOT USE_LD_GOLD) message(FATAL_ERROR "Need GNU gold linker for Debug Fission support") endif () - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -gsplit-dwarf -fuse-ld=gold") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gsplit-dwarf -fuse-ld=gold") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -gsplit-dwarf") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gsplit-dwarf") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index") set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index") endif () -- 2.36.0