-Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
-Date: 2006-02-17
-Initial Package Version: 4.1.0
-Upstream Status: Not Sent - LFS Specific
-Origin: Idea originally developed by Ryan Oliver and Greg Schafer for
- the Pure LFS project.
- More architectures added by Zack Winkles.
- Further fine tunings by Greg Schafer.
- Modified for gcc 3.3.2 by Oliver Brakmann.
- Rediffed against gcc 3.4.0 by Zack Winkles.
- Rediffed against gcc 3.4.3 by Jim Gifford.
- Rediffed against gcc 4.0.0 by Robert Connolly.
- Rediffed against gcc 4.1.0 by Chris Staub
-Description: This patch modifies the location of the dynamic linker for
- the GCC Pass 2 build in LFS Chapter 5.
-
-diff -Naur gcc-4.1.0.orig/gcc/config/alpha/linux-elf.h gcc-4.1.0/gcc/config/alpha/linux-elf.h
---- gcc-4.1.0.orig/gcc/config/alpha/linux-elf.h 2005-06-24 21:22:41.000000000 -0400
-+++ gcc-4.1.0/gcc/config/alpha/linux-elf.h 2006-02-28 22:02:20.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h gcc-4.1.2/gcc/config/alpha/linux-elf.h
+--- gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h 2005-06-25 01:22:41.000000000 +0000
++++ gcc-4.1.2/gcc/config/alpha/linux-elf.h 2011-09-01 17:11:11.000000000 +0000
@@ -27,7 +27,7 @@
#define SUBTARGET_EXTRA_SPECS \
{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
%{O*:-O3} %{!O*:-O1} \
-diff -Naur gcc-4.1.0.orig/gcc/config/arm/linux-elf.h gcc-4.1.0/gcc/config/arm/linux-elf.h
---- gcc-4.1.0.orig/gcc/config/arm/linux-elf.h 2005-10-09 21:04:31.000000000 -0400
-+++ gcc-4.1.0/gcc/config/arm/linux-elf.h 2006-02-28 22:02:20.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h gcc-4.1.2/gcc/config/arm/linux-eabi.h
+--- gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h 2005-11-15 14:32:13.000000000 +0000
++++ gcc-4.1.2/gcc/config/arm/linux-eabi.h 2011-09-01 17:11:47.000000000 +0000
+@@ -53,7 +53,7 @@
+ /* Use ld-linux.so.3 so that it will be possible to run "classic"
+ GNU/Linux binaries on an EABI system. */
+ #undef LINUX_TARGET_INTERPRETER
+-#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
++#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.3"
+
+ /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
+ use the GNU/Linux version, not the generic BPABI version. */
+diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-elf.h gcc-4.1.2/gcc/config/arm/linux-elf.h
+--- gcc-4.1.2.orig/gcc/config/arm/linux-elf.h 2005-10-10 01:04:31.000000000 +0000
++++ gcc-4.1.2/gcc/config/arm/linux-elf.h 2011-09-01 17:11:11.000000000 +0000
@@ -51,7 +51,7 @@
#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
#define LINUX_TARGET_LINK_SPEC "%{h*} %{version:-v} \
%{b} \
-diff -Naur gcc-4.1.0.orig/gcc/config/frv/linux.h gcc-4.1.0/gcc/config/frv/linux.h
---- gcc-4.1.0.orig/gcc/config/frv/linux.h 2005-06-24 21:22:41.000000000 -0400
-+++ gcc-4.1.0/gcc/config/frv/linux.h 2006-02-28 22:02:20.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/frv/linux.h gcc-4.1.2/gcc/config/frv/linux.h
+--- gcc-4.1.2.orig/gcc/config/frv/linux.h 2005-06-25 01:22:41.000000000 +0000
++++ gcc-4.1.2/gcc/config/frv/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -41,7 +41,7 @@
%{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \
%{!shared: %{!static: \
%{static}}"
/* Support for compile-time default CPU. */
-diff -Naur gcc-4.1.0.orig/gcc/config/i386/gnu.h gcc-4.1.0/gcc/config/i386/gnu.h
---- gcc-4.1.0.orig/gcc/config/i386/gnu.h 2004-09-07 20:17:19.000000000 -0400
-+++ gcc-4.1.0/gcc/config/i386/gnu.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/i386/gnu.h gcc-4.1.2/gcc/config/i386/gnu.h
+--- gcc-4.1.2.orig/gcc/config/i386/gnu.h 2004-09-08 00:17:19.000000000 +0000
++++ gcc-4.1.2/gcc/config/i386/gnu.h 2011-09-01 17:11:11.000000000 +0000
@@ -27,7 +27,7 @@
%{!shared: \
%{!static: \
%{static:-static}}"
#undef STARTFILE_SPEC
-diff -Naur gcc-4.1.0.orig/gcc/config/i386/linux.h gcc-4.1.0/gcc/config/i386/linux.h
---- gcc-4.1.0.orig/gcc/config/i386/linux.h 2005-08-10 13:53:01.000000000 -0400
-+++ gcc-4.1.0/gcc/config/i386/linux.h 2006-02-28 22:02:21.000000000 -0500
-@@ -105,7 +105,7 @@
- /* If ELF is the default format, we should not use /lib/elf. */
-
- #define LINK_EMULATION "elf_i386"
--#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
-
- #undef SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS \
-diff -Naur gcc-4.1.0.orig/gcc/config/i386/linux64.h gcc-4.1.0/gcc/config/i386/linux64.h
---- gcc-4.1.0.orig/gcc/config/i386/linux64.h 2005-08-10 13:53:01.000000000 -0400
-+++ gcc-4.1.0/gcc/config/i386/linux64.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux64.h gcc-4.1.2/gcc/config/i386/linux64.h
+--- gcc-4.1.2.orig/gcc/config/i386/linux64.h 2005-08-10 17:53:01.000000000 +0000
++++ gcc-4.1.2/gcc/config/i386/linux64.h 2011-09-01 17:11:11.000000000 +0000
@@ -60,8 +60,8 @@
%{!shared: \
%{!static: \
%{static:-static}}"
/* Similar to standard Linux, but adding -ffast-math support. */
-diff -Naur gcc-4.1.0.orig/gcc/config/ia64/linux.h gcc-4.1.0/gcc/config/ia64/linux.h
---- gcc-4.1.0.orig/gcc/config/ia64/linux.h 2004-09-07 20:17:19.000000000 -0400
-+++ gcc-4.1.0/gcc/config/ia64/linux.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux.h gcc-4.1.2/gcc/config/i386/linux.h
+--- gcc-4.1.2.orig/gcc/config/i386/linux.h 2005-08-10 17:53:01.000000000 +0000
++++ gcc-4.1.2/gcc/config/i386/linux.h 2011-09-01 17:11:11.000000000 +0000
+@@ -105,7 +105,7 @@
+ /* If ELF is the default format, we should not use /lib/elf. */
+
+ #define LINK_EMULATION "elf_i386"
+-#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
++#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
+
+ #undef SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS \
+diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h gcc-4.1.2/gcc/config/ia64/linux.h
+--- gcc-4.1.2.orig/gcc/config/ia64/linux.h 2006-12-12 15:24:07.000000000 +0000
++++ gcc-4.1.2/gcc/config/ia64/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -43,7 +43,7 @@
%{!shared: \
%{!static: \
+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \
%{static:-static}}"
-
-diff -Naur gcc-4.1.0.orig/gcc/config/linux.h gcc-4.1.0/gcc/config/linux.h
---- gcc-4.1.0.orig/gcc/config/linux.h 2005-08-06 09:26:35.000000000 -0400
-+++ gcc-4.1.0/gcc/config/linux.h 2006-02-28 22:02:21.000000000 -0500
+ #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig gcc-4.1.2/gcc/config/ia64/linux.h.orig
+--- gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig 1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.1.2/gcc/config/ia64/linux.h.orig 2006-12-12 15:24:07.000000000 +0000
+@@ -0,0 +1,59 @@
++/* Definitions for ia64-linux target. */
++
++/* This macro is a C statement to print on `stderr' a string describing the
++ particular machine description choice. */
++
++#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
++
++/* This is for -profile to use -lc_p instead of -lc. */
++#undef CC1_SPEC
++#define CC1_SPEC "%{profile:-p} %{G*}"
++
++/* Target OS builtins. */
++#define TARGET_OS_CPP_BUILTINS() \
++do { \
++ LINUX_TARGET_OS_CPP_BUILTINS(); \
++ builtin_define("_LONGLONG"); \
++} while (0)
++
++/* Need to override linux.h STARTFILE_SPEC, since it has crtbeginT.o in. */
++#undef STARTFILE_SPEC
++#ifdef HAVE_LD_PIE
++#define STARTFILE_SPEC \
++ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\
++ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
++#else
++#define STARTFILE_SPEC \
++ "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}}\
++ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
++#endif
++
++/* Similar to standard Linux, but adding -ffast-math support. */
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
++ %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
++
++/* Define this for shared library support because it isn't in the main
++ linux.h file. */
++
++#undef LINK_SPEC
++#define LINK_SPEC "\
++ %{shared:-shared} \
++ %{!shared: \
++ %{!static: \
++ %{rdynamic:-export-dynamic} \
++ %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
++ %{static:-static}}"
++
++#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
++
++#define JMP_BUF_SIZE 76
++
++/* Override linux.h LINK_EH_SPEC definition.
++ Signalize that because we have fde-glibc, we don't need all C shared libs
++ linked against -lgcc_s. */
++#undef LINK_EH_SPEC
++#define LINK_EH_SPEC ""
++
++#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
+diff -Naur gcc-4.1.2.orig/gcc/config/linux.h gcc-4.1.2/gcc/config/linux.h
+--- gcc-4.1.2.orig/gcc/config/linux.h 2005-08-06 13:26:35.000000000 +0000
++++ gcc-4.1.2/gcc/config/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -104,3 +104,7 @@
#define TARGET_C99_FUNCTIONS 1
+/* Remove /usr/include from the end of the include search path. */
+#undef STANDARD_INCLUDE_DIR
+#define STANDARD_INCLUDE_DIR 0
-diff -Naur gcc-4.1.0.orig/gcc/config/m32r/linux.h gcc-4.1.0/gcc/config/m32r/linux.h
---- gcc-4.1.0.orig/gcc/config/m32r/linux.h 2005-07-08 06:00:15.000000000 -0400
-+++ gcc-4.1.0/gcc/config/m32r/linux.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/m32r/linux.h gcc-4.1.2/gcc/config/m32r/linux.h
+--- gcc-4.1.2.orig/gcc/config/m32r/linux.h 2005-07-08 10:00:15.000000000 +0000
++++ gcc-4.1.2/gcc/config/m32r/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -66,7 +66,7 @@
%{!ibcs: \
%{!static: \
%{static:-static}}}"
#endif
-diff -Naur gcc-4.1.0.orig/gcc/config/m68k/linux.h gcc-4.1.0/gcc/config/m68k/linux.h
---- gcc-4.1.0.orig/gcc/config/m68k/linux.h 2005-06-24 21:22:41.000000000 -0400
-+++ gcc-4.1.0/gcc/config/m68k/linux.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/m68k/linux.h gcc-4.1.2/gcc/config/m68k/linux.h
+--- gcc-4.1.2.orig/gcc/config/m68k/linux.h 2005-06-25 01:22:41.000000000 +0000
++++ gcc-4.1.2/gcc/config/m68k/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -128,7 +128,7 @@
%{!shared: \
%{!static: \
%{static}}"
/* For compatibility with linux/a.out */
-diff -Naur gcc-4.1.0.orig/gcc/config/mips/linux.h gcc-4.1.0/gcc/config/mips/linux.h
---- gcc-4.1.0.orig/gcc/config/mips/linux.h 2005-06-24 21:22:41.000000000 -0400
-+++ gcc-4.1.0/gcc/config/mips/linux.h 2006-02-28 22:02:21.000000000 -0500
-@@ -112,7 +112,7 @@
- %{!ibcs: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
- %{static:-static}}}"
-
- #undef SUBTARGET_ASM_SPEC
-diff -Naur gcc-4.1.0.orig/gcc/config/mips/linux64.h gcc-4.1.0/gcc/config/mips/linux64.h
---- gcc-4.1.0.orig/gcc/config/mips/linux64.h 2005-06-24 21:22:41.000000000 -0400
-+++ gcc-4.1.0/gcc/config/mips/linux64.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux64.h gcc-4.1.2/gcc/config/mips/linux64.h
+--- gcc-4.1.2.orig/gcc/config/mips/linux64.h 2005-06-25 01:22:41.000000000 +0000
++++ gcc-4.1.2/gcc/config/mips/linux64.h 2011-09-01 17:11:11.000000000 +0000
@@ -47,9 +47,9 @@
%{!static: \
%{rdynamic:-export-dynamic} \
%{static:-static}}} \
%{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \
%{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \
-diff -Naur gcc-4.1.0.orig/gcc/config/mn10300/linux.h gcc-4.1.0/gcc/config/mn10300/linux.h
---- gcc-4.1.0.orig/gcc/config/mn10300/linux.h 2005-06-24 21:22:41.000000000 -0400
-+++ gcc-4.1.0/gcc/config/mn10300/linux.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux.h gcc-4.1.2/gcc/config/mips/linux.h
+--- gcc-4.1.2.orig/gcc/config/mips/linux.h 2006-12-17 13:57:31.000000000 +0000
++++ gcc-4.1.2/gcc/config/mips/linux.h 2011-09-01 17:11:11.000000000 +0000
+@@ -112,7 +112,7 @@
+ %{!ibcs: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
+ %{static:-static}}}"
+
+ #undef SUBTARGET_ASM_SPEC
+diff -Naur gcc-4.1.2.orig/gcc/config/mn10300/linux.h gcc-4.1.2/gcc/config/mn10300/linux.h
+--- gcc-4.1.2.orig/gcc/config/mn10300/linux.h 2005-06-25 01:22:41.000000000 +0000
++++ gcc-4.1.2/gcc/config/mn10300/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -37,7 +37,7 @@
#define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
%{!static: \
%{static:-static}"
#undef PROCESSOR_DEFAULT
-diff -Naur gcc-4.1.0.orig/gcc/config/pa/pa-linux.h gcc-4.1.0/gcc/config/pa/pa-linux.h
---- gcc-4.1.0.orig/gcc/config/pa/pa-linux.h 2005-11-17 22:22:18.000000000 -0500
-+++ gcc-4.1.0/gcc/config/pa/pa-linux.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/pa/pa-linux.h gcc-4.1.2/gcc/config/pa/pa-linux.h
+--- gcc-4.1.2.orig/gcc/config/pa/pa-linux.h 2007-01-12 02:23:38.000000000 +0000
++++ gcc-4.1.2/gcc/config/pa/pa-linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -55,7 +55,7 @@
%{!shared: \
%{!static: \
%{static:-static}}"
/* glibc's profiling functions don't need gcc to allocate counters. */
-diff -Naur gcc-4.1.0.orig/gcc/config/rs6000/linux64.h gcc-4.1.0/gcc/config/rs6000/linux64.h
---- gcc-4.1.0.orig/gcc/config/rs6000/linux64.h 2006-02-10 15:58:33.000000000 -0500
-+++ gcc-4.1.0/gcc/config/rs6000/linux64.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/linux64.h gcc-4.1.2/gcc/config/rs6000/linux64.h
+--- gcc-4.1.2.orig/gcc/config/rs6000/linux64.h 2006-02-10 20:58:33.000000000 +0000
++++ gcc-4.1.2/gcc/config/rs6000/linux64.h 2011-09-01 17:11:11.000000000 +0000
@@ -339,11 +339,11 @@
#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
#undef TOC_SECTION_ASM_OP
#define TOC_SECTION_ASM_OP \
-diff -Naur gcc-4.1.0.orig/gcc/config/rs6000/sysv4.h gcc-4.1.0/gcc/config/rs6000/sysv4.h
---- gcc-4.1.0.orig/gcc/config/rs6000/sysv4.h 2006-02-10 15:58:33.000000000 -0500
-+++ gcc-4.1.0/gcc/config/rs6000/sysv4.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h gcc-4.1.2/gcc/config/rs6000/sysv4.h
+--- gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h 2006-02-10 20:58:33.000000000 +0000
++++ gcc-4.1.2/gcc/config/rs6000/sysv4.h 2011-09-01 17:11:11.000000000 +0000
@@ -1041,7 +1041,7 @@
#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
#define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__ \
%{!undef: \
-diff -Naur gcc-4.1.0.orig/gcc/config/s390/linux.h gcc-4.1.0/gcc/config/s390/linux.h
---- gcc-4.1.0.orig/gcc/config/s390/linux.h 2006-02-11 03:38:51.000000000 -0500
-+++ gcc-4.1.0/gcc/config/s390/linux.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h gcc-4.1.2/gcc/config/s390/linux.h
+--- gcc-4.1.2.orig/gcc/config/s390/linux.h 2006-12-12 15:24:07.000000000 +0000
++++ gcc-4.1.2/gcc/config/s390/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -86,8 +86,8 @@
%{!static: \
%{rdynamic:-export-dynamic} \
+ %{m31:-dynamic-linker /tools/lib/ld.so.1} \
+ %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}"
+ #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
- #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-diff -Naur gcc-4.1.0.orig/gcc/config/sh/linux.h gcc-4.1.0/gcc/config/sh/linux.h
---- gcc-4.1.0.orig/gcc/config/sh/linux.h 2005-06-24 21:22:41.000000000 -0400
-+++ gcc-4.1.0/gcc/config/sh/linux.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h.orig gcc-4.1.2/gcc/config/s390/linux.h.orig
+--- gcc-4.1.2.orig/gcc/config/s390/linux.h.orig 1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.1.2/gcc/config/s390/linux.h.orig 2006-12-12 15:24:07.000000000 +0000
+@@ -0,0 +1,107 @@
++/* Definitions for Linux for S/390.
++ Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
++ Contributed by Hartmut Penner (hpenner@de.ibm.com) and
++ Ulrich Weigand (uweigand@de.ibm.com).
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 2, or (at your option) any later
++version.
++
++GCC is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING. If not, write to the Free
++Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
++02110-1301, USA. */
++
++#ifndef _LINUX_H
++#define _LINUX_H
++
++/* Target specific version string. */
++
++#ifdef DEFAULT_TARGET_64BIT
++#undef TARGET_VERSION
++#define TARGET_VERSION fprintf (stderr, " (Linux for zSeries)");
++#else
++#undef TARGET_VERSION
++#define TARGET_VERSION fprintf (stderr, " (Linux for S/390)");
++#endif
++
++
++/* Target specific type definitions. */
++
++/* ??? Do we really want long as size_t on 31-bit? */
++#undef SIZE_TYPE
++#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int")
++#undef PTRDIFF_TYPE
++#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
++
++#undef WCHAR_TYPE
++#define WCHAR_TYPE "int"
++#undef WCHAR_TYPE_SIZE
++#define WCHAR_TYPE_SIZE 32
++
++
++/* Target specific preprocessor settings. */
++
++#define TARGET_OS_CPP_BUILTINS() \
++ do \
++ { \
++ LINUX_TARGET_OS_CPP_BUILTINS(); \
++ if (flag_pic) \
++ { \
++ builtin_define ("__PIC__"); \
++ builtin_define ("__pic__"); \
++ } \
++ } \
++ while (0)
++
++
++/* Target specific assembler settings. */
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}"
++
++
++/* Target specific linker settings. */
++
++#ifdef DEFAULT_TARGET_64BIT
++#define MULTILIB_DEFAULTS { "m64" }
++#else
++#define MULTILIB_DEFAULTS { "m31" }
++#endif
++
++#undef LINK_SPEC
++#define LINK_SPEC \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ %{shared:-shared} \
++ %{!shared: \
++ %{static:-static} \
++ %{!static: \
++ %{rdynamic:-export-dynamic} \
++ %{!dynamic-linker: \
++ %{m31:-dynamic-linker /lib/ld.so.1} \
++ %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
++
++#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
++
++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
++
++#define MD_UNWIND_SUPPORT "config/s390/linux-unwind.h"
++
++#ifdef TARGET_LIBC_PROVIDES_SSP
++/* s390 glibc provides __stack_chk_guard in 0x14(tp),
++ s390x glibc provides it at 0x28(tp). */
++#define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14)
++#endif
++
++/* Define if long doubles should be mangled as 'g'. */
++#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
++
++#endif
+diff -Naur gcc-4.1.2.orig/gcc/config/sh/linux.h gcc-4.1.2/gcc/config/sh/linux.h
+--- gcc-4.1.2.orig/gcc/config/sh/linux.h 2005-06-25 01:22:41.000000000 +0000
++++ gcc-4.1.2/gcc/config/sh/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -60,7 +60,7 @@
"%{shared:-shared} \
%{!static: \
%{static:-static}"
/* Output assembler code to STREAM to call the profiler. */
-diff -Naur gcc-4.1.0.orig/gcc/config/sparc/linux.h gcc-4.1.0/gcc/config/sparc/linux.h
---- gcc-4.1.0.orig/gcc/config/sparc/linux.h 2006-02-11 03:38:51.000000000 -0500
-+++ gcc-4.1.0/gcc/config/sparc/linux.h 2006-02-28 22:02:21.000000000 -0500
-@@ -126,13 +126,13 @@
- /* If ELF is the default format, we should not use /lib/elf. */
-
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
- %{!mno-relax:%{!r:-relax}} \
- %{!shared: \
- %{!ibcs: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
-- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
- %{static:-static}}}"
-
- /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
-diff -Naur gcc-4.1.0.orig/gcc/config/sparc/linux64.h gcc-4.1.0/gcc/config/sparc/linux64.h
---- gcc-4.1.0.orig/gcc/config/sparc/linux64.h 2006-02-11 03:38:51.000000000 -0500
-+++ gcc-4.1.0/gcc/config/sparc/linux64.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux64.h gcc-4.1.2/gcc/config/sparc/linux64.h
+--- gcc-4.1.2.orig/gcc/config/sparc/linux64.h 2006-02-11 08:38:51.000000000 +0000
++++ gcc-4.1.2/gcc/config/sparc/linux64.h 2011-09-01 17:11:11.000000000 +0000
@@ -162,21 +162,21 @@
{ "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
{ "link_arch", LINK_ARCH_SPEC },
%{static:-static}}} \
%{mlittle-endian:-EL} \
%{!mno-relax:%{!r:-relax}} \
-diff -Naur gcc-4.1.0.orig/gcc/config/xtensa/linux.h gcc-4.1.0/gcc/config/xtensa/linux.h
---- gcc-4.1.0.orig/gcc/config/xtensa/linux.h 2005-06-24 21:22:41.000000000 -0400
-+++ gcc-4.1.0/gcc/config/xtensa/linux.h 2006-02-28 22:02:21.000000000 -0500
+diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux.h gcc-4.1.2/gcc/config/sparc/linux.h
+--- gcc-4.1.2.orig/gcc/config/sparc/linux.h 2006-02-11 08:38:51.000000000 +0000
++++ gcc-4.1.2/gcc/config/sparc/linux.h 2011-09-01 17:11:11.000000000 +0000
+@@ -126,13 +126,13 @@
+ /* If ELF is the default format, we should not use /lib/elf. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
++ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
+ %{static:-static}}}"
+
+ /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
+diff -Naur gcc-4.1.2.orig/gcc/config/xtensa/linux.h gcc-4.1.2/gcc/config/xtensa/linux.h
+--- gcc-4.1.2.orig/gcc/config/xtensa/linux.h 2005-06-25 01:22:41.000000000 +0000
++++ gcc-4.1.2/gcc/config/xtensa/linux.h 2011-09-01 17:11:11.000000000 +0000
@@ -50,7 +50,7 @@
%{!ibcs: \
%{!static: \