-
Notifications
You must be signed in to change notification settings - Fork 15
/
patch-gcc-config-arm-t-arm-elf.diff
74 lines (71 loc) · 2.75 KB
/
patch-gcc-config-arm-t-arm-elf.diff
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
--- gcc/config/arm/t-arm-elf.orig 2011-02-03 10:41:08.000000000 +1100
+++ gcc/config/arm/t-arm-elf 2011-02-03 10:44:22.000000000 +1100
@@ -31,10 +31,55 @@
_arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \
_clzsi2 _clzdi2
-MULTILIB_OPTIONS = marm/mthumb
-MULTILIB_DIRNAMES = arm thumb
-MULTILIB_EXCEPTIONS =
+# We build 4 multilibs:
+# ./ (default)
+# thumb/ -mthumb
+# thumb2/ -mthumb -march=armv7
+# armv4t/ -mthumb -march=armv4t
+
+MULTILIB_OPTIONS = mthumb
+MULTILIB_DIRNAMES = thumb
+MULTILIB_EXCEPTIONS =
MULTILIB_MATCHES =
+MULTILIB_EXTRA_OPTS += msoft-float
+
+MULTILIB_OPTIONS += march=armv7/march=armv4t
+MULTILIB_DIRNAMES += v7 v4t
+MULTILIB_EXCEPTIONS += march=armv7*
+MULTILIB_MATCHES += march?armv7=march?armv7-a
+MULTILIB_MATCHES += march?armv7=march?armv7-r
+MULTILIB_MATCHES += march?armv7=march?armv7-m
+MULTILIB_MATCHES += march?armv7=march?armv7e-m
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a5
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-m4
+MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3
+
+MULTILIB_EXCEPTIONS += march=armv4t
+MULTILIB_MATCHES += march?armv4t=mcpu?arm7tdmi-s
+#MULTILIB_MATCHES +=
+
+# FIXME: We need a sane way of doing this.
+# This isn't really a multilib, it's a hack to add an extra option
+# to the v7-m multilib.
+MULTILIB_OPTIONS += mfix-cortex-m3-ldrd
+MULTILIB_DIRNAMES += broken_ldrd
+
+MULTILIB_EXCEPTIONS += mfix-cortex-m3-ldrd
+MULTILIB_EXCEPTIONS += mthumb/mfix-cortex-m3-ldrd
+MULTILIB_EXCEPTIONS += *march=armv4t*mfix-cortex-m3-ldrd
+
+MULTILIB_ALIASES += mthumb/march?armv7/mfix-cortex-m3-ldrd=mthumb/march?armv7
+
+# As of at least 4.2, gcc passes the wrong -L options if some multilibs are
+# omitted from MULTILIB_OSDIRNAMES
+MULTILIB_OSDIRNAMES = mthumb=!thumb
+MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfix-cortex-m3-ldrd=!thumb2
+MULTILIB_OSDIRNAMES += mthumb/march.armv4t=!armv4t
+
#MULTILIB_OPTIONS += march=armv7
#MULTILIB_DIRNAMES += thumb2
@@ -49,9 +94,9 @@
# Not quite true. We can support hard-vfp calling in Thumb2, but how do we
# express that here? Also, we really need architecture v5e or later
# (mcrr etc).
-MULTILIB_OPTIONS += mfloat-abi=hard
-MULTILIB_DIRNAMES += fpu
-MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
+#MULTILIB_OPTIONS += mfloat-abi=hard
+#MULTILIB_DIRNAMES += fpu
+#MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
# MULTILIB_OPTIONS += mcpu=ep9312
# MULTILIB_DIRNAMES += ep9312