Add support to build an ARM toolchain.
[ipfire-2.x.git] / src / patches / gcc-4.1.2-specs-1.patch
1 diff -Naur gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h gcc-4.1.2/gcc/config/alpha/linux-elf.h
2 --- gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h 2005-06-25 01:22:41.000000000 +0000
3 +++ gcc-4.1.2/gcc/config/alpha/linux-elf.h      2011-09-01 17:11:11.000000000 +0000
4 @@ -27,7 +27,7 @@
5  #define SUBTARGET_EXTRA_SPECS \
6  { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
7  
8 -#define ELF_DYNAMIC_LINKER     "/lib/ld-linux.so.2"
9 +#define ELF_DYNAMIC_LINKER     "/tools/lib/ld-linux.so.2"
10  
11  #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}         \
12    %{O*:-O3} %{!O*:-O1}                                         \
13 diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h gcc-4.1.2/gcc/config/arm/linux-eabi.h
14 --- gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h  2005-11-15 14:32:13.000000000 +0000
15 +++ gcc-4.1.2/gcc/config/arm/linux-eabi.h       2011-09-01 17:11:47.000000000 +0000
16 @@ -53,7 +53,7 @@
17  /* Use ld-linux.so.3 so that it will be possible to run "classic"
18     GNU/Linux binaries on an EABI system.  */
19  #undef LINUX_TARGET_INTERPRETER
20 -#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
21 +#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.3"
22  
23  /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
24     use the GNU/Linux version, not the generic BPABI version.  */
25 diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-elf.h gcc-4.1.2/gcc/config/arm/linux-elf.h
26 --- gcc-4.1.2.orig/gcc/config/arm/linux-elf.h   2005-10-10 01:04:31.000000000 +0000
27 +++ gcc-4.1.2/gcc/config/arm/linux-elf.h        2011-09-01 17:11:11.000000000 +0000
28 @@ -51,7 +51,7 @@
29  
30  #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
31  
32 -#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
33 +#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.2"
34  
35  #define LINUX_TARGET_LINK_SPEC  "%{h*} %{version:-v} \
36     %{b} \
37 diff -Naur gcc-4.1.2.orig/gcc/config/frv/linux.h gcc-4.1.2/gcc/config/frv/linux.h
38 --- gcc-4.1.2.orig/gcc/config/frv/linux.h       2005-06-25 01:22:41.000000000 +0000
39 +++ gcc-4.1.2/gcc/config/frv/linux.h    2011-09-01 17:11:11.000000000 +0000
40 @@ -41,7 +41,7 @@
41    %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \
42    %{!shared: %{!static: \
43     %{rdynamic:-export-dynamic} \
44 -   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
45 +   %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
46     %{static}}"
47  
48  /* Support for compile-time default CPU.  */
49 diff -Naur gcc-4.1.2.orig/gcc/config/i386/gnu.h gcc-4.1.2/gcc/config/i386/gnu.h
50 --- gcc-4.1.2.orig/gcc/config/i386/gnu.h        2004-09-08 00:17:19.000000000 +0000
51 +++ gcc-4.1.2/gcc/config/i386/gnu.h     2011-09-01 17:11:11.000000000 +0000
52 @@ -27,7 +27,7 @@
53    %{!shared: \
54      %{!static: \
55        %{rdynamic:-export-dynamic} \
56 -      %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \
57 +      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \
58      %{static:-static}}"
59  
60  #undef STARTFILE_SPEC
61 diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux64.h gcc-4.1.2/gcc/config/i386/linux64.h
62 --- gcc-4.1.2.orig/gcc/config/i386/linux64.h    2005-08-10 17:53:01.000000000 +0000
63 +++ gcc-4.1.2/gcc/config/i386/linux64.h 2011-09-01 17:11:11.000000000 +0000
64 @@ -60,8 +60,8 @@
65    %{!shared: \
66      %{!static: \
67        %{rdynamic:-export-dynamic} \
68 -      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
69 -      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
70 +      %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
71 +      %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \
72      %{static:-static}}"
73  
74  /* Similar to standard Linux, but adding -ffast-math support.  */
75 diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux.h gcc-4.1.2/gcc/config/i386/linux.h
76 --- gcc-4.1.2.orig/gcc/config/i386/linux.h      2005-08-10 17:53:01.000000000 +0000
77 +++ gcc-4.1.2/gcc/config/i386/linux.h   2011-09-01 17:11:11.000000000 +0000
78 @@ -105,7 +105,7 @@
79  /* If ELF is the default format, we should not use /lib/elf.  */
80  
81  #define LINK_EMULATION "elf_i386"
82 -#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
83 +#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
84  
85  #undef  SUBTARGET_EXTRA_SPECS
86  #define SUBTARGET_EXTRA_SPECS \
87 diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h gcc-4.1.2/gcc/config/ia64/linux.h
88 --- gcc-4.1.2.orig/gcc/config/ia64/linux.h      2006-12-12 15:24:07.000000000 +0000
89 +++ gcc-4.1.2/gcc/config/ia64/linux.h   2011-09-01 17:11:11.000000000 +0000
90 @@ -43,7 +43,7 @@
91    %{!shared: \
92      %{!static: \
93        %{rdynamic:-export-dynamic} \
94 -      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
95 +      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \
96        %{static:-static}}"
97  
98  #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
99 diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig gcc-4.1.2/gcc/config/ia64/linux.h.orig
100 --- gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig 1970-01-01 00:00:00.000000000 +0000
101 +++ gcc-4.1.2/gcc/config/ia64/linux.h.orig      2006-12-12 15:24:07.000000000 +0000
102 @@ -0,0 +1,59 @@
103 +/* Definitions for ia64-linux target.  */
104 +
105 +/* This macro is a C statement to print on `stderr' a string describing the
106 +   particular machine description choice.  */
107 +
108 +#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
109 +
110 +/* This is for -profile to use -lc_p instead of -lc.  */
111 +#undef CC1_SPEC
112 +#define CC1_SPEC "%{profile:-p} %{G*}"
113 +
114 +/* Target OS builtins.  */
115 +#define TARGET_OS_CPP_BUILTINS()               \
116 +do {                                           \
117 +       LINUX_TARGET_OS_CPP_BUILTINS();         \
118 +       builtin_define("_LONGLONG");            \
119 +} while (0)
120 +
121 +/* Need to override linux.h STARTFILE_SPEC, since it has crtbeginT.o in.  */
122 +#undef STARTFILE_SPEC
123 +#ifdef HAVE_LD_PIE
124 +#define STARTFILE_SPEC \
125 +  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\
126 +   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
127 +#else
128 +#define STARTFILE_SPEC \
129 +  "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}}\
130 +   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
131 +#endif
132 +
133 +/* Similar to standard Linux, but adding -ffast-math support.  */
134 +#undef  ENDFILE_SPEC
135 +#define ENDFILE_SPEC \
136 +  "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
137 +   %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
138 +
139 +/* Define this for shared library support because it isn't in the main
140 +   linux.h file.  */
141 +
142 +#undef LINK_SPEC
143 +#define LINK_SPEC "\
144 +  %{shared:-shared} \
145 +  %{!shared: \
146 +    %{!static: \
147 +      %{rdynamic:-export-dynamic} \
148 +      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
149 +      %{static:-static}}"
150 +
151 +#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
152 +
153 +#define JMP_BUF_SIZE  76
154 +
155 +/* Override linux.h LINK_EH_SPEC definition.
156 +   Signalize that because we have fde-glibc, we don't need all C shared libs
157 +   linked against -lgcc_s.  */
158 +#undef LINK_EH_SPEC
159 +#define LINK_EH_SPEC ""
160 +
161 +#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
162 diff -Naur gcc-4.1.2.orig/gcc/config/linux.h gcc-4.1.2/gcc/config/linux.h
163 --- gcc-4.1.2.orig/gcc/config/linux.h   2005-08-06 13:26:35.000000000 +0000
164 +++ gcc-4.1.2/gcc/config/linux.h        2011-09-01 17:11:11.000000000 +0000
165 @@ -104,3 +104,7 @@
166  #define TARGET_C99_FUNCTIONS 1
167  
168  #define TARGET_POSIX_IO
169 +
170 +/* Remove /usr/include from the end of the include search path.  */
171 +#undef STANDARD_INCLUDE_DIR
172 +#define STANDARD_INCLUDE_DIR 0
173 diff -Naur gcc-4.1.2.orig/gcc/config/m32r/linux.h gcc-4.1.2/gcc/config/m32r/linux.h
174 --- gcc-4.1.2.orig/gcc/config/m32r/linux.h      2005-07-08 10:00:15.000000000 +0000
175 +++ gcc-4.1.2/gcc/config/m32r/linux.h   2011-09-01 17:11:11.000000000 +0000
176 @@ -66,7 +66,7 @@
177      %{!ibcs: \
178        %{!static: \
179         %{rdynamic:-export-dynamic} \
180 -       %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
181 +       %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
182         %{static:-static}}}"
183  #else
184  #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \
185 @@ -74,7 +74,7 @@
186      %{!ibcs: \
187        %{!static: \
188         %{rdynamic:-export-dynamic} \
189 -       %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
190 +       %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
191         %{static:-static}}}"
192  #endif
193  
194 diff -Naur gcc-4.1.2.orig/gcc/config/m68k/linux.h gcc-4.1.2/gcc/config/m68k/linux.h
195 --- gcc-4.1.2.orig/gcc/config/m68k/linux.h      2005-06-25 01:22:41.000000000 +0000
196 +++ gcc-4.1.2/gcc/config/m68k/linux.h   2011-09-01 17:11:11.000000000 +0000
197 @@ -128,7 +128,7 @@
198    %{!shared: \
199      %{!static: \
200        %{rdynamic:-export-dynamic} \
201 -      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
202 +      %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \
203      %{static}}"
204  
205  /* For compatibility with linux/a.out */
206 diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux64.h gcc-4.1.2/gcc/config/mips/linux64.h
207 --- gcc-4.1.2.orig/gcc/config/mips/linux64.h    2005-06-25 01:22:41.000000000 +0000
208 +++ gcc-4.1.2/gcc/config/mips/linux64.h 2011-09-01 17:11:11.000000000 +0000
209 @@ -47,9 +47,9 @@
210        %{!static: \
211          %{rdynamic:-export-dynamic} \
212          %{!dynamic-linker: \
213 -         %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \
214 -         %{mabi=64: -dynamic-linker /lib64/ld.so.1} \
215 -         %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \
216 +         %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \
217 +         %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \
218 +         %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \
219        %{static:-static}}} \
220  %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \
221  %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \
222 diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux.h gcc-4.1.2/gcc/config/mips/linux.h
223 --- gcc-4.1.2.orig/gcc/config/mips/linux.h      2006-12-17 13:57:31.000000000 +0000
224 +++ gcc-4.1.2/gcc/config/mips/linux.h   2011-09-01 17:11:11.000000000 +0000
225 @@ -112,7 +112,7 @@
226      %{!ibcs: \
227        %{!static: \
228          %{rdynamic:-export-dynamic} \
229 -        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
230 +        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
231          %{static:-static}}}"
232  
233  #undef SUBTARGET_ASM_SPEC
234 diff -Naur gcc-4.1.2.orig/gcc/config/mn10300/linux.h gcc-4.1.2/gcc/config/mn10300/linux.h
235 --- gcc-4.1.2.orig/gcc/config/mn10300/linux.h   2005-06-25 01:22:41.000000000 +0000
236 +++ gcc-4.1.2/gcc/config/mn10300/linux.h        2011-09-01 17:11:11.000000000 +0000
237 @@ -37,7 +37,7 @@
238  #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
239     %{!static: \
240       %{rdynamic:-export-dynamic} \
241 -     %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
242 +     %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
243     %{static:-static}"
244  
245  #undef  PROCESSOR_DEFAULT
246 diff -Naur gcc-4.1.2.orig/gcc/config/pa/pa-linux.h gcc-4.1.2/gcc/config/pa/pa-linux.h
247 --- gcc-4.1.2.orig/gcc/config/pa/pa-linux.h     2007-01-12 02:23:38.000000000 +0000
248 +++ gcc-4.1.2/gcc/config/pa/pa-linux.h  2011-09-01 17:11:11.000000000 +0000
249 @@ -55,7 +55,7 @@
250    %{!shared: \
251      %{!static: \
252        %{rdynamic:-export-dynamic} \
253 -      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
254 +      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
255        %{static:-static}}"
256  
257  /* glibc's profiling functions don't need gcc to allocate counters.  */
258 diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/linux64.h gcc-4.1.2/gcc/config/rs6000/linux64.h
259 --- gcc-4.1.2.orig/gcc/config/rs6000/linux64.h  2006-02-10 20:58:33.000000000 +0000
260 +++ gcc-4.1.2/gcc/config/rs6000/linux64.h       2011-09-01 17:11:11.000000000 +0000
261 @@ -339,11 +339,11 @@
262  
263  #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
264    %{rdynamic:-export-dynamic} \
265 -  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
266 +  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
267  
268  #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
269    %{rdynamic:-export-dynamic} \
270 -  %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}"
271 +  %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}"
272  
273  #undef  TOC_SECTION_ASM_OP
274  #define TOC_SECTION_ASM_OP \
275 diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h gcc-4.1.2/gcc/config/rs6000/sysv4.h
276 --- gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h    2006-02-10 20:58:33.000000000 +0000
277 +++ gcc-4.1.2/gcc/config/rs6000/sysv4.h 2011-09-01 17:11:11.000000000 +0000
278 @@ -1041,7 +1041,7 @@
279  
280  #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
281    %{rdynamic:-export-dynamic} \
282 -  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
283 +  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
284  
285  #if defined(HAVE_LD_EH_FRAME_HDR)
286  # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
287 @@ -1072,7 +1072,7 @@
288  
289  #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \
290    %{rdynamic:-export-dynamic} \
291 -  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
292 +  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
293  
294  #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__   \
295  %{!undef:                                                      \
296 diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h gcc-4.1.2/gcc/config/s390/linux.h
297 --- gcc-4.1.2.orig/gcc/config/s390/linux.h      2006-12-12 15:24:07.000000000 +0000
298 +++ gcc-4.1.2/gcc/config/s390/linux.h   2011-09-01 17:11:11.000000000 +0000
299 @@ -86,8 +86,8 @@
300        %{!static: \
301         %{rdynamic:-export-dynamic} \
302         %{!dynamic-linker: \
303 -          %{m31:-dynamic-linker /lib/ld.so.1} \
304 -          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
305 +          %{m31:-dynamic-linker /tools/lib/ld.so.1} \
306 +          %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}"
307  
308  #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
309  
310 diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h.orig gcc-4.1.2/gcc/config/s390/linux.h.orig
311 --- gcc-4.1.2.orig/gcc/config/s390/linux.h.orig 1970-01-01 00:00:00.000000000 +0000
312 +++ gcc-4.1.2/gcc/config/s390/linux.h.orig      2006-12-12 15:24:07.000000000 +0000
313 @@ -0,0 +1,107 @@
314 +/* Definitions for Linux for S/390.
315 +   Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
316 +   Contributed by Hartmut Penner (hpenner@de.ibm.com) and
317 +                  Ulrich Weigand (uweigand@de.ibm.com).
318 +
319 +This file is part of GCC.
320 +
321 +GCC is free software; you can redistribute it and/or modify it under
322 +the terms of the GNU General Public License as published by the Free
323 +Software Foundation; either version 2, or (at your option) any later
324 +version.
325 +
326 +GCC is distributed in the hope that it will be useful, but WITHOUT ANY
327 +WARRANTY; without even the implied warranty of MERCHANTABILITY or
328 +FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
329 +for more details.
330 +
331 +You should have received a copy of the GNU General Public License
332 +along with GCC; see the file COPYING.  If not, write to the Free
333 +Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
334 +02110-1301, USA.  */
335 +
336 +#ifndef _LINUX_H
337 +#define _LINUX_H
338 +
339 +/* Target specific version string.  */
340 +
341 +#ifdef DEFAULT_TARGET_64BIT
342 +#undef  TARGET_VERSION
343 +#define TARGET_VERSION fprintf (stderr, " (Linux for zSeries)");
344 +#else
345 +#undef  TARGET_VERSION
346 +#define TARGET_VERSION fprintf (stderr, " (Linux for S/390)");
347 +#endif
348 +
349 +
350 +/* Target specific type definitions.  */
351 +
352 +/* ??? Do we really want long as size_t on 31-bit?  */
353 +#undef  SIZE_TYPE
354 +#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int")
355 +#undef  PTRDIFF_TYPE
356 +#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
357 +
358 +#undef  WCHAR_TYPE
359 +#define WCHAR_TYPE "int"
360 +#undef  WCHAR_TYPE_SIZE
361 +#define WCHAR_TYPE_SIZE 32
362 +
363 +
364 +/* Target specific preprocessor settings.  */
365 +
366 +#define TARGET_OS_CPP_BUILTINS()               \
367 +  do                                           \
368 +    {                                          \
369 +      LINUX_TARGET_OS_CPP_BUILTINS();          \
370 +      if (flag_pic)                            \
371 +        {                                      \
372 +          builtin_define ("__PIC__");          \
373 +          builtin_define ("__pic__");          \
374 +        }                                      \
375 +    }                                          \
376 +  while (0)
377 +
378 +
379 +/* Target specific assembler settings.  */
380 +
381 +#undef  ASM_SPEC
382 +#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}"
383 +
384 +
385 +/* Target specific linker settings.  */
386 +
387 +#ifdef DEFAULT_TARGET_64BIT
388 +#define MULTILIB_DEFAULTS { "m64" }
389 +#else
390 +#define MULTILIB_DEFAULTS { "m31" }
391 +#endif
392 +
393 +#undef  LINK_SPEC
394 +#define LINK_SPEC \
395 +  "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
396 +   %{shared:-shared} \
397 +   %{!shared: \
398 +      %{static:-static} \
399 +      %{!static: \
400 +       %{rdynamic:-export-dynamic} \
401 +       %{!dynamic-linker: \
402 +          %{m31:-dynamic-linker /lib/ld.so.1} \
403 +          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
404 +
405 +#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
406 +
407 +#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
408 +
409 +#define MD_UNWIND_SUPPORT "config/s390/linux-unwind.h"
410 +
411 +#ifdef TARGET_LIBC_PROVIDES_SSP
412 +/* s390 glibc provides __stack_chk_guard in 0x14(tp),
413 +   s390x glibc provides it at 0x28(tp).  */
414 +#define TARGET_THREAD_SSP_OFFSET        (TARGET_64BIT ? 0x28 : 0x14)
415 +#endif
416 +
417 +/* Define if long doubles should be mangled as 'g'.  */
418 +#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
419 +
420 +#endif
421 diff -Naur gcc-4.1.2.orig/gcc/config/sh/linux.h gcc-4.1.2/gcc/config/sh/linux.h
422 --- gcc-4.1.2.orig/gcc/config/sh/linux.h        2005-06-25 01:22:41.000000000 +0000
423 +++ gcc-4.1.2/gcc/config/sh/linux.h     2011-09-01 17:11:11.000000000 +0000
424 @@ -60,7 +60,7 @@
425    "%{shared:-shared} \
426     %{!static: \
427       %{rdynamic:-export-dynamic} \
428 -     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
429 +     %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
430     %{static:-static}"
431  
432  /* Output assembler code to STREAM to call the profiler.  */
433 diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux64.h gcc-4.1.2/gcc/config/sparc/linux64.h
434 --- gcc-4.1.2.orig/gcc/config/sparc/linux64.h   2006-02-11 08:38:51.000000000 +0000
435 +++ gcc-4.1.2/gcc/config/sparc/linux64.h        2011-09-01 17:11:11.000000000 +0000
436 @@ -162,21 +162,21 @@
437    { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },       \
438    { "link_arch",        LINK_ARCH_SPEC },
439      
440 -#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
441 +#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
442    %{!shared: \
443      %{!ibcs: \
444        %{!static: \
445          %{rdynamic:-export-dynamic} \
446 -        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
447 +        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
448          %{static:-static}}} \
449  "
450  
451 -#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
452 +#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
453    %{!shared: \
454      %{!ibcs: \
455        %{!static: \
456          %{rdynamic:-export-dynamic} \
457 -        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
458 +        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
459          %{static:-static}}} \
460  "
461  
462 @@ -252,12 +252,12 @@
463  #else /* !SPARC_BI_ARCH */
464  
465  #undef LINK_SPEC
466 -#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
467 +#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
468    %{!shared: \
469      %{!ibcs: \
470        %{!static: \
471          %{rdynamic:-export-dynamic} \
472 -        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
473 +        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
474          %{static:-static}}} \
475  %{mlittle-endian:-EL} \
476  %{!mno-relax:%{!r:-relax}} \
477 diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux.h gcc-4.1.2/gcc/config/sparc/linux.h
478 --- gcc-4.1.2.orig/gcc/config/sparc/linux.h     2006-02-11 08:38:51.000000000 +0000
479 +++ gcc-4.1.2/gcc/config/sparc/linux.h  2011-09-01 17:11:11.000000000 +0000
480 @@ -126,13 +126,13 @@
481  /* If ELF is the default format, we should not use /lib/elf.  */
482  
483  #undef  LINK_SPEC
484 -#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
485 +#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
486    %{!mno-relax:%{!r:-relax}} \
487    %{!shared: \
488      %{!ibcs: \
489        %{!static: \
490          %{rdynamic:-export-dynamic} \
491 -        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
492 +        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
493          %{static:-static}}}"
494  
495  /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
496 diff -Naur gcc-4.1.2.orig/gcc/config/xtensa/linux.h gcc-4.1.2/gcc/config/xtensa/linux.h
497 --- gcc-4.1.2.orig/gcc/config/xtensa/linux.h    2005-06-25 01:22:41.000000000 +0000
498 +++ gcc-4.1.2/gcc/config/xtensa/linux.h 2011-09-01 17:11:11.000000000 +0000
499 @@ -50,7 +50,7 @@
500      %{!ibcs: \
501        %{!static: \
502          %{rdynamic:-export-dynamic} \
503 -        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
504 +        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
505        %{static:-static}}}"
506  
507  #undef LOCAL_LABEL_PREFIX