Skip to content
Snippets Groups Projects
Commit 83ebf501 authored by Sergey Sharybin's avatar Sergey Sharybin
Browse files

CMake: Make ld.gold linker optional

Some platforms are having hard time using this linker so added an option
to not use it. The options is an advanced one and enabled by default so
should not cause any changes for current users.
parent 97a8cd68
No related branches found
Tags
No related merge requests found
...@@ -508,6 +508,12 @@ mark_as_advanced(WITH_C11) ...@@ -508,6 +508,12 @@ mark_as_advanced(WITH_C11)
option(WITH_CXX11 "Build with C++11 standard enabled, for development use only!" ${_cxx11_init}) option(WITH_CXX11 "Build with C++11 standard enabled, for development use only!" ${_cxx11_init})
mark_as_advanced(WITH_CXX11) mark_as_advanced(WITH_CXX11)
# Compiler toolchain
if(CMAKE_COMPILER_IS_GNUCC)
option(WITH_LINKER_GOLD "Use ld.gold linker which is usually faster than ld.bfd" ON)
mark_as_advanced(WITH_LINKER_GOLD)
endif()
# Dependency graph # Dependency graph
option(WITH_LEGACY_DEPSGRAPH "Build Blender with legacy dependency graph" ON) option(WITH_LEGACY_DEPSGRAPH "Build Blender with legacy dependency graph" ON)
mark_as_advanced(WITH_LEGACY_DEPSGRAPH) mark_as_advanced(WITH_LEGACY_DEPSGRAPH)
......
...@@ -384,7 +384,7 @@ add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE ...@@ -384,7 +384,7 @@ add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_COMPILER_IS_GNUCC)
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing") set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
# use ld.gold linker if available, could make optional if(WITH_LINKER_GOLD)
execute_process( execute_process(
COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version
ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
...@@ -395,6 +395,7 @@ if(CMAKE_COMPILER_IS_GNUCC) ...@@ -395,6 +395,7 @@ if(CMAKE_COMPILER_IS_GNUCC)
message(STATUS "GNU gold linker isn't available, using the default system linker.") message(STATUS "GNU gold linker isn't available, using the default system linker.")
endif() endif()
unset(LD_VERSION) unset(LD_VERSION)
endif()
# CLang is the same as GCC for now. # CLang is the same as GCC for now.
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment