mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-07-27 11:41:39 +00:00
Only enable LTO for some archs
This commit is contained in:
parent
0988deb2e8
commit
a235abc1ef
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
|||||||
|
llvm-toolchain-15 (1:15.0.2-2~exp5) experimental; urgency=medium
|
||||||
|
|
||||||
|
* Only enable LTO for some archs
|
||||||
|
|
||||||
|
-- Sylvestre Ledru <sylvestre@debian.org> Tue, 11 Oct 2022 09:15:56 +0200
|
||||||
|
|
||||||
llvm-toolchain-15 (1:15.0.2-2~exp4) experimental; urgency=medium
|
llvm-toolchain-15 (1:15.0.2-2~exp4) experimental; urgency=medium
|
||||||
|
|
||||||
* Only ship libbolt_rt_hugify.a & libbolt_rt_instr.a on amd64
|
* Only ship libbolt_rt_hugify.a & libbolt_rt_instr.a on amd64
|
||||||
|
19
debian/rules
vendored
19
debian/rules
vendored
@ -395,17 +395,15 @@ ifneq (,$(filter $(DEB_HOST_ARCH_OS),linux))
|
|||||||
STAGE_2_CMAKE_EXTRA += -DLLVM_USE_PERF=ON -DLLVM_ENABLE_LIBPFM=ON
|
STAGE_2_CMAKE_EXTRA += -DLLVM_USE_PERF=ON -DLLVM_ENABLE_LIBPFM=ON
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
LTO_ENABLE=no
|
||||||
# Only enable it for archs supporting gold
|
# Only enable it for archs supporting gold
|
||||||
ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS)))
|
ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS)))
|
||||||
# armhf is not yet quite ready for Thin, it FTBFS
|
# LTO requires a bunch of memory. Don't do it everywhere
|
||||||
# see https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-8&arch=armhf&ver=1%3A8.0.1%7E%2Brc2-1%7Eexp1&stamp=1560334266&raw=0
|
LTO_DISABLE_ARCHS := i386 armhf s390x ppc64 x32
|
||||||
ifeq (,$(filter $(DEB_HOST_ARCH), armhf))
|
ifeq (,$(filter-out $(LTO_DISABLE_ARCHS), $(DEB_HOST_ARCH)))
|
||||||
# Use BOOTSTRAP_LLVM_ENABLE_LTO to make sure that it isn't used
|
LTO_ENABLE=no
|
||||||
# when running stage1 with gcc
|
else
|
||||||
# For now, disable ThinLTO usage because:
|
LTO_ENABLE=yes
|
||||||
# * LLVM_ENABLE_LTO doesn't work with gcc >= 9 (option not accepted)
|
|
||||||
# * BOOTSTRAP_LLVM_ENABLE_LTO is producing some large binary
|
|
||||||
# See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943623
|
|
||||||
STAGE_2_CMAKE_EXTRA += -DLLVM_ENABLE_LTO="On"
|
STAGE_2_CMAKE_EXTRA += -DLLVM_ENABLE_LTO="On"
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@ -477,6 +475,7 @@ preconfigure:
|
|||||||
@echo "PATH=$(PATH)"
|
@echo "PATH=$(PATH)"
|
||||||
@echo "LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)"
|
@echo "LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)"
|
||||||
@echo "LIBFUZZER_ENABLE=$(LIBFUZZER_ENABLE)"
|
@echo "LIBFUZZER_ENABLE=$(LIBFUZZER_ENABLE)"
|
||||||
|
@echo "LTO_ENABLE=$(LTO_ENABLE)"
|
||||||
@echo "COMPILER_RT_WASM_ENABLE=$(COMPILER_RT_WASM_ENABLE)"
|
@echo "COMPILER_RT_WASM_ENABLE=$(COMPILER_RT_WASM_ENABLE)"
|
||||||
|
|
||||||
for f in debian/*.in; do \
|
for f in debian/*.in; do \
|
||||||
@ -822,8 +821,10 @@ override_dh_auto_install:
|
|||||||
# Clean up temporary files to make sure the install works
|
# Clean up temporary files to make sure the install works
|
||||||
rm -rf $(find $(TARGET_BUILD) -wholename '*CMakeFiles*' -not -name CMakeLists.txt -a -name "*.dir" -type d)
|
rm -rf $(find $(TARGET_BUILD) -wholename '*CMakeFiles*' -not -name CMakeLists.txt -a -name "*.dir" -type d)
|
||||||
|
|
||||||
|
ifeq (${LTO_ENABLE},yes)
|
||||||
# with LTO, .a contains llvm ir instead of native code. So, recompile them
|
# with LTO, .a contains llvm ir instead of native code. So, recompile them
|
||||||
NJOBS="$(NJOBS)" P_TO_LLVM="$(CURDIR)" VERSION=$(LLVM_VERSION) bash debian/llvm-compile-lto-elf.sh $(CXXFLAGS_EXTRA)
|
NJOBS="$(NJOBS)" P_TO_LLVM="$(CURDIR)" VERSION=$(LLVM_VERSION) bash debian/llvm-compile-lto-elf.sh $(CXXFLAGS_EXTRA)
|
||||||
|
endif
|
||||||
|
|
||||||
# install/fast enables a make install without recompiling temporary files
|
# install/fast enables a make install without recompiling temporary files
|
||||||
LD_LIBRARY_PATH=$(STAGE_2_LIB_DIR):$$LD_LIBRARY_PATH DESTDIR=$(DEB_INST)/ ninja -C $(TARGET_BUILD) $(VERBOSE) stage2-install
|
LD_LIBRARY_PATH=$(STAGE_2_LIB_DIR):$$LD_LIBRARY_PATH DESTDIR=$(DEB_INST)/ ninja -C $(TARGET_BUILD) $(VERBOSE) stage2-install
|
||||||
|
Loading…
Reference in New Issue
Block a user