yann@339
|
1 |
diff -durN gcc-3.4.6.orig/gcc/config/arm/coff.h gcc-3.4.6/gcc/config/arm/coff.h
|
yann@339
|
2 |
--- gcc-3.4.6.orig/gcc/config/arm/coff.h 2004-02-24 15:25:22.000000000 +0100
|
yann@339
|
3 |
+++ gcc-3.4.6/gcc/config/arm/coff.h 2007-08-15 23:10:54.000000000 +0200
|
yann@339
|
4 |
@@ -31,11 +31,16 @@
|
yann@339
|
5 |
#define TARGET_VERSION fputs (" (ARM/coff)", stderr)
|
yann@339
|
6 |
|
yann@339
|
7 |
#undef TARGET_DEFAULT
|
yann@339
|
8 |
-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
|
yann@339
|
9 |
+#define TARGET_DEFAULT \
|
yann@339
|
10 |
+ ( ARM_FLAG_SOFT_FLOAT \
|
yann@339
|
11 |
+ | ARM_FLAG_VFP \
|
yann@339
|
12 |
+ | ARM_FLAG_APCS_32 \
|
yann@339
|
13 |
+ | ARM_FLAG_APCS_FRAME \
|
yann@339
|
14 |
+ | ARM_FLAG_MMU_TRAPS )
|
yann@339
|
15 |
|
yann@339
|
16 |
#ifndef MULTILIB_DEFAULTS
|
yann@339
|
17 |
#define MULTILIB_DEFAULTS \
|
yann@339
|
18 |
- { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" }
|
yann@339
|
19 |
+ { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork" }
|
yann@339
|
20 |
#endif
|
yann@339
|
21 |
|
yann@339
|
22 |
/* This is COFF, but prefer stabs. */
|
yann@339
|
23 |
diff -durN gcc-3.4.6.orig/gcc/config/arm/elf.h gcc-3.4.6/gcc/config/arm/elf.h
|
yann@339
|
24 |
--- gcc-3.4.6.orig/gcc/config/arm/elf.h 2004-02-24 15:25:22.000000000 +0100
|
yann@339
|
25 |
+++ gcc-3.4.6/gcc/config/arm/elf.h 2007-08-15 23:10:54.000000000 +0200
|
yann@339
|
26 |
@@ -46,7 +46,9 @@
|
yann@339
|
27 |
|
yann@339
|
28 |
#ifndef SUBTARGET_ASM_FLOAT_SPEC
|
yann@339
|
29 |
#define SUBTARGET_ASM_FLOAT_SPEC "\
|
yann@339
|
30 |
-%{mapcs-float:-mfloat} %{msoft-float:-mfpu=softfpa}"
|
yann@339
|
31 |
+%{mapcs-float:-mfloat} \
|
yann@339
|
32 |
+%{mhard-float:-mfpu=fpa} \
|
yann@339
|
33 |
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
|
yann@339
|
34 |
#endif
|
yann@339
|
35 |
|
yann@339
|
36 |
#ifndef ASM_SPEC
|
yann@339
|
37 |
@@ -106,12 +108,17 @@
|
yann@339
|
38 |
#endif
|
yann@339
|
39 |
|
yann@339
|
40 |
#ifndef TARGET_DEFAULT
|
yann@339
|
41 |
-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
|
yann@339
|
42 |
+#define TARGET_DEFAULT \
|
yann@339
|
43 |
+ ( ARM_FLAG_SOFT_FLOAT \
|
yann@339
|
44 |
+ | ARM_FLAG_VFP \
|
yann@339
|
45 |
+ | ARM_FLAG_APCS_32 \
|
yann@339
|
46 |
+ | ARM_FLAG_APCS_FRAME \
|
yann@339
|
47 |
+ | ARM_FLAG_MMU_TRAPS )
|
yann@339
|
48 |
#endif
|
yann@339
|
49 |
|
yann@339
|
50 |
#ifndef MULTILIB_DEFAULTS
|
yann@339
|
51 |
#define MULTILIB_DEFAULTS \
|
yann@339
|
52 |
- { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
|
yann@339
|
53 |
+ { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
|
yann@339
|
54 |
#endif
|
yann@339
|
55 |
|
yann@339
|
56 |
#define TARGET_ASM_FILE_START_APP_OFF true
|
yann@339
|
57 |
diff -durN gcc-3.4.6.orig/gcc/config/arm/linux-elf.h gcc-3.4.6/gcc/config/arm/linux-elf.h
|
yann@339
|
58 |
--- gcc-3.4.6.orig/gcc/config/arm/linux-elf.h 2007-08-15 23:07:00.000000000 +0200
|
yann@339
|
59 |
+++ gcc-3.4.6/gcc/config/arm/linux-elf.h 2007-08-15 23:10:54.000000000 +0200
|
yann@339
|
60 |
@@ -44,12 +44,26 @@
|
yann@339
|
61 |
#define TARGET_LINKER_EMULATION "armelf_linux"
|
yann@339
|
62 |
#endif
|
yann@339
|
63 |
|
yann@339
|
64 |
-/* Default is to use APCS-32 mode. */
|
yann@339
|
65 |
+/*
|
yann@339
|
66 |
+ * Default is to use APCS-32 mode with soft-vfp.
|
yann@339
|
67 |
+ * The old Linux default for floats can be achieved with -mhard-float
|
yann@339
|
68 |
+ * or with the configure --with-float=hard option.
|
yann@339
|
69 |
+ * If -msoft-float or --with-float=soft is used then software float
|
yann@339
|
70 |
+ * support will be used just like the default but with the legacy
|
yann@339
|
71 |
+ * big endian word ordering for double float representation instead.
|
yann@339
|
72 |
+ */
|
yann@339
|
73 |
#undef TARGET_DEFAULT
|
yann@339
|
74 |
-#define TARGET_DEFAULT \
|
yann@339
|
75 |
- ( ARM_FLAG_APCS_32 | \
|
yann@339
|
76 |
- ARM_FLAG_MMU_TRAPS | \
|
yann@339
|
77 |
- TARGET_ENDIAN_DEFAULT )
|
yann@339
|
78 |
+#define TARGET_DEFAULT \
|
yann@339
|
79 |
+ ( ARM_FLAG_APCS_32 \
|
yann@339
|
80 |
+ | ARM_FLAG_SOFT_FLOAT \
|
yann@339
|
81 |
+ | TARGET_ENDIAN_DEFAULT \
|
yann@339
|
82 |
+ | ARM_FLAG_VFP \
|
yann@339
|
83 |
+ | ARM_FLAG_MMU_TRAPS )
|
yann@339
|
84 |
+
|
yann@339
|
85 |
+#undef SUBTARGET_EXTRA_ASM_SPEC
|
yann@339
|
86 |
+#define SUBTARGET_EXTRA_ASM_SPEC "\
|
yann@339
|
87 |
+%{mhard-float:-mfpu=fpa} \
|
yann@339
|
88 |
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
|
yann@339
|
89 |
|
yann@339
|
90 |
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
|
yann@339
|
91 |
|
yann@339
|
92 |
@@ -57,7 +71,7 @@
|
yann@339
|
93 |
|
yann@339
|
94 |
#undef MULTILIB_DEFAULTS
|
yann@339
|
95 |
#define MULTILIB_DEFAULTS \
|
yann@339
|
96 |
- { "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
|
yann@339
|
97 |
+ { "marm", TARGET_ENDIAN_OPTION, "mapcs-32", "mno-thumb-interwork" }
|
yann@339
|
98 |
|
yann@339
|
99 |
#define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
|
yann@339
|
100 |
|
yann@339
|
101 |
@@ -72,7 +86,7 @@
|
yann@339
|
102 |
%{shared:-lc} \
|
yann@339
|
103 |
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
|
yann@339
|
104 |
|
yann@339
|
105 |
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
|
yann@339
|
106 |
+#define LIBGCC_SPEC "-lgcc"
|
yann@339
|
107 |
|
yann@339
|
108 |
/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
|
yann@339
|
109 |
the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
|
yann@339
|
110 |
diff -durN gcc-3.4.6.orig/gcc/config/arm/t-linux gcc-3.4.6/gcc/config/arm/t-linux
|
yann@339
|
111 |
--- gcc-3.4.6.orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200
|
yann@339
|
112 |
+++ gcc-3.4.6/gcc/config/arm/t-linux 2007-08-15 23:10:54.000000000 +0200
|
yann@339
|
113 |
@@ -4,7 +4,10 @@
|
yann@339
|
114 |
LIBGCC2_DEBUG_CFLAGS = -g0
|
yann@339
|
115 |
|
yann@339
|
116 |
LIB1ASMSRC = arm/lib1funcs.asm
|
yann@339
|
117 |
-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
|
yann@339
|
118 |
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
|
yann@339
|
119 |
+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
|
yann@339
|
120 |
+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
|
yann@339
|
121 |
+ _fixsfsi _fixunssfsi
|
yann@339
|
122 |
|
yann@339
|
123 |
# MULTILIB_OPTIONS = mhard-float/msoft-float
|
yann@339
|
124 |
# MULTILIB_DIRNAMES = hard-float soft-float
|
yann@339
|
125 |
diff -durN gcc-3.4.6.orig/gcc/config/arm/unknown-elf.h gcc-3.4.6/gcc/config/arm/unknown-elf.h
|
yann@339
|
126 |
--- gcc-3.4.6.orig/gcc/config/arm/unknown-elf.h 2004-02-24 15:25:22.000000000 +0100
|
yann@339
|
127 |
+++ gcc-3.4.6/gcc/config/arm/unknown-elf.h 2007-08-15 23:10:54.000000000 +0200
|
yann@339
|
128 |
@@ -30,7 +30,12 @@
|
yann@339
|
129 |
|
yann@339
|
130 |
/* Default to using APCS-32 and software floating point. */
|
yann@339
|
131 |
#ifndef TARGET_DEFAULT
|
yann@339
|
132 |
-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
|
yann@339
|
133 |
+#define TARGET_DEFAULT \
|
yann@339
|
134 |
+ ( ARM_FLAG_SOFT_FLOAT \
|
yann@339
|
135 |
+ | ARM_FLAG_VFP \
|
yann@339
|
136 |
+ | ARM_FLAG_APCS_32 \
|
yann@339
|
137 |
+ | ARM_FLAG_APCS_FRAME \
|
yann@339
|
138 |
+ | ARM_FLAG_MMU_TRAPS )
|
yann@339
|
139 |
#endif
|
yann@339
|
140 |
|
yann@339
|
141 |
/* Now we define the strings used to build the spec file. */
|
yann@339
|
142 |
diff -durN gcc-3.4.6.orig/gcc/config/arm/xscale-elf.h gcc-3.4.6/gcc/config/arm/xscale-elf.h
|
yann@339
|
143 |
--- gcc-3.4.6.orig/gcc/config/arm/xscale-elf.h 2003-07-02 01:26:43.000000000 +0200
|
yann@339
|
144 |
+++ gcc-3.4.6/gcc/config/arm/xscale-elf.h 2007-08-15 23:10:54.000000000 +0200
|
yann@339
|
145 |
@@ -49,11 +49,12 @@
|
yann@339
|
146 |
endian, regardless of the endian-ness of the memory
|
yann@339
|
147 |
system. */
|
yann@339
|
148 |
|
yann@339
|
149 |
-#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
|
yann@339
|
150 |
- %{mhard-float:-mfpu=fpa} \
|
yann@339
|
151 |
- %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
|
yann@339
|
152 |
+#define SUBTARGET_EXTRA_ASM_SPEC "\
|
yann@339
|
153 |
+%{!mcpu=*:-mcpu=xscale} \
|
yann@339
|
154 |
+%{mhard-float:-mfpu=fpa} \
|
yann@339
|
155 |
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
|
yann@339
|
156 |
|
yann@339
|
157 |
#ifndef MULTILIB_DEFAULTS
|
yann@339
|
158 |
#define MULTILIB_DEFAULTS \
|
yann@339
|
159 |
- { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }
|
yann@339
|
160 |
+ { "mlittle-endian", "mno-thumb-interwork", "marm" }
|
yann@339
|
161 |
#endif
|