Add install strip support
Binutils and GCC have an install target 'install-strip' which can strips debug symbols at install. This can reduce installed size largely. LLVM has similar install target 'install/strip'. Thanks for shenki's previous work Signed-off-by: demin.han <demin.han@starfivetech.com>
This commit is contained in:
parent
4db66423a9
commit
99c9bec115
42
Makefile.in
42
Makefile.in
|
@ -17,6 +17,7 @@ LLVM_SRCDIR := @with_llvm_src@
|
|||
DEJAGNU_SRCDIR := @with_dejagnu_src@
|
||||
DEBUG_INFO := @debug_info@
|
||||
ENABLE_DEFAULT_PIE := @enable_default_pie@
|
||||
INSTALL_TARGET := @install_target@
|
||||
|
||||
SIM ?= @WITH_SIM@
|
||||
|
||||
|
@ -40,6 +41,7 @@ WITH_ISA_SPEC ?= @WITH_ISA_SPEC@
|
|||
SYSROOT := $(INSTALL_DIR)/sysroot
|
||||
ENABLE_LIBSANITIZER ?= @enable_libsanitizer@
|
||||
QEMU_TARGETS ?= @qemu_targets@
|
||||
QEMU_EXTRA_CONFIGURE_FLAGS := @enable_strip_qemu@ $(QEMU_EXTRA_CONFIGURE_FLAGS)
|
||||
|
||||
ENABLED_LANGUAGES ?= @WITH_LANGUAGES@
|
||||
ifeq ($(ENABLED_LANGUAGES),)
|
||||
|
@ -355,7 +357,7 @@ stamps/install-host-gcc: $(GCC_SRCDIR) $(GCC_SRC_GIT)
|
|||
--disable-bootstrap \
|
||||
--disable-multilib
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
#
|
||||
|
@ -383,7 +385,7 @@ stamps/build-binutils-linux: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) $(PREPARATIO
|
|||
--disable-readline \
|
||||
$(WITH_ISA_SPEC)
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
stamps/build-gdb-linux: $(GDB_SRCDIR) $(GDB_SRC_GIT) $(PREPARATION_STAMP)
|
||||
|
@ -407,7 +409,7 @@ stamps/build-gdb-linux: $(GDB_SRCDIR) $(GDB_SRC_GIT) $(PREPARATION_STAMP)
|
|||
--disable-gold \
|
||||
--disable-gprof
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
stamps/build-glibc-linux-headers: $(GLIBC_SRCDIR) $(GLIBC_SRC_GIT) stamps/build-gcc-linux-stage1
|
||||
|
@ -494,7 +496,7 @@ stamps/build-gcc-linux-stage1: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-binutil
|
|||
CFLAGS_FOR_TARGET="-O2 $(CFLAGS_FOR_TARGET)" \
|
||||
CXXFLAGS_FOR_TARGET="-O2 $(CXXFLAGS_FOR_TARGET)"
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true all-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true install-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true $(INSTALL_TARGET)-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true all-target-libgcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true install-target-libgcc
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
@ -532,7 +534,7 @@ stamps/build-gcc-linux-stage2: $(GCC_SRCDIR) $(GCC_SRC_GIT) $(addprefix stamps/b
|
|||
CFLAGS_FOR_TARGET="-O2 $(CFLAGS_FOR_TARGET)" \
|
||||
CXXFLAGS_FOR_TARGET="-O2 $(CXXFLAGS_FOR_TARGET)"
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
cp -a $(INSTALL_DIR)/$(LINUX_TUPLE)/lib* $(SYSROOT)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
|
@ -556,7 +558,7 @@ stamps/build-binutils-linux-native: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) stamp
|
|||
--disable-readline \
|
||||
$(WITH_ISA_SPEC)
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
|
||||
|
@ -588,7 +590,7 @@ stamps/build-gcc-linux-native: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-gcc-lin
|
|||
$(WITH_ISA_SPEC) \
|
||||
$(GCC_EXTRA_CONFIGURE_FLAGS)
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
cp -a $(INSTALL_DIR)/$(LINUX_TUPLE)/lib* $(SYSROOT)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
|
@ -614,7 +616,7 @@ stamps/build-binutils-newlib: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) $(PREPARATI
|
|||
--disable-readline \
|
||||
$(WITH_ISA_SPEC)
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
stamps/build-gdb-newlib: $(GDB_SRCDIR) $(GDB_SRC_GIT) $(PREPARATION_STAMP)
|
||||
|
@ -635,7 +637,7 @@ stamps/build-gdb-newlib: $(GDB_SRCDIR) $(GDB_SRC_GIT) $(PREPARATION_STAMP)
|
|||
--disable-gold \
|
||||
--disable-gprof
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
stamps/build-gcc-newlib-stage1: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-binutils-newlib
|
||||
|
@ -670,7 +672,7 @@ stamps/build-gcc-newlib-stage1: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-binuti
|
|||
CFLAGS_FOR_TARGET="-Os $(CFLAGS_FOR_TARGET)" \
|
||||
CXXFLAGS_FOR_TARGET="-Os $(CXXFLAGS_FOR_TARGET)"
|
||||
$(MAKE) -C $(notdir $@) all-gcc
|
||||
$(MAKE) -C $(notdir $@) install-gcc
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)-gcc
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
stamps/build-newlib: $(NEWLIB_SRCDIR) $(NEWLIB_SRC_GIT) stamps/build-gcc-newlib-stage1
|
||||
|
@ -779,7 +781,7 @@ stamps/build-gcc-newlib-stage2: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-newlib
|
|||
CFLAGS_FOR_TARGET="-Os $(CFLAGS_FOR_TARGET)" \
|
||||
CXXFLAGS_FOR_TARGET="-Os $(CXXFLAGS_FOR_TARGET)"
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
#
|
||||
|
@ -807,7 +809,7 @@ stamps/build-binutils-musl: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) $(PREPARATION
|
|||
--disable-readline \
|
||||
$(WITH_ISA_SPEC)
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
stamps/build-gdb-musl: $(GDB_SRCDIR) $(GDB_SRC_GIT) $(PREPARATION_STAMP)
|
||||
|
@ -831,7 +833,7 @@ stamps/build-gdb-musl: $(GDB_SRCDIR) $(GDB_SRC_GIT) $(PREPARATION_STAMP)
|
|||
--disable-gold \
|
||||
--disable-gprof
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
stamps/build-gcc-musl-stage1: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-binutils-musl \
|
||||
|
@ -868,7 +870,7 @@ stamps/build-gcc-musl-stage1: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-binutils
|
|||
CFLAGS_FOR_TARGET="-O2 $(CFLAGS_FOR_TARGET)" \
|
||||
CXXFLAGS_FOR_TARGET="-O2 $(CXXFLAGS_FOR_TARGET)"
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true all-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true install-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true $(INSTALL_TARGET)-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true all-target-libgcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true install-target-libgcc
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
@ -939,7 +941,7 @@ stamps/build-gcc-musl-stage2: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-musl-lin
|
|||
CFLAGS_FOR_TARGET="-O2 $(CFLAGS_FOR_TARGET)" \
|
||||
CXXFLAGS_FOR_TARGET="-O2 $(CXXFLAGS_FOR_TARGET)"
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
cp -a $(INSTALL_DIR)/$(MUSL_TUPLE)/lib* $(SYSROOT)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
|
@ -968,7 +970,7 @@ stamps/build-binutils-uclibc: $(BINUTILS_SRCDIR) $(BINUTILS_SRC_GIT) $(PREPARATI
|
|||
--disable-readline \
|
||||
$(WITH_ISA_SPEC)
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
stamps/build-gcc-uclibc-stage1: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-binutils-uclibc \
|
||||
|
@ -1004,7 +1006,7 @@ stamps/build-gcc-uclibc-stage1: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-binuti
|
|||
CFLAGS_FOR_TARGET="-O2 $(CFLAGS_FOR_TARGET)" \
|
||||
CXXFLAGS_FOR_TARGET="-O2 $(CXXFLAGS_FOR_TARGET)"
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true all-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true install-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true $(INSTALL_TARGET)-gcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true all-target-libgcc
|
||||
$(MAKE) -C $(notdir $@) inhibit-libc=true install-target-libgcc
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
@ -1072,7 +1074,7 @@ stamps/build-gcc-uclibc-stage2: $(GCC_SRCDIR) $(GCC_SRC_GIT) stamps/build-uclibc
|
|||
CFLAGS_FOR_TARGET="-O2 $(CFLAGS_FOR_TARGET)" \
|
||||
CXXFLAGS_FOR_TARGET="-O2 $(CXXFLAGS_FOR_TARGET)"
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(INSTALL_TARGET)
|
||||
cp -a $(INSTALL_DIR)/$(UCLIBC_TUPLE)/lib* $(SYSROOT)
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
||||
|
@ -1158,7 +1160,7 @@ stamps/build-llvm-linux: $(LLVM_SRCDIR) $(LLVM_SRC_GIT) $(BINUTILS_SRCDIR) $(BIN
|
|||
-DLLVM_PARALLEL_LINK_JOBS=4 \
|
||||
$(LLVM_EXTRA_CONFIGURE_FLAGS)
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(subst -,/,$(INSTALL_TARGET))
|
||||
# Build shared/static OpenMP libraries on RV64.
|
||||
if test $(XLEN) -eq 64; then \
|
||||
mkdir $(notdir $@)/openmp-shared; \
|
||||
|
@ -1220,7 +1222,7 @@ stamps/build-llvm-newlib: $(LLVM_SRCDIR) $(LLVM_SRC_GIT) $(BINUTILS_SRCDIR) $(BI
|
|||
-DLLVM_PARALLEL_LINK_JOBS=4 \
|
||||
$(LLVM_EXTRA_CONFIGURE_FLAGS)
|
||||
$(MAKE) -C $(notdir $@)
|
||||
$(MAKE) -C $(notdir $@) install
|
||||
$(MAKE) -C $(notdir $@) $(subst -,/,$(INSTALL_TARGET))
|
||||
cd $(INSTALL_DIR)/bin && ln -s -f clang $(NEWLIB_TUPLE)-clang && \
|
||||
ln -s -f clang++ $(NEWLIB_TUPLE)-clang++
|
||||
mkdir -p $(dir $@) && touch $@
|
||||
|
|
|
@ -108,6 +108,9 @@ To customize the enabled languages, use option `--with-languages=`. For example,
|
|||
if you want to enable `c,c++,fortran`, use `./configure --with-languages=c,c++,fortran`.
|
||||
This option only takes effect for the GNU toolchain.
|
||||
|
||||
The toolchain has an option `--enable-strip` to control strip of host binaries,
|
||||
strip is disabled by default.
|
||||
|
||||
### Troubleshooting Build Problems
|
||||
|
||||
Builds work best if installing into an empty directory. If you build a
|
||||
|
|
|
@ -630,6 +630,8 @@ with_glibc_src
|
|||
with_newlib_src
|
||||
with_binutils_src
|
||||
with_gcc_src
|
||||
enable_strip_qemu
|
||||
install_target
|
||||
enable_host_gcc
|
||||
enable_llvm
|
||||
enable_gdb
|
||||
|
@ -736,6 +738,7 @@ with_guile
|
|||
enable_gdb
|
||||
enable_llvm
|
||||
enable_host_gcc
|
||||
enable_strip
|
||||
with_gcc_src
|
||||
with_binutils_src
|
||||
with_newlib_src
|
||||
|
@ -1392,6 +1395,7 @@ Optional Features:
|
|||
--disable-gdb Don't build GDB, as it's not upstream
|
||||
--enable-llvm Build LLVM (clang)
|
||||
--enable-host-gcc Build host GCC to build cross toolchain
|
||||
--enable-strip Strip debug symbols at install time
|
||||
--enable-libsanitizer Build libsanitizer, which only supports rv64
|
||||
--enable-qemu-system Build qemu with system-mode emulation
|
||||
|
||||
|
@ -4345,6 +4349,28 @@ else $as_nop
|
|||
|
||||
fi
|
||||
|
||||
# Check whether --enable-strip was given.
|
||||
if test ${enable_strip+y}
|
||||
then :
|
||||
enableval=$enable_strip; enable_strip=yes
|
||||
fi
|
||||
|
||||
|
||||
if test "x$enable_strip" != xyes
|
||||
then :
|
||||
install_target=install
|
||||
|
||||
else $as_nop
|
||||
install_target=install-strip
|
||||
|
||||
fi
|
||||
|
||||
if test "x$enable_strip" = xyes
|
||||
then :
|
||||
enable_strip_qemu=-Dstrip=true
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
|
14
configure.ac
14
configure.ac
|
@ -293,6 +293,20 @@ AS_IF([test "x$enable_host_gcc" != xyes],
|
|||
[AC_SUBST(enable_host_gcc, --disable-host-gcc)],
|
||||
[AC_SUBST(enable_host_gcc, --enable-host-gcc)])
|
||||
|
||||
AC_ARG_ENABLE(strip,
|
||||
[AS_HELP_STRING([--enable-strip],
|
||||
[Strip debug symbols at install time])],
|
||||
[enable_strip=yes],
|
||||
[]
|
||||
)
|
||||
|
||||
AS_IF([test "x$enable_strip" != xyes],
|
||||
[AC_SUBST(install_target, install)],
|
||||
[AC_SUBST(install_target, install-strip)])
|
||||
|
||||
AS_IF([test "x$enable_strip" = xyes],
|
||||
[AC_SUBST(enable_strip_qemu, -Dstrip=true)])
|
||||
|
||||
AC_DEFUN([AX_ARG_WITH_SRC],
|
||||
[{m4_pushdef([opt_name], with_$1_src)
|
||||
AC_ARG_WITH($1-src,
|
||||
|
|
Loading…
Reference in New Issue