From: Gregor Jasny Date: Sun, 22 Aug 2021 10:49:09 +0000 (+0200) Subject: feat(cmake): Use standard linker for LTO scenarios X-Git-Tag: v4.4.1~9^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=82bca69eb7cef937997bf30fac00c46acf8394b7;p=thirdparty%2Fccache.git feat(cmake): Use standard linker for LTO scenarios --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 4cf2e5f3e..bb4b251ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,6 +65,11 @@ if(NOT DEFINED CCACHE_DEV_MODE) endif() message(STATUS "Ccache dev mode: ${CCACHE_DEV_MODE}") +option(ENABLE_IPO "Enable interprocedural (link time, LTO) optimization" OFF) +if(ENABLE_IPO) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) +endif() + include(UseCcache) include(UseFastestLinker) include(StandardSettings) @@ -72,11 +77,6 @@ include(StandardWarnings) include(CIBuildType) include(DefaultBuildType) -option(ENABLE_IPO "Enable interprocedural (link time, LTO) optimization" OFF) -if(ENABLE_IPO) - set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) -endif() - # # Configuration # diff --git a/cmake/UseFastestLinker.cmake b/cmake/UseFastestLinker.cmake index f7e079b4f..b38833cff 100644 --- a/cmake/UseFastestLinker.cmake +++ b/cmake/UseFastestLinker.cmake @@ -10,6 +10,11 @@ if(MSVC) return() endif() +if(ENABLE_IPO) + message(STATUS "Using standard linker for IPO") + return() +endif() + if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64) # Be conservative and only probe for a faster linker on platforms that likely # don't have toolchain bugs. See for example