Revert "Toolchains: Update to GCC 10.5.0"

This reverts commit 94712b34d4.
This commit is contained in:
Solomon Peachy 2025-08-20 16:09:54 -04:00
parent 84504c7471
commit a60c09c24c
13 changed files with 196 additions and 254 deletions

17
tools/configure vendored
View file

@ -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

View file

@ -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"

View file

@ -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 <unix.h> /* for fdopen */
@ -20,4 +20,4 @@ index 4b596adf..66d54cc3 100644
-# endif
#endif
#ifdef __acorn
#ifdef TOPS20

View file

@ -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

View file

@ -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 \

View file

@ -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 <string> before "safe-ctype.h" to avoid GCC poisoning
the ctype macros through safe-ctype.h */
-#ifdef __cplusplus
-#ifdef INCLUDE_STRING
-# include <string>
-#endif
-#endif
-
-/* There are an extraordinary number of issues with <ctype.h>.
- The last straw is that it varies with the locale. Use libiberty's
- replacement instead. */
-#include "safe-ctype.h"
-
-#include <sys/types.h>
-
-#include <errno.h>
-
-#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 <algorithm>
@@ -229,6 +210,9 @@ extern int errno;
#ifdef INCLUDE_SET
# include <set>
#endif
+#ifdef INCLUDE_STRING
+# include <string>
+#endif
#ifdef INCLUDE_VECTOR
# include <vector>
#endif
@@ -237,6 +221,25 @@ extern int errno;
# include <utility>
#endif
+#ifdef __cplusplus
+#ifdef INCLUDE_STRING
+# include <string>
+#endif
+#endif
+
+/* There are an extraordinary number of issues with <ctype.h>.
+ The last straw is that it varies with the locale. Use libiberty's
+ replacement instead. */
+#include "safe-ctype.h"
+
+#include <sys/types.h>
+
+#include <errno.h>
+
+#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

View file

@ -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;;

View file

@ -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
- <http://www.gnu.org/licenses/>. */
-
-#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 <bits/stdio_lim.h> directly; use <stdio.h> 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 <bits/stdio_lim.h> directly; use <stdio.h> instead."
+#endif
+//#ifndef _STDIO_H
+//# error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
+//#endif
+
+#define FILENAME_MAX 4096
+

View file

@ -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)

View file

@ -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)