From 78da4d567e4f6a36cade41e7056085bc849b0394 Mon Sep 17 00:00:00 2001 From: Christopher James Halse Rogers Date: Fri, 4 Mar 2022 12:26:22 +1100 Subject: [PATCH] build: Add mold to list of supported linkers More new linkers! At least as of 1.0.3 (in Ubuntu 22.04), mold is sufficiently mature to successfully link Mir, while being faster than lld. --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 712f0fa196..55fdb73efe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,7 +95,7 @@ if(HAS_W_PSABI) endif() set(MIR_USE_LD ld CACHE STRING "Linker to use") -set_property(CACHE MIR_USE_LD PROPERTY STRINGS "ld;gold;lld") +set_property(CACHE MIR_USE_LD PROPERTY STRINGS "ld;gold;lld;mold") if(MIR_USE_LD MATCHES "gold") set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=gold") set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=gold") @@ -106,6 +106,11 @@ if(MIR_USE_LD MATCHES "lld") set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld") set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld") endif() +if(MIR_USE_LD MATCHES "mold") + set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=mold") + set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=mold") + set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=mold") +endif() # Link time optimization allows leaner, cleaner libraries option(MIR_LINK_TIME_OPTIMIZATION "Enables the linker to optimize binaries." OFF)