From 94dddaf5e55fe85054b54988ad503e4d2f5a8966 Mon Sep 17 00:00:00 2001 From: wangpc Date: Thu, 29 Feb 2024 12:06:46 +0800 Subject: Add LTO support of Clang/LLVM We need to build LLVMgold.so and copy it to installation dir. I think it deserves to be default, so I don't add an option to enable this. --- Makefile.in | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Makefile.in b/Makefile.in index daab494..46b78bd 100644 --- a/Makefile.in +++ b/Makefile.in @@ -357,6 +357,8 @@ stamps/build-binutils-linux: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) $(PREPARATIO $(CONFIGURE_HOST) \ --prefix=$(INSTALL_DIR) \ --with-sysroot=$(SYSROOT) \ + --enable-gold \ + --enable-plugins \ $(MULTILIB_FLAGS) \ @with_guile@ \ --disable-werror \ @@ -526,6 +528,8 @@ stamps/build-binutils-linux-native: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) stamp --target=$(LINUX_TUPLE) \ $(CONFIGURE_HOST) \ --prefix=$(INSTALL_DIR)/native \ + --enable-gold \ + --enable-plugins \ $(MULTILIB_FLAGS) \ @with_guile@ \ --disable-werror \ @@ -583,6 +587,8 @@ stamps/build-binutils-newlib: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) $(PREPARATI --target=$(NEWLIB_TUPLE) \ $(CONFIGURE_HOST) \ --prefix=$(INSTALL_DIR) \ + --enable-gold \ + --enable-plugins \ @with_guile@ \ --disable-werror \ $(BINUTILS_TARGET_FLAGS) \ @@ -770,6 +776,8 @@ stamps/build-binutils-musl: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) $(PREPARATION $(CONFIGURE_HOST) \ --prefix=$(INSTALL_DIR) \ --with-sysroot=$(SYSROOT) \ + --enable-gold \ + --enable-plugins \ $(MULTILIB_FLAGS) \ @with_guile@ \ --disable-werror \ @@ -966,10 +974,12 @@ stamps/build-llvm-linux: $(LLVM_SRCDIR) $(LLVM_SRC_GIT) \ -DDEFAULT_SYSROOT="../sysroot" \ -DLLVM_RUNTIME_TARGETS=$(call make_tuple,$(XLEN),linux-gnu) \ -DLLVM_INSTALL_TOOLCHAIN_ONLY=On \ + -DLLVM_BINUTILS_INCDIR=`find $(INSTALL_DIR) -name plugin-api.h | xargs dirname` \ -DLLVM_PARALLEL_LINK_JOBS=4 $(MAKE) -C $(notdir $@) $(MAKE) -C $(notdir $@) install cp $(notdir $@)/lib/riscv$(XLEN)-unknown-linux-gnu/libc++* $(SYSROOT)/lib + cp $(notdir $@)/lib/LLVMgold.so $(INSTALL_DIR)/lib cd $(INSTALL_DIR)/bin && ln -s -f clang $(LINUX_TUPLE)-clang && ln -s -f clang++ $(LINUX_TUPLE)-clang++ mkdir -p $(dir $@) && touch $@ @@ -984,9 +994,11 @@ stamps/build-llvm-newlib: $(LLVM_SRCDIR) $(LLVM_SRC_GIT) stamps/build-gcc-newlib -DLLVM_ENABLE_PROJECTS="clang;lld" \ -DLLVM_DEFAULT_TARGET_TRIPLE="$(NEWLIB_TUPLE)" \ -DLLVM_INSTALL_TOOLCHAIN_ONLY=On \ + -DLLVM_BINUTILS_INCDIR=`find $(INSTALL_DIR) -name plugin-api.h | xargs dirname` \ -DLLVM_PARALLEL_LINK_JOBS=4 $(MAKE) -C $(notdir $@) $(MAKE) -C $(notdir $@) install + cp $(notdir $@)/lib/LLVMgold.so $(INSTALL_DIR)/lib cd $(INSTALL_DIR)/bin && ln -s -f clang $(NEWLIB_TUPLE)-clang && \ ln -s -f clang++ $(NEWLIB_TUPLE)-clang++ mkdir -p $(dir $@) && touch $@ -- cgit v1.1