Skip to content

Commit 1d25040

Browse files
authored
Merge pull request #262 from compnerd/gold
build: add option to use the gold linker
2 parents c2d0c49 + 6f8ef5a commit 1d25040

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,13 @@ set(USE_LIBDISPATCH_INIT_CONSTRUCTOR ${ENABLE_DISPATCH_INIT_CONSTRUCTOR})
3131

3232
# TODO(compnerd) swift options
3333

34-
# TODO(compnerd) consider adding a flag for USE_GOLD_LINKER. Currently, we
35-
# expect the user to specify `-fuse-ld=gold`
34+
if(CMAKE_SYSTEM_NAME STREQUAL Linux OR
35+
CMAKE_SYSTEM_NAME STREQUAL Android)
36+
set(USE_GOLD_LINKER_DEFAULT ON)
37+
else()
38+
set(USE_GOLD_LINKER_DEFAULT OFF)
39+
endif()
40+
option(USE_GOLD_LINKER "use the gold linker" ${USE_GOLD_LINKER_DEFAULT})
3641

3742
option(ENABLE_THREAD_LOCAL_STORAGE "enable usage of thread local storage via __thread" ON)
3843
set(DISPATCH_USE_THREAD_LOCAL_STORAGE ${ENABLE_THREAD_LOCAL_STORAGE})

src/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
179179
"-Xlinker -dead_strip"
180180
"-Xlinker -alias_list -Xlinker ${CMAKE_SOURCE_DIR}/xcodeconfig/libdispatch.aliases")
181181
endif()
182+
if(USE_GOLD_LINKER)
183+
set_property(TARGET dispatch
184+
APPEND_STRING
185+
PROPERTY LINK_FLAGS
186+
-fuse-ld=gold)
187+
endif()
182188

183189
install(TARGETS
184190
dispatch

0 commit comments

Comments
 (0)