summaryrefslogtreecommitdiffstats
path: root/Modules/Compiler
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-06-23 13:24:42 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-06-23 13:24:59 (GMT)
commit4137cf196401f71f1e9623159ccfdd33875bd373 (patch)
tree67f0774b65da4635ae2c4d72a9e9dcbffe9e1f8c /Modules/Compiler
parente09ea00476b57096cebbd1e8d0c43fb288683080 (diff)
parentfe57410b33de1e8640091f0a1ac3ddde81163882 (diff)
downloadCMake-4137cf196401f71f1e9623159ccfdd33875bd373.zip
CMake-4137cf196401f71f1e9623159ccfdd33875bd373.tar.gz
CMake-4137cf196401f71f1e9623159ccfdd33875bd373.tar.bz2
Merge topic 'ipo_append_auto_on_gcc'
fe57410b33 IPO: Use -flto=auto if compiler is GCC >= 10.1 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7400
Diffstat (limited to 'Modules/Compiler')
-rw-r--r--Modules/Compiler/GNU.cmake13
1 files changed, 12 insertions, 1 deletions
diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake
index c5946f0..db1eab5 100644
--- a/Modules/Compiler/GNU.cmake
+++ b/Modules/Compiler/GNU.cmake
@@ -72,7 +72,18 @@ macro(__compiler_gnu lang)
# * https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gcc/Option-Summary.html (yes)
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.5)
set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
- set(__lto_flags -flto)
+
+ set(__lto_flags "")
+
+ # '-flto=auto' introduced since GCC 10.1:
+ # * 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)
+ list(APPEND __lto_flags -flto=auto)
+ else()
+ list(APPEND __lto_flags -flto)
+ endif()
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7)
# '-ffat-lto-objects' introduced since GCC 4.7: