summaryrefslogtreecommitdiff
path: root/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff
diff options
context:
space:
mode:
Diffstat (limited to 'tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff')
-rw-r--r--tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff77
1 files changed, 77 insertions, 0 deletions
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 @@
1diff -Naur gcc-8.5.0/gcc/config/arm/arm_cmse.h gcc-8.5.0-patched/gcc/config/arm/ar
2m_cmse.h
3--- gcc-8.5.0/gcc/config/arm/arm_cmse.h 2021-05-14 04:42:08.000000000 -0400
4+++ gcc-8.5.0-patched/gcc/config/arm/arm_cmse.h 2023-04-17 14:32:56.547477547 -0400
5@@ -35,7 +35,7 @@
6 #if __ARM_FEATURE_CMSE & 1
7
8 #include <stddef.h>
9-#include <stdint.h>
10+//#include <stdint.h>
11
12 #ifdef __ARM_BIG_ENDIAN
13
14diff -aur gcc-8.5.0/gcc/config/arm/t-arm-elf gcc-8.5.0-patched/gcc/config/arm/t-arm-elf
15--- gcc-8.5.0/gcc/config/arm/t-arm-elf 2021-05-14 04:42:08.000000000 -0400
16+++ gcc-8.5.0-patched/gcc/config/arm/t-arm-elf 2022-11-26 23:16:30.714433566 -0500
17@@ -80,6 +80,10 @@
18 MULTILIB_REQUIRED += marm/mfpu=auto/march=armv5te+fp/mfloat-abi=hard
19 MULTILIB_REQUIRED += mthumb/mfpu=auto/march=armv7+fp/mfloat-abi=hard
20
21+# And we want to be able to disable interworking
22+MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
23+MULTILIB_DIRNAMES += normal interwork
24+
25 # PART 3 - Match rules
26
27 # Map all supported FPUs onto mfpu=auto
28diff -aur gcc-8.5.0/libgcc/config/arm/t-bpabi gcc-8.5.0-patched/libgcc/config/arm/t-bpabi
29--- gcc-8.5.0/libgcc/config/arm/t-bpabi 2021-05-14 04:42:10.000000000 -0400
30+++ gcc-8.5.0-patched/libgcc/config/arm/t-bpabi 2022-11-26 23:14:40.938038440 -0500
31@@ -17,4 +17,4 @@
32 # On ARM, specifying -fnon-call-exceptions will needlessly pull in
33 # the unwinder in simple programs which use 64-bit division. Omitting
34 # the option is safe.
35-LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions
36+LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions -fno-non-call-exceptions
37diff -aur gcc-8.5.0/libgcc/config/arm/cmse.c gcc-8.5.0-patch/libgcc/config/arm/cmse.c
38--- gcc-8.5.0/libgcc/config/arm/cmse.c 2021-05-14 04:42:10.000000000 -0400
39+++ gcc-8.5.0-patched/libgcc/config/arm/cmse.c 2023-04-17 15:12:11.865456701 -0400
40@@ -36,7 +36,7 @@
41 char *pb = (char *) p, *pe;
42
43 /* Check if the range wraps around. */
44- if (UINTPTR_MAX - (uintptr_t) p < size)
45+ if (__UINTPTR_MAX__ - (__UINTPTR_TYPE__) p < size)
46 return NULL;
47
48 /* Check if an unknown flag is present. */
49@@ -51,7 +51,7 @@
50
51 /* Execute the right variant of the TT instructions. */
52 pe = pb + size - 1;
53- const int singleCheck = (((uintptr_t) pb ^ (uintptr_t) pe) < 32);
54+ const int singleCheck = (((__UINTPTR_TYPE__) pb ^ (__UINTPTR_TYPE__) pe) < 32);
55 switch (flags & known_secure_level)
56 {
57 case 0:
58diff -aur gcc-8.5.0/libgcc/Makefile.in gcc-8.5.0-patched/libgcc/Makefile.in
59--- gcc-8.5.0/libgcc/Makefile.in 2021-05-14 04:42:10.000000000 -0400
60+++ gcc-8.5.0-patched/libgcc/Makefile.in 2022-11-26 23:13:56.781304250 -0500
61@@ -526,7 +526,7 @@
62 ifeq ($(LIB2_DIVMOD_EXCEPTION_FLAGS),)
63 # Provide default flags for compiling divmod functions, if they haven't been
64 # set already by a target-specific Makefile fragment.
65-LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -fnon-call-exceptions
66+LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions -fno-non-call-exceptions
67 endif
68
69 # Build LIB2_DIVMOD_FUNCS.
70@@ -847,7 +847,7 @@
71 # libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and
72 # LIB2ADDEHSHARED matter. (Usually all three are identical.)
73
74-c_flags := -fexceptions
75+c_flags := -fno-exceptions
76
77 ifeq ($(enable_shared),yes)