Skip to content

Commit 6578790

Browse files
authored
Reapply "[Fuchsia][cmake] Allow using FatLTO when building runtimes" (#119252) (#121820)
The previous failures were addressed with CMake changes in #121819
1 parent 713482f commit 6578790

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

Diff for: clang/cmake/caches/Fuchsia-stage2.cmake

+16
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,10 @@ foreach(target aarch64-unknown-linux-gnu;armv7-unknown-linux-gnueabihf;i386-unkn
190190
set(RUNTIMES_${target}_LLVM_TOOLS_DIR "${CMAKE_BINARY_DIR}/bin" CACHE BOOL "")
191191
set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")
192192

193+
# Enable FatLTO for Linux and baremetal runtimes
194+
set(RUNTIMES_${target}_LLVM_ENABLE_LTO ON CACHE BOOL "")
195+
set(RUNTIMES_${target}_LLVM_ENABLE_FATLTO ON CACHE BOOL "")
196+
193197
# Use .build-id link.
194198
list(APPEND RUNTIME_BUILD_ID_LINK "${target}")
195199
endif()
@@ -272,6 +276,10 @@ if(FUCHSIA_SDK)
272276
set(RUNTIMES_${target}+asan+noexcept_LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "")
273277
set(RUNTIMES_${target}+asan+noexcept_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "")
274278

279+
# Enable FatLTO for Fuchsia runtimes
280+
set(RUNTIMES_${target}_LLVM_ENABLE_LTO ON CACHE BOOL "")
281+
set(RUNTIMES_${target}_LLVM_ENABLE_FATLTO ON CACHE BOOL "")
282+
275283
# Use .build-id link.
276284
list(APPEND RUNTIME_BUILD_ID_LINK "${target}")
277285
endforeach()
@@ -369,6 +377,10 @@ foreach(target armv6m-none-eabi;armv7m-none-eabi;armv7em-none-eabi;armv8m.main-n
369377
set(RUNTIMES_${target}_LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
370378
set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "")
371379
set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "libc;libcxx" CACHE STRING "")
380+
381+
# Enable FatLTO for baremetal runtimes
382+
set(RUNTIMES_${target}_LLVM_ENABLE_LTO ON CACHE BOOL "")
383+
set(RUNTIMES_${target}_LLVM_ENABLE_FATLTO ON CACHE BOOL "")
372384
endforeach()
373385

374386
foreach(target riscv32-unknown-elf)
@@ -420,6 +432,10 @@ foreach(target riscv32-unknown-elf)
420432
set(RUNTIMES_${target}_LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
421433
set(RUNTIMES_${target}_LLVM_ENABLE_ASSERTIONS OFF CACHE BOOL "")
422434
set(RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES "libc;libcxx" CACHE STRING "")
435+
436+
# Enable FatLTO for baremetal runtimes
437+
set(RUNTIMES_${target}_LLVM_ENABLE_LTO ON CACHE BOOL "")
438+
set(RUNTIMES_${target}_LLVM_ENABLE_FATLTO ON CACHE BOOL "")
423439
endforeach()
424440

425441
set(LLVM_BUILTIN_TARGETS "${BUILTIN_TARGETS}" CACHE STRING "")

Diff for: llvm/cmake/modules/HandleLLVMOptions.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -1285,7 +1285,7 @@ elseif(LLVM_ENABLE_LTO)
12851285
endif()
12861286
endif()
12871287

1288-
if(LLVM_ENABLE_FATLTO AND UNIX AND NOT APPLE)
1288+
if(LLVM_ENABLE_FATLTO AND ((UNIX AND NOT APPLE) OR FUCHSIA))
12891289
append("-ffat-lto-objects" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
12901290
if(NOT LINKER_IS_LLD_LINK)
12911291
append("-ffat-lto-objects" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS)

0 commit comments

Comments
 (0)