From 67dc833e46679c13f4b8d82cbb52d2393fef8fd8 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sun, 9 Oct 2022 19:17:41 -0400 Subject: Toolchains: Update to GCC 8.5.0 All toolchain dependencies are circa the GCC 8.5.0 release: GCC 8.5.0, binutils 2.37, gmp 6.2.1, mpfr 4.1.0, mpc 1.2.1, isl 0.18 Native: * arm (smoke tested on ipodvideo+mini2g) * mips (seems to be stable on xDuoo X3) * m68k (binaries untested) Hosted: * arm (binaries untested) * mips (smoke tested on xDuoo X3ii) Unchanged: * Android NDK (unchanged at GCC 4.9.4) Change-Id: I1c2fca5d87d4a11e50aa495fad75f4f9c938c766 --- ...tilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff (limited to 'tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff') diff --git a/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff b/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff new file mode 100644 index 0000000000..b320b969a5 --- /dev/null +++ b/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff @@ -0,0 +1,77 @@ +diff -Naur gcc-8.5.0/gcc/config/arm/arm_cmse.h gcc-8.5.0-patched/gcc/config/arm/ar +m_cmse.h +--- gcc-8.5.0/gcc/config/arm/arm_cmse.h 2021-05-14 04:42:08.000000000 -0400 ++++ gcc-8.5.0-patched/gcc/config/arm/arm_cmse.h 2023-04-17 14:32:56.547477547 -0400 +@@ -35,7 +35,7 @@ + #if __ARM_FEATURE_CMSE & 1 + + #include +-#include ++//#include + + #ifdef __ARM_BIG_ENDIAN + +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 +@@ -80,6 +80,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/config/arm/cmse.c gcc-8.5.0-patch/libgcc/config/arm/cmse.c +--- gcc-8.5.0/libgcc/config/arm/cmse.c 2021-05-14 04:42:10.000000000 -0400 ++++ gcc-8.5.0-patched/libgcc/config/arm/cmse.c 2023-04-17 15:12:11.865456701 -0400 +@@ -36,7 +36,7 @@ + char *pb = (char *) p, *pe; + + /* Check if the range wraps around. */ +- if (UINTPTR_MAX - (uintptr_t) p < size) ++ if (__UINTPTR_MAX__ - (__UINTPTR_TYPE__) p < size) + return NULL; + + /* Check if an unknown flag is present. */ +@@ -51,7 +51,7 @@ + + /* Execute the right variant of the TT instructions. */ + pe = pb + size - 1; +- const int singleCheck = (((uintptr_t) pb ^ (uintptr_t) pe) < 32); ++ const int singleCheck = (((__UINTPTR_TYPE__) pb ^ (__UINTPTR_TYPE__) pe) < 32); + switch (flags & known_secure_level) + { + case 0: +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 +@@ -526,7 +526,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. +@@ -847,7 +847,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) -- cgit v1.2.3