diff options
author | Tom Stellard <tstellar@redhat.com> | 2025-07-29 15:33:49 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-29 15:33:49 -0700 |
commit | cff9ae7a15a5d1e9bf385aceea02daf5ed8482fe (patch) | |
tree | f9f31cd7f32fdc5a56bac5a5e1d129a13c7ad657 | |
parent | d99238263cb9ad8403f630b046b06ce41d0e8940 (diff) | |
download | llvm-cff9ae7a15a5d1e9bf385aceea02daf5ed8482fe.zip llvm-cff9ae7a15a5d1e9bf385aceea02daf5ed8482fe.tar.gz llvm-cff9ae7a15a5d1e9bf385aceea02daf5ed8482fe.tar.bz2 |
[CMake][Release] Build with -ffat-lto-objects (#140381)
Fixes #133580
-rw-r--r-- | clang/cmake/caches/Release.cmake | 6 | ||||
-rw-r--r-- | clang/cmake/caches/release_cpack_pre_build_strip_lto.cmake | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/cmake/caches/Release.cmake b/clang/cmake/caches/Release.cmake index fb12dfc..a523cc5 100644 --- a/clang/cmake/caches/Release.cmake +++ b/clang/cmake/caches/Release.cmake @@ -102,7 +102,7 @@ if (LLVM_RELEASE_ENABLE_LTO) # FIXME: We can't use LLVM_ENABLE_LTO=Thin here, because it causes the CMake # step for the libcxx build to fail. CMAKE_INTERPROCEDURAL_OPTIMIZATION does # enable ThinLTO, though. - set(RUNTIMES_CMAKE_ARGS "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DLLVM_ENABLE_LLD=ON" CACHE STRING "") + set(RUNTIMES_CMAKE_ARGS "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DLLVM_ENABLE_LLD=ON -DLLVM_ENABLE_FATLTO=ON" CACHE STRING "") endif() # Stage 1 Common Config @@ -144,3 +144,7 @@ set_final_stage_var(CPACK_GENERATOR "TXZ" STRING) set_final_stage_var(CPACK_ARCHIVE_THREADS "0" STRING) set_final_stage_var(LLVM_USE_STATIC_ZSTD "ON" BOOL) +if (LLVM_RELEASE_ENABLE_LTO) + set_final_stage_var(LLVM_ENABLE_FATLTO "ON" BOOL) + set_final_stage_var(CPACK_PRE_BUILD_SCRIPTS "${CMAKE_CURRENT_LIST_DIR}/release_cpack_pre_build_strip_lto.cmake" STRING) +endif() diff --git a/clang/cmake/caches/release_cpack_pre_build_strip_lto.cmake b/clang/cmake/caches/release_cpack_pre_build_strip_lto.cmake new file mode 100644 index 0000000..743b64f --- /dev/null +++ b/clang/cmake/caches/release_cpack_pre_build_strip_lto.cmake @@ -0,0 +1,5 @@ +file(GLOB files ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/lib/*.a) + +foreach(file ${files}) + execute_process(COMMAND ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/bin/llvm-strip --no-strip-all -R .llvm.lto ${file}) +endforeach() |