summaryrefslogtreecommitdiff
path: root/Modules/Compiler/GNU.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/Compiler/GNU.cmake')
-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 db1eab557..48639cd67 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()