From a60c09c24c0b3dcc10fa2fedf6d44740bf3dcebd Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Wed, 20 Aug 2025 16:09:54 -0400 Subject: [PATCH] Revert "Toolchains: Update to GCC 10.5.0" This reverts commit 94712b34d49d13944382773874491b1aba7a8f6b. --- apps/plugins/imageviewer/imageviewer.make | 7 +- apps/plugins/plugins.make | 2 +- apps/plugins/sdl/sdl.make | 2 +- tools/configure | 17 +-- tools/rockboxdev.sh | 116 ++++++++++-------- .../apple_silicon-zlib.patch | 8 +- tools/toolchain-patches/apple_silicon.patch | 13 -- tools/toolchain-patches/binutils-c23.patch | 6 +- tools/toolchain-patches/gcc-libcpp17.patch | 66 ---------- .../toolchain-patches/glibc-2.20-gcc10.patch | 12 -- ...27-make44.patch => glibc-225-make44.patch} | 102 ++++++++------- ...s-noexceptions-arm-elf-eabi-gcc-4.9.4.diff | 56 +++++++++ ...s-noexceptions-arm-elf-eabi-gcc-9.5.0.diff | 43 ------- 13 files changed, 196 insertions(+), 254 deletions(-) delete mode 100644 tools/toolchain-patches/gcc-libcpp17.patch delete mode 100644 tools/toolchain-patches/glibc-2.20-gcc10.patch rename tools/toolchain-patches/{glibc-227-make44.patch => glibc-225-make44.patch} (69%) create mode 100644 tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff delete mode 100644 tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-9.5.0.diff diff --git a/apps/plugins/imageviewer/imageviewer.make b/apps/plugins/imageviewer/imageviewer.make index 23f9813357..3179685089 100644 --- a/apps/plugins/imageviewer/imageviewer.make +++ b/apps/plugins/imageviewer/imageviewer.make @@ -26,13 +26,13 @@ IMGDECFLAGS = $(PLUGINFLAGS) -DIMGDEC IMGVSUBDIRS := $(call preprocess, $(IMGVSRCDIR)/SUBDIRS) $(foreach dir,$(IMGVSUBDIRS),$(eval include $(dir)/$(notdir $(dir)).make)) -IMGDECLDFLAGS = $(GLOBAL_LDOPTS) -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.refmap +IMGDECLDFLAGS = -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.refmap ifndef APP_TYPE IMGDEC_OUTLDS = $(IMGVBUILDDIR)/%.link - IMGDEC_OVLFLAGS = $(GLOBAL_LDOPTS) -T$(IMGVBUILDDIR)/$*.link -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.map + IMGDEC_OVLFLAGS = -T$(IMGVBUILDDIR)/$*.link -Wl,--gc-sections -Wl,-Map,$(IMGVBUILDDIR)/$*.map else - IMGDEC_OVLFLAGS = $(GLOBAL_LDOPTS) $(PLUGINLDFLAGS) -Wl,$(LDMAP_OPT),$(IMGVBUILDDIR)/$*.map + IMGDEC_OVLFLAGS = $(PLUGINLDFLAGS) -Wl,$(LDMAP_OPT),$(IMGVBUILDDIR)/$*.map endif $(IMGVBUILDDIR)/%.ovl: $(IMGDEC_OUTLDS) @@ -52,3 +52,4 @@ $(IMGVBUILDDIR)/%.refmap: $(APPSDIR)/plugin.h $(IMGVSRCDIR)/imageviewer.h $(PLUG $(IMGVBUILDDIR)/%.link: $(PLUGIN_LDS) $(IMGVBUILDDIR)/%.refmap $(call PRINTS,PP $(@F))$(call preprocess2file,$<,$@,-DIMGVDECODER_OFFSET=$(shell \ $(TOOLSDIR)/ovl_offset.pl $(IMGVBUILDDIR)/$*.refmap)) + diff --git a/apps/plugins/plugins.make b/apps/plugins/plugins.make index 88e2165c9a..74d6fb7db7 100644 --- a/apps/plugins/plugins.make +++ b/apps/plugins/plugins.make @@ -149,7 +149,7 @@ ifdef APP_TYPE PLUGINFLAGS += $(SHARED_CFLAGS) # <-- from Makefile else PLUGINLDFLAGS = -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$*.map - OVERLAYLDFLAGS = -T$(OVERLAYREF_LDS) -Wl,--gc-sections -Wl,-Map,$*.refmap $(GLOBAL_LDOPTS) + OVERLAYLDFLAGS = -T$(OVERLAYREF_LDS) -Wl,--gc-sections -Wl,-Map,$*.refmap endif PLUGINLDFLAGS += $(GLOBAL_LDOPTS) diff --git a/apps/plugins/sdl/sdl.make b/apps/plugins/sdl/sdl.make index 3b3bf819cf..194d609fb8 100644 --- a/apps/plugins/sdl/sdl.make +++ b/apps/plugins/sdl/sdl.make @@ -49,7 +49,7 @@ ifndef APP_TYPE WOLF3D_OUTLDS = $(SDL_OBJDIR)/wolf3d.link QUAKE_OUTLDS = $(SDL_OBJDIR)/quake.link - SDL_OVLFLAGS = -Wl,--gc-sections -Wl,-Map,$(basename $@).map $(GLOBAL_LDOPTS) + SDL_OVLFLAGS = -Wl,--gc-sections -Wl,-Map,$(basename $@).map else ### simulator ROCKS += $(SDL_OBJDIR)/duke3d.rock diff --git a/tools/configure b/tools/configure index aa4b3d7e01..21e6bcc838 100755 --- a/tools/configure +++ b/tools/configure @@ -138,7 +138,7 @@ app_set_lcd_size () { findarmgcc() { prefixtools arm-elf-eabi- - gccchoice="10.5.0" + gccchoice="4.9.4" } # scan the $PATH for the given command @@ -548,7 +548,7 @@ coldfirecc () { GCCOPTS="$CCOPTS -mcpu=5249 -malign-int -mstrict-align" GCCOPTIMIZE="-fomit-frame-pointer" endian="big" - gccchoice="10.5.0" + gccchoice="4.9.4" } arm7tdmicc () { @@ -628,7 +628,7 @@ mipselcc () { GCCOPTS="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses" GCCOPTIMIZE="-fomit-frame-pointer" endian="little" - gccchoice="10.5.0" + gccchoice="4.9.4" } mipsr2elcc () { @@ -638,7 +638,7 @@ mipsr2elcc () { GCCOPTS="$GCCOPTS -ffunction-sections -msoft-float -G 0 -Wno-parentheses" GCCOPTIMIZE="-fomit-frame-pointer" endian="little" - gccchoice="10.5.0" + gccchoice="4.9.4" } maemocc () { @@ -776,7 +776,6 @@ arm1176jzlinuxcc () { GCCOPTIMIZE='' LDOPTS="-lasound -lpthread -lm -ldl -lrt $LDOPTS" GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs" # warn about undefined symbols in shared libraries - GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-z,defs -Wl,-z,noexecstack" # Stack is not executable SHARED_LDFLAGS="-shared" SHARED_CFLAGS='' endian="little" @@ -786,7 +785,7 @@ arm1176jzlinuxcc () { GCCOPTS="$GCCOPTS -D_GNU_SOURCE=1 -U_FORTIFY_SOURCE -D_REENTRANT" # Set up compiler - gccchoice="10.5.0" + gccchoice="4.9.4" prefixtools "arm-rockbox-linux-gnueabi-" } @@ -966,7 +965,7 @@ mipsellinuxcc () { GCCOPTS="$GCCOPTS -D_GNU_SOURCE=1 -U_FORTIFY_SOURCE -D_REENTRANT" # Set up compiler - gccchoice="10.5.0" + gccchoice="4.9.4" prefixtools "mipsel-rockbox-linux-gnu-" } @@ -4697,10 +4696,6 @@ else ldnum=`$LD --version | sed -n '1p' | sed -e 's/.* \([0-9]*\)\.\([0-9]*\).*/\1\2/'` fi -if test "$ldnum" -ge "239"; then - GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,--no-warn-rwx-segments" -fi - if test "$ldnum" -ge "227"; then have_nocrossrefs_to="#define HAVE_NOCROSSREFS_TO" else diff --git a/tools/rockboxdev.sh b/tools/rockboxdev.sh index 25e300ca49..2126fa84a5 100755 --- a/tools/rockboxdev.sh +++ b/tools/rockboxdev.sh @@ -333,7 +333,7 @@ check_restart() { # $5=make install options (will be replaced by "install" if left empty) # By default, the restary step is the toolname, but it can be changed by setting # RESTART_STEP -buildtool () { +buildtool() { tool="$1" version="$2" toolname="$tool-$version" @@ -389,9 +389,7 @@ buildtool () { elif [ "$config_opt" != "NO_CONFIGURE" ]; then echo "ROCKBOXDEV: $toolname/configure" cflags='-U_FORTIFY_SOURCE -fgnu89-inline -O2' - if [ "$tool" == "glibc" ]; then - cflags="$cflags -fcommon" # glibc < 2.30 needs -fcommon for gcc10+ - elif [ "$tool" == "glib" ]; then + if [ "$tool" == "glib" ]; then run_cmd "$logfile" $SED -i -e 's/m4_copy/m4_copy_force/g' "$cfg_dir/m4macros/glib-gettext.m4" run_cmd "$logfile" autoreconf -fiv "$cfg_dir" cflags="$cflags -Wno-format-nonliteral -Wno-format-overflow" @@ -445,8 +443,7 @@ build() { # For Apple targets only if [ "$system" == "Darwin" ] ; then - # gcc-libcpp17: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111632 - patch="$patch apple_silicon.patch apple_silicon-zlib.patch gcc-libcpp17.patch" + patch="$patch apple_silicon.patch apple_silicon-zlib.patch" EXTRA_CXXFLAGS="-fbracket-depth=512" fi fi @@ -492,30 +489,30 @@ build() { cd "$toolname-$version" if (echo $needs_libs | grep -q gmp && test ! -d gmp); then echo "ROCKBOXDEV: Getting GMP" - getfile "gmp-6.2.1.tar.bz2" "$GNU_MIRROR/gmp" - tar xjf $dlwhere/gmp-6.2.1.tar.bz2 - ln -s gmp-6.2.1 gmp + getfile "gmp-6.1.2.tar.xz" "$GNU_MIRROR/gmp" + tar xJf $dlwhere/gmp-6.1.2.tar.xz + ln -s gmp-6.1.2 gmp fi if (echo $needs_libs | grep -q mpfr && test ! -d mpfr); then echo "ROCKBOXDEV: Getting MPFR" - getfile "mpfr-4.1.1.tar.xz" "$GNU_MIRROR/mpfr" - tar xJf $dlwhere/mpfr-4.1.1.tar.xz - ln -s mpfr-4.1.1 mpfr + getfile "mpfr-3.1.6.tar.xz" "$GNU_MIRROR/mpfr" + tar xJf $dlwhere/mpfr-3.1.6.tar.xz + ln -s mpfr-3.1.6 mpfr fi if (echo $needs_libs | grep -q mpc && test ! -d mpc); then echo "ROCKBOXDEV: Getting MPC" - getfile "mpc-1.3.1.tar.gz" "http://www.multiprecision.org/downloads" - tar xzf $dlwhere/mpc-1.3.1.tar.gz - ln -s mpc-1.3.1 mpc + getfile "mpc-1.0.1.tar.gz" "http://www.multiprecision.org/downloads" + tar xzf $dlwhere/mpc-1.0.1.tar.gz + ln -s mpc-1.0.1 mpc fi if (echo $needs_libs | grep -q isl && test ! -d isl); then echo "ROCKBOXDEV: Getting ISL" - getfile "isl-0.24.tar.bz2" "https://gcc.gnu.org/pub/gcc/infrastructure" - tar xjf $dlwhere/isl-0.24.tar.bz2 - ln -s isl-0.24 isl + getfile "isl-0.15.tar.bz2" "https://gcc.gnu.org/pub/gcc/infrastructure" + tar xjf $dlwhere/isl-0.15.tar.bz2 + ln -s isl-0.15 isl fi cd $builddir fi @@ -564,9 +561,9 @@ build_linux_toolchain () { # check libraries: # contrary to other toolchains that rely on a hack to avoid installing - # gmp, mpc, and mpfr, we simply require that they are installed on - # the system this is not a huge requirement since virtually all systems - # these days provide dev packages for them + # gmp, mpc and mpfr, we simply require that they are installed on the system + # this is not a huge requirement since virtually all systems these days + # provide dev packages for them # FIXME: maybe add an option to download and install them automatically checklib "mpc" "gmp" "mpfr" @@ -805,26 +802,26 @@ do echo "" case $arch in [Ii]) - build "binutils" "mipsel-elf" "2.40" "binutils-c23.patch" "--disable-werror" "gmp isl" - build "gcc" "mipsel-elf" "10.5.0" "" "" "gmp mpfr mpc isl" + build "binutils" "mipsel-elf" "2.26.1" "binutils-c23.patch" "--disable-werror" "gmp isl" + build "gcc" "mipsel-elf" "4.9.4" "" "" "gmp mpfr mpc isl" ;; [Mm]) - build "binutils" "m68k-elf" "2.40" "" "--disable-werror" "gmp isl" - build "gcc" "m68k-elf" "10.5.0" "" "--with-arch=cf MAKEINFO=missing" "gmp mpfr mpc isl" + build "binutils" "m68k-elf" "2.26.1" "" "--disable-werror" "gmp isl" + build "gcc" "m68k-elf" "4.9.4" "" "--with-arch=cf MAKEINFO=missing" "gmp mpfr mpc isl" ;; [Aa]) binopts="" - gccopts="--with-multilib-list=rmprofile" + gccopts="" case $system in Darwin) binopts="--disable-nls" gccopts="--disable-nls" ;; esac - build "binutils" "arm-elf-eabi" "2.40" "" "$binopts --disable-werror" "gmp isl" - build "gcc" "arm-elf-eabi" "10.5.0" "rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-9.5.0.diff" "$gccopts MAKEINFO=missing" "gmp mpfr mpc isl" + build "binutils" "arm-elf-eabi" "2.26.1" "" "$binopts --disable-werror" "gmp isl" + build "gcc" "arm-elf-eabi" "4.9.4" "rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff" "$gccopts MAKEINFO=missing" "gmp mpfr mpc isl" ;; [Xx]) # IMPORTANT NOTE @@ -833,19 +830,30 @@ do # # Samsung YP-R0/R1: # ARM1176JZF-S, softfp EABI - # kernel: device runs 2.6.24, but oem toolchain is built against 2.6.27.59 - # glibc: device runs 2.4.2 - # - # Sony NWZ: - # kernel: Varies from device to device; 2.6.23, 2.6.35, and 3.x seen. - # glibc: device runs 2.7 + # gcc: 4.9.4 is the latest 4.9.x stable branch, also the only one that + # compiles with GCC >6 + # kernel: 2.6.27.59 is the same 2.6.x stable kernel as used by the + # original ct-ng toolchain, the device runs kernel 2.6.24 + # glibc: 2.19 is the latest version that supports kernel 2.6.24 which + # is used on the device, but we need to support ABI 2.4 because + # the device uses glibc 2.4.2 # - # Thus the lowest common denominator is to target 2.6.23 and glibc 2.4 - # Use a recent 2.6.32 LTS kernel, but glibc 2.20 targeting 2.6.23 and API 2.4 - # + # Sony NWZ: + # gcc: 4.9.4 is the latest 4.9.x stable branch, also the only one that + # compiles with GCC >6 + # kernel: 2.6.32.71 is the latest 2.6.x stable kernel, the device + # runs kernel 2.6.23 or 2.6.35 or 3.x for the most recent + # glibc: 2.19 is the latest version that supports kernel 2.6.23 which + # is used on many Sony players, but we need to support ABI 2.7 + # because the device uses glibc 2.7 + # + # Thus the lowest common denominator is to use the latest 2.6.x stable + # kernel but compile glibc to support kernel 2.6.23 and glibc 2.4. + # We use a recent 2.26.1 binutils to avoid any build problems and + # avoid patches/bugs. glibcopts="--enable-kernel=2.6.23 --enable-oldest-abi=2.4" - build_linux_toolchain "arm-rockbox-linux-gnueabi" "2.40" "" "" "10.5.0" \ - "$gccopts" "2.6.32.71" "" "2.20" "$glibcopts" "glibc-220-make44.patch glibc-2.20-gcc10.patch" + build_linux_toolchain "arm-rockbox-linux-gnueabi" "2.26.1" "" "" "4.9.4" \ + "$gccopts" "2.6.32.71" "" "2.19" "$glibcopts" "glibc-220-make44.patch" # build alsa-lib # we need to set the prefix to how it is on device (/usr) and then # tweak install dir at make install step @@ -860,22 +868,28 @@ do # This toolchain must support several targets and thus must support # the oldest possible configuration. # - # AGPTek Rocker (and other HibyOS players): + # AGPTek Rocker: + # XBurst release 1 (something inbetween mips32r1 and mips32r2) + # gcc: 4.9.4 is the latest 4.9.x stable branch, also the only one that + # compiles with GCC >6 # kernel: 3.10.14 # glibc: 2.16 # alsa: 1.0.29 # - # FiiO M3K Linux (Based on Ingenic SDK): + # FiiO M3K Linux: # kernel: 3.10.14 # glibc: 2.16 # alsa: 1.0.26 # - # Use a recent 3.10 LTS kernel, but glibc 2.27 targeting 3.2.x and API 2.16 - # - glibcopts="--enable-kernel=3.2 --enable-oldest-abi=2.16 --disable-werror" - # FIXME: maybe add -mhard-float? - build_linux_toolchain "mipsel-rockbox-linux-gnu" "2.40" "" "binutils-c23.patch" "10.5.0" \ - "$gccopts" "3.10.108" "linux-c23.patch" "2.27" "$glibcopts" "glibc-227-make44.patch" + # To maximize compatibility, we use kernel 3.2.89 which is the latest + # longterm 3.2 kernel and is supported by the latest glibc, and we + # require support for up to glibc 2.16 + # We use a recent 2.26.1 binutils to avoid any build problems and + # avoid patches/bugs. + glibcopts="--enable-kernel=3.2 --enable-oldest-abi=2.16" + # FIXME: maybe add -mhard-float + build_linux_toolchain "mipsel-rockbox-linux-gnu" "2.26.1" "" "binutils-c23.patch" "4.9.4" \ + "$gccopts" "3.2.89" "linux-c23.patch" "2.25" "$glibcopts" "glibc-225-make44.patch" # build alsa-lib # we need to set the prefix to how it is on device (/usr) and then # tweak install dir at make install step @@ -883,10 +897,7 @@ do gettool "alsa-lib" "$alsalib_ver" extract "alsa-lib-$alsalib_ver" prefix="/usr" buildtool "alsa-lib" "$alsalib_ver" \ - "--host=$target --disable-python" "" "install DESTDIR=$prefix/$target/sysroot" - - ### Everything below here is needed only for bluetooth support - + "--host=$target --disable-python" "" "install DESTDIR=$prefix/$target/sysroot" # build libffi libffi_ver="3.2.1" gettool "libffi" "$libffi_ver" @@ -907,7 +918,7 @@ do gettool "glib" "$glib_ver" extract "glib-$glib_ver" prefix="/usr" buildtool "glib" "$glib_ver" \ - "--host=$target --with-sysroot=$prefix/$target/sysroot --disable-libelf glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes CFLAGS=-Wno-error=format-nonliteral" "" "install DESTDIR=$prefix/$target/sysroot" + "--host=$target --with-sysroot=$prefix/$target/sysroot --disable-libelf glib_cv_stack_grows=no glib_cv_uscore=no ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes" "" "install DESTDIR=$prefix/$target/sysroot" # build expat expat_ver="2.1.0" @@ -923,6 +934,7 @@ do prefix="/usr" buildtool "dbus" "$dbus_ver" \ "--host=$target --with-sysroot=$prefix/$target/sysroot --includedir=/usr/include --enable-abstract-sockets ac_cv_lib_expat_XML_ParserCreate_MM=yes --disable-systemd --disable-launchd --enable-x11-autolaunch=no --with-x=no -disable-selinux --disable-apparmor --disable-doxygen-docs " "" "install DESTDIR=$prefix/$target/sysroot " + ;; *) echo "ROCKBOXDEV: Unsupported architecture option: $arch" diff --git a/tools/toolchain-patches/apple_silicon-zlib.patch b/tools/toolchain-patches/apple_silicon-zlib.patch index fa3f48bc24..b35e94f023 100644 --- a/tools/toolchain-patches/apple_silicon-zlib.patch +++ b/tools/toolchain-patches/apple_silicon-zlib.patch @@ -1,14 +1,14 @@ diff --git a/zlib/zutil.h b/zlib/zutil.h -index 4b596adf..66d54cc3 100644 +index ed6b127e..3186e991 100644 --- a/zlib/zutil.h +++ b/zlib/zutil.h -@@ -130,17 +130,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ +@@ -118,17 +118,8 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ # endif #endif -#if defined(MACOS) || defined(TARGET_OS_MAC) +#if defined(MACOS) - # define OS_CODE 7 + # define OS_CODE 0x07 -# ifndef Z_SOLO -# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os -# include /* for fdopen */ @@ -20,4 +20,4 @@ index 4b596adf..66d54cc3 100644 -# endif #endif - #ifdef __acorn + #ifdef TOPS20 diff --git a/tools/toolchain-patches/apple_silicon.patch b/tools/toolchain-patches/apple_silicon.patch index d0f6a66584..a428c776da 100644 --- a/tools/toolchain-patches/apple_silicon.patch +++ b/tools/toolchain-patches/apple_silicon.patch @@ -1,16 +1,3 @@ -diff --git a/gcc/gcc/config/aarch64/aarch64.h b/gcc/gcc/config/aarch64/aarch64.h -index 976f9afae5..736b83ff0b 100644 ---- a/gcc/config/aarch64/aarch64.h -+++ b/gcc/config/aarch64/aarch64.h -@@ -1000,7 +1000,7 @@ extern const char *aarch64_rewrite_mcpu (int argc, const char **argv); - #define MCPU_TO_MARCH_SPEC_FUNCTIONS \ - { "rewrite_mcpu", aarch64_rewrite_mcpu }, - --#if defined(__aarch64__) -+#if defined(__aarch64__) && ! defined(__APPLE__) - extern const char *host_detect_local_cpu (int argc, const char **argv); - #define HAVE_LOCAL_CPU_DETECT - # define EXTRA_SPEC_FUNCTIONS \ diff --git a/gcc/gcc/config/host-darwin.c b/gcc/gcc/config/host-darwin.c index 8f700eec85..b737abc006 100644 --- a/gcc/config/host-darwin.c diff --git a/tools/toolchain-patches/binutils-c23.patch b/tools/toolchain-patches/binutils-c23.patch index ca3c3c56ea..07564d9f62 100644 --- a/tools/toolchain-patches/binutils-c23.patch +++ b/tools/toolchain-patches/binutils-c23.patch @@ -1,7 +1,7 @@ diff -ur binutils-2.26.X/opcodes/mips-formats.h binutils-2.26.1/opcodes/mips-formats.h --- binutils-2.26.X/opcodes/mips-formats.h 2015-11-13 03:27:42.000000000 -0500 +++ binutils-2.26.1/opcodes/mips-formats.h 2025-04-28 14:04:50.949355647 -0400 -@@ -49,7 +49,7 @@ +@@ -46,7 +46,7 @@ #define MAPPED_INT(SIZE, LSB, MAP, PRINT_HEX) \ { \ typedef char ATTRIBUTE_UNUSED \ @@ -10,7 +10,7 @@ diff -ur binutils-2.26.X/opcodes/mips-formats.h binutils-2.26.1/opcodes/mips-for static const struct mips_mapped_int_operand op = { \ { OP_MAPPED_INT, SIZE, LSB }, MAP, PRINT_HEX \ }; \ -@@ -83,7 +83,7 @@ +@@ -80,7 +80,7 @@ #define MAPPED_REG(SIZE, LSB, BANK, MAP) \ { \ typedef char ATTRIBUTE_UNUSED \ @@ -19,7 +19,7 @@ diff -ur binutils-2.26.X/opcodes/mips-formats.h binutils-2.26.1/opcodes/mips-for static const struct mips_reg_operand op = { \ { OP_REG, SIZE, LSB }, OP_REG_##BANK, MAP \ }; \ -@@ -93,7 +93,7 @@ +@@ -90,7 +90,7 @@ #define OPTIONAL_MAPPED_REG(SIZE, LSB, BANK, MAP) \ { \ typedef char ATTRIBUTE_UNUSED \ diff --git a/tools/toolchain-patches/gcc-libcpp17.patch b/tools/toolchain-patches/gcc-libcpp17.patch deleted file mode 100644 index 1351b0ef8e..0000000000 --- a/tools/toolchain-patches/gcc-libcpp17.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff --git a/gcc/system.h b/gcc/system.h -index d04f8fd33..636084682 100644 ---- a/gcc/system.h -+++ b/gcc/system.h -@@ -197,25 +197,6 @@ extern int fprintf_unlocked (FILE *, const char *, ...); - /* Include before "safe-ctype.h" to avoid GCC poisoning - the ctype macros through safe-ctype.h */ - --#ifdef __cplusplus --#ifdef INCLUDE_STRING --# include --#endif --#endif -- --/* There are an extraordinary number of issues with . -- The last straw is that it varies with the locale. Use libiberty's -- replacement instead. */ --#include "safe-ctype.h" -- --#include -- --#include -- --#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO --extern int errno; --#endif -- - #ifdef __cplusplus - #if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY) - # include -@@ -229,6 +210,9 @@ extern int errno; - #ifdef INCLUDE_SET - # include - #endif -+#ifdef INCLUDE_STRING -+# include -+#endif - #ifdef INCLUDE_VECTOR - # include - #endif -@@ -237,6 +221,25 @@ extern int errno; - # include - #endif - -+#ifdef __cplusplus -+#ifdef INCLUDE_STRING -+# include -+#endif -+#endif -+ -+/* There are an extraordinary number of issues with . -+ The last straw is that it varies with the locale. Use libiberty's -+ replacement instead. */ -+#include "safe-ctype.h" -+ -+#include -+ -+#include -+ -+#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO -+extern int errno; -+#endif -+ - /* Some of glibc's string inlines cause warnings. Plus we'd rather - rely on (and therefore test) GCC's string builtins. */ - #define __NO_STRING_INLINES diff --git a/tools/toolchain-patches/glibc-2.20-gcc10.patch b/tools/toolchain-patches/glibc-2.20-gcc10.patch deleted file mode 100644 index 99563ed1f3..0000000000 --- a/tools/toolchain-patches/glibc-2.20-gcc10.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur glibc-2.20/configure glibc-2.20-patched/configure ---- glibc-2.20/configure 2014-09-07 04:09:09.000000000 -0400 -+++ glibc-2.20-patched/configure 2025-08-05 07:40:19.923528264 -0400 -@@ -4661,7 +4661,7 @@ - ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; -- 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* ) -+ 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* | 1[0-9].* ) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - diff --git a/tools/toolchain-patches/glibc-227-make44.patch b/tools/toolchain-patches/glibc-225-make44.patch similarity index 69% rename from tools/toolchain-patches/glibc-227-make44.patch rename to tools/toolchain-patches/glibc-225-make44.patch index 3de5cb0fdd..45d4e9c621 100644 --- a/tools/toolchain-patches/glibc-227-make44.patch +++ b/tools/toolchain-patches/glibc-225-make44.patch @@ -1,7 +1,7 @@ -diff -Naur glibc-2.27/libio/stdio.h glibc-2.27-patched/libio/stdio.h ---- glibc-2.27/libio/stdio.h 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27-patched/libio/stdio.h 2023-05-23 14:10:06.618633203 -0400 -@@ -118,18 +118,23 @@ +diff -Naur glibc-2.25/libio/stdio.h glibc-2.25-patched/libio/stdio.h +--- glibc-2.25/libio/stdio.h 2017-02-05 10:28:43.000000000 -0500 ++++ glibc-2.25-patched/libio/stdio.h 2023-05-23 15:22:27.482980335 -0400 +@@ -154,18 +154,23 @@ # define P_tmpdir "/tmp" #endif @@ -32,19 +32,20 @@ diff -Naur glibc-2.27/libio/stdio.h glibc-2.27-patched/libio/stdio.h /* Standard streams. */ extern struct _IO_FILE *stdin; /* Standard input stream. */ -diff -Naur glibc-2.27/Makerules glibc-2.27-patched/Makerules ---- glibc-2.27/Makerules 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27-patched/Makerules 2023-05-23 14:10:06.617633203 -0400 -@@ -1522,46 +1522,6 @@ +diff -Naur glibc-2.25/Makerules glibc-2.25-patched/Makerules +--- glibc-2.25/Makerules 2017-02-05 10:28:43.000000000 -0500 ++++ glibc-2.25-patched/Makerules 2023-05-23 15:22:05.594967548 -0400 +@@ -1474,55 +1474,7 @@ + endif endif - +- -# These will have been set by sysdeps/posix/Makefile. -L_tmpnam ?= 1 -TMP_MAX ?= 0 -L_ctermid ?= 1 -L_cuserid ?= 1 -- + -stdio_lim = $(common-objpfx)bits/stdio_lim.h - -$(stdio_lim:lim.h=%.h) $(stdio_lim:lim.h=%.d): $(stdio_lim:lim.h=%.st); @: @@ -52,7 +53,8 @@ diff -Naur glibc-2.27/Makerules glibc-2.27-patched/Makerules - $(common-objpfx)config.make - $(make-target-directory) - { echo '#include "$(..)posix/bits/posix1_lim.h"'; \ -- } | \ +- echo '#define _LIBC 1'; \ +- echo '#include "$(..)misc/sys/uio.h"'; } | \ - $(CC) -E -dM -MD -MP -MF $(@:st=dT) -MT '$(@:st=h) $(@:st=d)' \ - $(CPPUNDEFS) $(+includes) -xc - -o $(@:st=hT) - sed $(sed-remove-objpfx) $(sed-remove-dotdot) \ @@ -60,14 +62,21 @@ diff -Naur glibc-2.27/Makerules glibc-2.27-patched/Makerules - mv -f $(@:st=dt) $(@:st=d) - fopen_max=`sed -n 's/^#define OPEN_MAX //1p' $(@:st=hT)`; \ - filename_max=`sed -n 's/^#define PATH_MAX //1p' $(@:st=hT)`; \ +- iov_max=`sed -n 's/^#define UIO_MAXIOV //p' $(@:st=hT)`; \ - fopen_max=$${fopen_max:-16}; \ - filename_max=$${filename_max:-1024}; \ +- if [ -z "$$iov_max" ]; then \ +- define_iov_max="# undef IOV_MAX"; \ +- else \ +- define_iov_max="# define IOV_MAX $$iov_max"; \ +- fi; \ - sed -e "s/@FOPEN_MAX@/$$fopen_max/" \ - -e "s/@FILENAME_MAX@/$$filename_max/" \ - -e "s/@L_tmpnam@/$(L_tmpnam)/" \ - -e "s/@TMP_MAX@/$(TMP_MAX)/" \ - -e "s/@L_ctermid@/$(L_ctermid)/" \ - -e "s/@L_cuserid@/$(L_cuserid)/" \ +- -e "s/@define_IOV_MAX@/$$define_iov_max/" \ - $< > $(@:st=h.new) - $(move-if-change) $(@:st=h.new) $(@:st=h) -# Remove these last so that they can be examined if something went wrong. @@ -82,9 +91,9 @@ diff -Naur glibc-2.27/Makerules glibc-2.27-patched/Makerules FORCE: .PHONY: echo-headers -diff -Naur glibc-2.27/Rules glibc-2.27-patched/Rules ---- glibc-2.27/Rules 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27-patched/Rules 2023-05-23 14:10:06.617633203 -0400 +diff -Naur glibc-2.25/Rules glibc-2.25-patched/Rules +--- glibc-2.25/Rules 2017-02-05 10:28:43.000000000 -0500 ++++ glibc-2.25-patched/Rules 2023-05-23 15:22:27.482980335 -0400 @@ -60,9 +60,6 @@ common-generated := endif @@ -95,11 +104,11 @@ diff -Naur glibc-2.27/Rules glibc-2.27-patched/Rules include $(..)Makerules .PHONY: subdir_lib -diff -Naur glibc-2.27/stdio-common/stdio_lim.h.in glibc-2.27-patched/stdio-common/stdio_lim.h.in ---- glibc-2.27/stdio-common/stdio_lim.h.in 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27-patched/stdio-common/stdio_lim.h.in 1969-12-31 19:00:00.000000000 -0500 -@@ -1,39 +0,0 @@ --/* Copyright (C) 1994-2018 Free Software Foundation, Inc. +diff -Naur glibc-2.25/stdio-common/stdio_lim.h.in glibc-2.25-patched/stdio-common/stdio_lim.h.in +--- glibc-2.25/stdio-common/stdio_lim.h.in 2017-02-05 10:28:43.000000000 -0500 ++++ glibc-2.25-patched/stdio-common/stdio_lim.h.in 1969-12-31 19:00:00.000000000 -0500 +@@ -1,42 +0,0 @@ +-/* Copyright (C) 1994-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or @@ -116,31 +125,34 @@ diff -Naur glibc-2.27/stdio-common/stdio_lim.h.in glibc-2.27-patched/stdio-commo - License along with the GNU C Library; if not, see - . */ - --#ifndef _BITS_STDIO_LIM_H --#define _BITS_STDIO_LIM_H 1 -- --#ifndef _STDIO_H +-#if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX -# error "Never include directly; use instead." -#endif - --#define L_tmpnam @L_tmpnam@ --#define TMP_MAX @TMP_MAX@ --#define FILENAME_MAX @FILENAME_MAX@ +-#ifdef _STDIO_H +-# define L_tmpnam @L_tmpnam@ +-# define TMP_MAX @TMP_MAX@ +-# define FILENAME_MAX @FILENAME_MAX@ - --#ifdef __USE_POSIX --# define L_ctermid @L_ctermid@ --# if !defined __USE_XOPEN2K || defined __USE_GNU --# define L_cuserid @L_cuserid@ +-# ifdef __USE_POSIX +-# define L_ctermid @L_ctermid@ +-# if !defined __USE_XOPEN2K || defined __USE_GNU +-# define L_cuserid @L_cuserid@ +-# endif -# endif -#endif - --#undef FOPEN_MAX --#define FOPEN_MAX @FOPEN_MAX@ +-#if defined __need_FOPEN_MAX || defined _STDIO_H +-# undef FOPEN_MAX +-# define FOPEN_MAX @FOPEN_MAX@ +-#endif - --#endif /* bits/stdio_lim.h */ -diff -Naur glibc-2.27/sysdeps/mach/hurd/bits/stdio_lim.h glibc-2.27-patched/sysdeps/mach/hurd/bits/stdio_lim.h ---- glibc-2.27/sysdeps/mach/hurd/bits/stdio_lim.h 1969-12-31 19:00:00.000000000 -0500 -+++ glibc-2.27-patched/sysdeps/mach/hurd/bits/stdio_lim.h 2023-05-23 14:10:06.618633203 -0400 +-#if defined __need_IOV_MAX && !defined IOV_MAX +-@define_IOV_MAX@ +-#endif +diff -Naur glibc-2.25/sysdeps/mach/hurd/bits/stdio_lim.h glibc-2.25-patched/sysdeps/mach/hurd/bits/stdio_lim.h +--- glibc-2.25/sysdeps/mach/hurd/bits/stdio_lim.h 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.25-patched/sysdeps/mach/hurd/bits/stdio_lim.h 2023-05-23 15:22:27.483980336 -0400 @@ -0,0 +1,28 @@ +/* System specific stdio.h definitions. Hurd version. + Copyright (C) 2023 Free Software Foundation, Inc. @@ -170,9 +182,9 @@ diff -Naur glibc-2.27/sysdeps/mach/hurd/bits/stdio_lim.h glibc-2.27-patched/sysd +#define FILENAME_MAX 1024 + +#endif /* bits/stdio_lim.h */ -diff -Naur glibc-2.27/sysdeps/posix/Makefile glibc-2.27-patched/sysdeps/posix/Makefile ---- glibc-2.27/sysdeps/posix/Makefile 2018-02-01 11:17:18.000000000 -0500 -+++ glibc-2.27-patched/sysdeps/posix/Makefile 2023-05-23 14:10:06.618633203 -0400 +diff -Naur glibc-2.25/sysdeps/posix/Makefile glibc-2.25-patched/sysdeps/posix/Makefile +--- glibc-2.25/sysdeps/posix/Makefile 2017-02-05 10:28:43.000000000 -0500 ++++ glibc-2.25-patched/sysdeps/posix/Makefile 2023-05-23 15:22:27.483980336 -0400 @@ -1,8 +1,3 @@ -# These affect the generated bits/stdio_lim.h file. -L_tmpnam = 20 @@ -182,9 +194,9 @@ diff -Naur glibc-2.27/sysdeps/posix/Makefile glibc-2.27-patched/sysdeps/posix/Ma ifeq ($(subdir)|$(have-thread-library),rt|no) # With NPTL, this lives in libpthread so it can be used for sem_open too. -diff -Naur glibc-2.27/sysdeps/unix/sysv/linux/bits/stdio_lim.h glibc-2.27-patched/sysdeps/unix/sysv/linux/bits/stdio_lim.h ---- glibc-2.27/sysdeps/unix/sysv/linux/bits/stdio_lim.h 1969-12-31 19:00:00.000000000 -0500 -+++ glibc-2.27-patched/sysdeps/unix/sysv/linux/bits/stdio_lim.h 2023-05-23 14:10:06.618633203 -0400 +diff -Naur glibc-2.25/sysdeps/unix/sysv/linux/bits/stdio_lim.h glibc-2.25-patched/sysdeps/unix/sysv/linux/bits/stdio_lim.h +--- glibc-2.25/sysdeps/unix/sysv/linux/bits/stdio_lim.h 1969-12-31 19:00:00.000000000 -0500 ++++ glibc-2.25-patched/sysdeps/unix/sysv/linux/bits/stdio_lim.h 2023-05-23 15:22:27.483980336 -0400 @@ -0,0 +1,28 @@ +/* System specific stdio.h definitions. Linux version. + Copyright (C) 2023 Free Software Foundation, Inc. @@ -207,9 +219,9 @@ diff -Naur glibc-2.27/sysdeps/unix/sysv/linux/bits/stdio_lim.h glibc-2.27-patche +#ifndef _BITS_STDIO_LIM_H +#define _BITS_STDIO_LIM_H 1 + -+#ifndef _STDIO_H -+# error "Never include directly; use instead." -+#endif ++//#ifndef _STDIO_H ++//# error "Never include directly; use instead." ++//#endif + +#define FILENAME_MAX 4096 + diff --git a/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff b/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff new file mode 100644 index 0000000000..cd98d3751c --- /dev/null +++ b/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-4.9.4.diff @@ -0,0 +1,56 @@ +diff -Naur gcc-4.9.4/gcc/config/arm/t-arm-elf gcc-4.9.4-fixed/gcc/config/arm/t-arm-elf +--- gcc-4.9.4/gcc/config/arm/t-arm-elf 2014-01-02 17:23:26.000000000 -0500 ++++ gcc-4.9.4-fixed/gcc/config/arm/t-arm-elf 2020-07-01 22:11:01.198403110 -0400 +@@ -44,6 +44,11 @@ + #MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard* + #MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard* + ++# We build a lib for each specific CPU Rockbox targets. If anyone knows a better ++# way to do this, please let us know. ++MULTILIB_OPTIONS += mcpu=arm7tdmi/mcpu=arm9tdmi/mcpu=arm9e/mcpu=arm926ej-s/mcpu=arm1136jf-s ++MULTILIB_DIRNAMES += arm7tdmi arm9tdmi arm9e arm926ej-s arm1136jf-s ++ + # MULTILIB_OPTIONS += mcpu=ep9312 + # MULTILIB_DIRNAMES += ep9312 + # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312* +@@ -56,8 +61,8 @@ + # MULTILIB_DIRNAMES += fpu soft + # MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* + # +-# MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork +-# MULTILIB_DIRNAMES += normal interwork ++MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork ++MULTILIB_DIRNAMES += normal interwork + # + # MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore + # MULTILIB_DIRNAMES += elf under +diff -Naur gcc-4.9.4/libgcc/config/arm/t-bpabi gcc-4.9.4-fixed/libgcc/config/arm/t-bpabi +--- gcc-4.9.4/libgcc/config/arm/t-bpabi 2012-08-17 11:06:06.000000000 -0400 ++++ gcc-4.9.4-fixed/libgcc/config/arm/t-bpabi 2020-07-01 22:13:39.103762818 -0400 +@@ -17,4 +17,4 @@ + # On ARM, specifying -fnon-call-exceptions will needlessly pull in + # the unwinder in simple programs which use 64-bit division. Omitting + # the option is safe. +-LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions ++LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions -fno-non-call-exceptions +diff -Naur gcc-4.9.4/libgcc/Makefile.in gcc-4.9.4-fixed/libgcc/Makefile.in +--- gcc-4.9.4/libgcc/Makefile.in 2014-01-08 11:37:08.000000000 -0500 ++++ gcc-4.9.4-fixed/libgcc/Makefile.in 2020-07-01 22:11:01.199403087 -0400 +@@ -495,7 +495,7 @@ + ifeq ($(LIB2_DIVMOD_EXCEPTION_FLAGS),) + # Provide default flags for compiling divmod functions, if they haven't been + # set already by a target-specific Makefile fragment. +-LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -fnon-call-exceptions ++LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions -fno-non-call-exceptions + endif + + # Build LIB2_DIVMOD_FUNCS. +@@ -816,7 +816,7 @@ + # libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and + # LIB2ADDEHSHARED matter. (Usually all three are identical.) + +-c_flags := -fexceptions ++c_flags := -fno-exceptions + + ifeq ($(enable_shared),yes) + diff --git a/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-9.5.0.diff b/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-9.5.0.diff deleted file mode 100644 index 09fa4c82b2..0000000000 --- a/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-9.5.0.diff +++ /dev/null @@ -1,43 +0,0 @@ -diff -aur gcc-8.5.0/gcc/config/arm/t-arm-elf gcc-8.5.0-patched/gcc/config/arm/t-arm-elf ---- gcc-8.5.0/gcc/config/arm/t-arm-elf 2021-05-14 04:42:08.000000000 -0400 -+++ gcc-8.5.0-patched/gcc/config/arm/t-arm-elf 2022-11-26 23:16:30.714433566 -0500 -@@ -81,6 +81,10 @@ - MULTILIB_REQUIRED += marm/mfpu=auto/march=armv5te+fp/mfloat-abi=hard - MULTILIB_REQUIRED += mthumb/mfpu=auto/march=armv7+fp/mfloat-abi=hard - -+# And we want to be able to disable interworking -+MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork -+MULTILIB_DIRNAMES += normal interwork -+ - # PART 3 - Match rules - - # Map all supported FPUs onto mfpu=auto -diff -aur gcc-8.5.0/libgcc/config/arm/t-bpabi gcc-8.5.0-patched/libgcc/config/arm/t-bpabi ---- gcc-8.5.0/libgcc/config/arm/t-bpabi 2021-05-14 04:42:10.000000000 -0400 -+++ gcc-8.5.0-patched/libgcc/config/arm/t-bpabi 2022-11-26 23:14:40.938038440 -0500 -@@ -17,4 +17,4 @@ - # On ARM, specifying -fnon-call-exceptions will needlessly pull in - # the unwinder in simple programs which use 64-bit division. Omitting - # the option is safe. --LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -+LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions -fno-non-call-exceptions -diff -aur gcc-8.5.0/libgcc/Makefile.in gcc-8.5.0-patched/libgcc/Makefile.in ---- gcc-8.5.0/libgcc/Makefile.in 2021-05-14 04:42:10.000000000 -0400 -+++ gcc-8.5.0-patched/libgcc/Makefile.in 2022-11-26 23:13:56.781304250 -0500 -@@ -530,7 +530,7 @@ - ifeq ($(LIB2_DIVMOD_EXCEPTION_FLAGS),) - # Provide default flags for compiling divmod functions, if they haven't been - # set already by a target-specific Makefile fragment. --LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -fnon-call-exceptions -+LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions -fno-non-call-exceptions - endif - - # Build LIB2_DIVMOD_FUNCS. -@@ -851,7 +851,7 @@ - # libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and - # LIB2ADDEHSHARED matter. (Usually all three are identical.) - --c_flags := -fexceptions -+c_flags := -fno-exceptions - - ifeq ($(enable_shared),yes)