diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2023-06-23 12:36:55 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-06-23 14:35:04 (GMT) |
commit | 5945a98ced2e1f4794f26f39256c95d875220408 (patch) | |
tree | 1b114fde8fdc509ae02a7390e6fca8acf85b2066 /Modules/Compiler | |
parent | 99ea9ad947e980d179a618ff1f67fa27a30975d3 (diff) | |
download | CMake-5945a98ced2e1f4794f26f39256c95d875220408.zip CMake-5945a98ced2e1f4794f26f39256c95d875220408.tar.gz CMake-5945a98ced2e1f4794f26f39256c95d875220408.tar.bz2 |
link dependencies: deactivate the feature
Unfortunately it breaks in combination with LTO due to a bug in the GNU
linker.
Fixes: #25014
Diffstat (limited to 'Modules/Compiler')
-rw-r--r-- | Modules/Compiler/GNU.cmake | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake index 251e05a..d01054b 100644 --- a/Modules/Compiler/GNU.cmake +++ b/Modules/Compiler/GNU.cmake @@ -53,6 +53,9 @@ macro(__compiler_gnu lang) endif() # define flags for linker depfile generation + set(CMAKE_${lang}_LINKER_DEPFILE_FLAGS "LINKER:--dependency-file,<DEP_FILE>") + set(CMAKE_${lang}_LINKER_DEPFILE_FORMAT gcc) + if(NOT DEFINED CMAKE_${lang}_LINKER_DEPFILE_SUPPORTED) ## Ensure ninja tool is recent enough... if(CMAKE_GENERATOR MATCHES "^Ninja") @@ -82,15 +85,19 @@ macro(__compiler_gnu lang) unset(_linker_capabilities) endif() endif() - if (CMAKE_${lang}_LINKER_DEPFILE_SUPPORTED) - set(CMAKE_${lang}_LINKER_DEPFILE_FLAGS "LINKER:--dependency-file,<DEP_FILE>") - set(CMAKE_${lang}_LINKER_DEPFILE_FORMAT gcc) set(CMAKE_${lang}_LINK_DEPENDS_USE_LINKER TRUE) else() unset(CMAKE_${lang}_LINK_DEPENDS_USE_LINKER) endif() + # For now, due to GNU binutils ld bug when LTO is enabled (see GNU bug + # `30568 <https://sourceware.org/bugzilla/show_bug.cgi?id=30568>`_), + # deactivate this feature. + if (NOT DEFINED CMAKE_LINK_DEPENDS_USE_LINKER) + set(CMAKE_LINK_DEPENDS_USE_LINKER FALSE) + endif() + # Initial configuration flags. string(APPEND CMAKE_${lang}_FLAGS_INIT " ") string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g") |