summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2023-06-23 12:36:55 (GMT)
committerBrad King <brad.king@kitware.com>2023-06-23 14:35:04 (GMT)
commit5945a98ced2e1f4794f26f39256c95d875220408 (patch)
tree1b114fde8fdc509ae02a7390e6fca8acf85b2066 /Modules/Compiler
parent99ea9ad947e980d179a618ff1f67fa27a30975d3 (diff)
downloadCMake-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.cmake13
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")