summaryrefslogtreecommitdiffstats
path: root/tools/toolchain-patches/rockbox-multilibs-noexceptions-arm-elf-eabi-gcc-8.5.0.diff
blob: b320b969a5194b1aada2ee0d170c561cc5ce8ef3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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 <stddef.h>
-#include <stdint.h>
+//#include <stdint.h>
 
 #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)