Submitted By: Robert Connolly (ashes) Date: 2007-02-14 Initial Package Version: 4.1.2 Upstream Status: Not Sent - LFS Specfic 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. Rediffed against gcc 4.0.0 by Robert Connolly. Rediffed against gcc 4.1.0 by Chris Staub Rediffed against gcc 4.1.2 by Jim Gifford 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.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-24 18:22:41.000000000 -0700 +++ gcc-4.1.2/gcc/config/alpha/linux-elf.h 2007-02-14 07:51:38.000000000 -0800 @@ -27,7 +27,7 @@ #define SUBTARGET_EXTRA_SPECS \ { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, -#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" +#define ELF_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ %{O*:-O3} %{!O*:-O1} \ 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-09 18:04:31.000000000 -0700 +++ gcc-4.1.2/gcc/config/arm/linux-elf.h 2007-02-14 07:51:38.000000000 -0800 @@ -51,7 +51,7 @@ #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2" +#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.2" #define LINUX_TARGET_LINK_SPEC "%{h*} %{version:-v} \ %{b} \ 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-24 18:22:41.000000000 -0700 +++ gcc-4.1.2/gcc/config/frv/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -41,7 +41,7 @@ %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \ %{!shared: %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ + %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ %{static}}" /* Support for compile-time default CPU. */ 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-07 17:17:19.000000000 -0700 +++ gcc-4.1.2/gcc/config/i386/gnu.h 2007-02-14 07:51:38.000000000 -0800 @@ -27,7 +27,7 @@ %{!shared: \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \ + %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \ %{static:-static}}" #undef STARTFILE_SPEC 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 10:53:01.000000000 -0700 +++ gcc-4.1.2/gcc/config/i386/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -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/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 10:53:01.000000000 -0700 +++ gcc-4.1.2/gcc/config/i386/linux64.h 2007-02-14 07:51:38.000000000 -0800 @@ -60,8 +60,8 @@ %{!shared: \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ - %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ + %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib32/ld-linux.so.2}} \ + %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-x86-64.so.2}}} \ %{static:-static}}" /* Similar to standard Linux, but adding -ffast-math support. */ 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 07:24:07.000000000 -0800 +++ gcc-4.1.2/gcc/config/ia64/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -43,7 +43,7 @@ %{!shared: \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ + %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \ %{static:-static}}" #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" 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 06:26:35.000000000 -0700 +++ gcc-4.1.2/gcc/config/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -104,3 +104,7 @@ #define TARGET_C99_FUNCTIONS 1 #define TARGET_POSIX_IO + +/* 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.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 03:00:15.000000000 -0700 +++ gcc-4.1.2/gcc/config/m32r/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -66,7 +66,7 @@ %{!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}}}" #else #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \ @@ -74,7 +74,7 @@ %{!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}}}" #endif 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-24 18:22:41.000000000 -0700 +++ gcc-4.1.2/gcc/config/m68k/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -128,7 +128,7 @@ %{!shared: \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ + %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \ %{static}}" /* For compatibility with linux/a.out */ 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 05:57:31.000000000 -0800 +++ gcc-4.1.2/gcc/config/mips/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -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/mips/linux64.h gcc-4.1.2/gcc/config/mips/linux64.h --- gcc-4.1.2.orig/gcc/config/mips/linux64.h 2005-06-24 18:22:41.000000000 -0700 +++ gcc-4.1.2/gcc/config/mips/linux64.h 2007-02-14 07:51:38.000000000 -0800 @@ -47,9 +47,9 @@ %{!static: \ %{rdynamic:-export-dynamic} \ %{!dynamic-linker: \ - %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \ - %{mabi=64: -dynamic-linker /lib64/ld.so.1} \ - %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \ + %{mabi=n32: -dynamic-linker /tools/lib64/ld.so.1} \ + %{mabi=64: -dynamic-linker /tools/lib/ld.so.1} \ + %{mabi=32: -dynamic-linker /tools/lib32/ld.so.1}}} \ %{static:-static}}} \ %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \ %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \ 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-24 18:22:41.000000000 -0700 +++ gcc-4.1.2/gcc/config/mn10300/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -37,7 +37,7 @@ #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ + %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ %{static:-static}" #undef PROCESSOR_DEFAULT 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-11 18:23:38.000000000 -0800 +++ gcc-4.1.2/gcc/config/pa/pa-linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -55,7 +55,7 @@ %{!shared: \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ + %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ %{static:-static}}" /* glibc's profiling functions don't need gcc to allocate counters. */ 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 12:58:33.000000000 -0800 +++ gcc-4.1.2/gcc/config/rs6000/linux64.h 2007-02-14 07:51:38.000000000 -0800 @@ -339,11 +339,11 @@ #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" + %{!dynamic-linker:-dynamic-linker /tools/lib32/ld.so.1}}}" #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}" + %{!dynamic-linker:-dynamic-linker /tools/lib/ld64.so.1}}}" #undef TOC_SECTION_ASM_OP #define TOC_SECTION_ASM_OP \ 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 12:58:33.000000000 -0800 +++ gcc-4.1.2/gcc/config/rs6000/sysv4.h 2007-02-14 07:51:38.000000000 -0800 @@ -1041,7 +1041,7 @@ #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" + %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" #if defined(HAVE_LD_EH_FRAME_HDR) # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " @@ -1072,7 +1072,7 @@ #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" + %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__ \ %{!undef: \ 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 07:24:07.000000000 -0800 +++ gcc-4.1.2/gcc/config/s390/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -86,8 +86,8 @@ %{!static: \ %{rdynamic:-export-dynamic} \ %{!dynamic-linker: \ - %{m31:-dynamic-linker /lib/ld.so.1} \ - %{m64:-dynamic-linker /lib/ld64.so.1}}}}" + %{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}" 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-24 18:22:41.000000000 -0700 +++ gcc-4.1.2/gcc/config/sh/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -60,7 +60,7 @@ "%{shared:-shared} \ %{!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}" /* Output assembler code to STREAM to call the profiler. */ 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 00:38:51.000000000 -0800 +++ gcc-4.1.2/gcc/config/sparc/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -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/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 00:38:51.000000000 -0800 +++ gcc-4.1.2/gcc/config/sparc/linux64.h 2007-02-14 07:51:38.000000000 -0800 @@ -162,21 +162,21 @@ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ { "link_arch", LINK_ARCH_SPEC }, -#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ +#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib32 %{shared:-shared} \ %{!shared: \ %{!ibcs: \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ + %{!dynamic-linker:-dynamic-linker /tools/lib32/ld-linux.so.2}} \ %{static:-static}}} \ " -#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ +#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib %{shared:-shared} \ %{!shared: \ %{!ibcs: \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ + %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ %{static:-static}}} \ " @@ -252,12 +252,12 @@ #else /* !SPARC_BI_ARCH */ #undef LINK_SPEC -#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ +#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib %{shared:-shared} \ %{!shared: \ %{!ibcs: \ %{!static: \ %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ + %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ %{static:-static}}} \ %{mlittle-endian:-EL} \ %{!mno-relax:%{!r:-relax}} \ 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-24 18:22:41.000000000 -0700 +++ gcc-4.1.2/gcc/config/xtensa/linux.h 2007-02-14 07:51:38.000000000 -0800 @@ -50,7 +50,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 LOCAL_LABEL_PREFIX diff -Naur gcc-4.1.2.orig/gcc/gcc.c gcc-4.1.2/gcc/gcc.c --- gcc-4.1.2.orig/gcc/gcc.c 2006-11-07 06:26:21.000000000 -0800 +++ gcc-4.1.2/gcc/gcc.c 2007-02-14 07:48:55.000000000 -0800 @@ -3821,16 +3821,22 @@ PREFIX_PRIORITY_LAST, 2, 0); add_prefix (&exec_prefixes, standard_exec_prefix, "BINUTILS", PREFIX_PRIORITY_LAST, 2, 0); - add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS", + if (*cross_compile == '0') + { + add_prefix (&exec_prefixes, standard_exec_prefix_1, "BINUTILS", PREFIX_PRIORITY_LAST, 2, 0); - add_prefix (&exec_prefixes, standard_exec_prefix_2, "BINUTILS", + add_prefix (&exec_prefixes, standard_exec_prefix_2, "BINUTILS", PREFIX_PRIORITY_LAST, 2, 0); + } #endif add_prefix (&startfile_prefixes, standard_exec_prefix, "BINUTILS", PREFIX_PRIORITY_LAST, 1, 0); - add_prefix (&startfile_prefixes, standard_exec_prefix_2, "BINUTILS", + if (*cross_compile == '0') + { + add_prefix (&startfile_prefixes, standard_exec_prefix_2, "BINUTILS", PREFIX_PRIORITY_LAST, 1, 0); + } tooldir_prefix = concat (tooldir_base_prefix, spec_machine, dir_separator_str, NULL);