[llvm] [cmake] Disable using FatLTO on Apple platforms (PR #85708)

Paul Kirth via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 18 15:03:25 PDT 2024


https://github.com/ilovepi created https://github.com/llvm/llvm-project/pull/85708

FatLTO currently only supports ELF, so ensure we don't use it
on non-ELF platforms.


>From 241869af43b055cca60ac1b04023348538e08415 Mon Sep 17 00:00:00 2001
From: Paul Kirth <paulkirth at google.com>
Date: Mon, 18 Mar 2024 22:03:12 +0000
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
 =?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Created using spr 1.3.4
---
 llvm/cmake/modules/AddLLVM.cmake           | 2 +-
 llvm/cmake/modules/HandleLLVMOptions.cmake | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index d84d9d7cca68cf..745935f1405170 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -1637,7 +1637,7 @@ function(add_unittest test_suite test_name)
   # The runtime benefits of LTO don't outweight the compile time costs for tests.
   if(LLVM_ENABLE_LTO)
     if((UNIX OR MINGW) AND LINKER_IS_LLD)
-      if(LLVM_ENABLE_FATLTO)
+      if(LLVM_ENABLE_FATLTO AND NOT APPLE)
         # When using FatLTO, just use relocatable linking.
         set_property(TARGET ${test_name} APPEND_STRING PROPERTY
                       LINK_FLAGS " -Wl,--no-fat-lto-objects")
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
index 92fa9839db652d..185266c0861e86 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -1282,7 +1282,7 @@ elseif(LLVM_ENABLE_LTO)
   endif()
 endif()
 
-if(LLVM_ENABLE_FATLTO AND (FUCHSIA OR UNIX))
+if(LLVM_ENABLE_FATLTO AND UNIX AND NOT APPLE)
   append("-ffat-lto-objects" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
   if(NOT LINKER_IS_LLD_LINK)
     append("-ffat-lto-objects" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS)



More information about the llvm-commits mailing list