summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-08-10 18:45:54 (GMT)
committerBrad King <brad.king@kitware.com>2022-08-10 18:49:34 (GMT)
commit7b2a87c2ebede25e88a7d22a3c647be662c18391 (patch)
treecde61977f5ebcaf3d00a492c711da462e4d74581 /Modules/Compiler
parent4be24f031a4829db75b85062cc67125035d8831e (diff)
downloadCMake-7b2a87c2ebede25e88a7d22a3c647be662c18391.zip
CMake-7b2a87c2ebede25e88a7d22a3c647be662c18391.tar.gz
CMake-7b2a87c2ebede25e88a7d22a3c647be662c18391.tar.bz2
IPO: Do not use -flto=auto with GCC 10.x on Windows
Revise the change from commit fe57410b33 (IPO: Use -flto=auto if compiler is GCC >= 10.1, 2022-06-22, v3.24.0-rc2~2^2) to require at least GCC 11 on Windows. Fixes: #23836 Issue: #23640
Diffstat (limited to 'Modules/Compiler')
-rw-r--r--Modules/Compiler/GNU.cmake9
1 files changed, 8 insertions, 1 deletions
diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake
index db1eab5..48639cd 100644
--- a/Modules/Compiler/GNU.cmake
+++ b/Modules/Compiler/GNU.cmake
@@ -79,8 +79,15 @@ macro(__compiler_gnu lang)
# * https://gcc.gnu.org/onlinedocs/gcc-9.5.0/gcc/Optimize-Options.html#Optimize-Options (no)
# * https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#Optimize-Options (yes)
# Since GCC 12.1, the abundance of a parameter produces a warning if compiling multiple targets.
- if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 10.1)
+ # FIXME: What version of GCC for Windows added support for -flto=auto? 10.3 does not have it.
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 11.0)
list(APPEND __lto_flags -flto=auto)
+ elseif(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 10.1)
+ if (CMAKE_HOST_WIN32)
+ list(APPEND __lto_flags -flto=1)
+ else()
+ list(APPEND __lto_flags -flto=auto)
+ endif()
else()
list(APPEND __lto_flags -flto)
endif()