aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/nightly-release.yaml2
-rw-r--r--Makefile.in43
-rw-r--r--README.md8
-rwxr-xr-xconfigure26
-rw-r--r--configure.ac14
5 files changed, 71 insertions, 22 deletions
diff --git a/.github/workflows/nightly-release.yaml b/.github/workflows/nightly-release.yaml
index a374d8b..8326161 100644
--- a/.github/workflows/nightly-release.yaml
+++ b/.github/workflows/nightly-release.yaml
@@ -48,7 +48,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ubuntu-22.04, ubuntu-24.04]
+ os: [ubuntu-22.04, ubuntu-24.04, ubuntu-22.04-arm, ubuntu-24.04-arm]
mode: [newlib, linux, musl, uclibc]
target: [rv32gc-ilp32d, rv64gc-lp64d]
compiler: [gcc, llvm]
diff --git a/Makefile.in b/Makefile.in
index 3abe1a9..e6fc8ec 100644
--- a/Makefile.in
+++ b/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 $@
@@ -1120,6 +1122,7 @@ stamps/build-qemu: $(QEMU_SRCDIR) $(QEMU_SRC_GIT) $(PREPARATION_STAMP)
--prefix=$(INSTALL_DIR) \
--target-list=$(QEMU_TARGETS) \
--interp-prefix=$(INSTALL_DIR)/sysroot \
+ $(QEMU_EXTRA_CONFIGURE_FLAGS) \
--python=python3
$(MAKE) -C $(notdir $@)
$(MAKE) -C $(notdir $@) install
@@ -1157,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; \
@@ -1219,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 $@
diff --git a/README.md b/README.md
index 363840a..8dc1910 100644
--- a/README.md
+++ b/README.md
@@ -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
@@ -140,7 +143,10 @@ devtoolset-7 works.
There are a number of additional options that may be passed to
configure. See './configure --help' for more details.
-Also you can define extra flags to pass to specific projects: ```BINUTILS_NATIVE_FLAGS_EXTRA, BINUTILS_TARGET_FLAGS_EXTRA, GCC_EXTRA_CONFIGURE_FLAGS, GDB_NATIVE_FLAGS_EXTRA, GDB_TARGET_FLAGS_EXTRA, GLIBC_TARGET_FLAGS_EXTRA, NEWLIB_TARGET_FLAGS_EXTRA, LLVM_EXTRA_CONFIGURE_FLAGS```.
+Also you can define extra flags to pass to specific projects: ```BINUTILS_NATIVE_FLAGS_EXTRA,
+BINUTILS_TARGET_FLAGS_EXTRA, GCC_EXTRA_CONFIGURE_FLAGS, GDB_NATIVE_FLAGS_EXTRA,
+GDB_TARGET_FLAGS_EXTRA, GLIBC_TARGET_FLAGS_EXTRA, NEWLIB_TARGET_FLAGS_EXTRA,
+LLVM_EXTRA_CONFIGURE_FLAGS, QEMU_EXTRA_CONFIGURE_FLAGS```.
Example: ```GCC_EXTRA_CONFIGURE_FLAGS=--with-gmp=/opt/gmp make linux```
#### Set default ISA spec version
diff --git a/configure b/configure
index af508ea..33f2687 100755
--- a/configure
+++ b/configure
@@ -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
+
{
diff --git a/configure.ac b/configure.ac
index 485c3cb..b4972a2 100644
--- a/configure.ac
+++ b/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,