Browse Source

Merge topic 'lto-gnu-apple'

f65a6d2cb1 GNU: Do not use "fat-lto-objects" flags for IPO on Apple platforms

Acked-by: Kitware Robot <[email protected]>
Merge-request: !9461
Brad King 1 year ago
parent
commit
1a676eb580
2 changed files with 7 additions and 3 deletions
  1. 1 1
      Modules/Compiler/GNU.cmake
  2. 6 2
      Modules/FortranCInterface/CMakeLists.txt

+ 1 - 1
Modules/Compiler/GNU.cmake

@@ -151,7 +151,7 @@ macro(__compiler_gnu lang)
       list(APPEND __lto_flags -flto)
     endif()
 
-    if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7)
+    if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7 AND NOT APPLE)
       # '-ffat-lto-objects' introduced since GCC 4.7:
       # * https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Option-Summary.html (no)
       # * https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Option-Summary.html (yes)

+ 6 - 2
Modules/FortranCInterface/CMakeLists.txt

@@ -113,11 +113,15 @@ target_link_libraries(FortranCInterface PUBLIC symbols)
 if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND
   CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 12)
   target_compile_options(FortranCInterface PRIVATE "-fno-lto")
-  target_compile_options(myfort PRIVATE "-flto=auto" "-ffat-lto-objects")
+  if(NOT APPLE)
+    target_compile_options(myfort PRIVATE "-flto=auto" "-ffat-lto-objects")
+  endif()
 endif()
 if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND
   CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12)
-  target_compile_options(symbols PRIVATE "-flto=auto" "-ffat-lto-objects")
+  if(NOT APPLE)
+    target_compile_options(symbols PRIVATE "-flto=auto" "-ffat-lto-objects")
+  endif()
 endif()
 
 file(GENERATE OUTPUT exe-$<CONFIG>.cmake CONTENT [[