Index: patches/gcc-4.3.1-pure64-1.patch
===================================================================
--- patches/gcc-4.3.1-pure64-1.patch	(revision 6a043e279f2dbfb10307511d27ce291429d7459f)
+++ patches/gcc-4.3.1-pure64-1.patch	(revision 6a043e279f2dbfb10307511d27ce291429d7459f)
@@ -0,0 +1,162 @@
+diff -Naur gcc-4.3.1.orig/gcc/config/i386/linux64.h gcc-4.3.1/gcc/config/i386/linux64.h
+--- gcc-4.3.1.orig/gcc/config/i386/linux64.h	2007-08-02 06:49:31.000000000 -0400
++++ gcc-4.3.1/gcc/config/i386/linux64.h	2008-08-24 13:43:19.000000000 -0400
+@@ -53,8 +53,8 @@
+    When the -shared link option is used a final link is not being
+    done.  */
+ 
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+ 
+ #if TARGET_64BIT_DEFAULT
+ #define SPEC_32 "m32"
+diff -Naur gcc-4.3.1.orig/gcc/config/i386/t-linux64 gcc-4.3.1/gcc/config/i386/t-linux64
+--- gcc-4.3.1.orig/gcc/config/i386/t-linux64	2007-09-27 15:56:06.000000000 -0400
++++ gcc-4.3.1/gcc/config/i386/t-linux64	2008-08-24 13:43:19.000000000 -0400
+@@ -13,7 +13,7 @@
+ 
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32 
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
+ 
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
+diff -Naur gcc-4.3.1.orig/gcc/config/mips/linux64.h gcc-4.3.1/gcc/config/mips/linux64.h
+--- gcc-4.3.1.orig/gcc/config/mips/linux64.h	2007-08-02 06:49:31.000000000 -0400
++++ gcc-4.3.1/gcc/config/mips/linux64.h	2008-08-24 13:43:19.000000000 -0400
+@@ -38,10 +38,10 @@
+ %{!shared: \
+   %{profile:-lc_p} %{!profile:-lc}}"
+ 
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1"
+-#define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
+-#define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld.so.1"
++#define GLIBC_DYNAMIC_LINKERN32 "/lib64/ld.so.1"
++#define UCLIBC_DYNAMIC_LINKERN32 "/lib64/ld-uClibc.so.0"
+ #define LINUX_DYNAMIC_LINKERN32 \
+   CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
+ 
+diff -Naur gcc-4.3.1.orig/gcc/config/mips/t-linux64 gcc-4.3.1/gcc/config/mips/t-linux64
+--- gcc-4.3.1.orig/gcc/config/mips/t-linux64	2006-06-06 08:51:24.000000000 -0400
++++ gcc-4.3.1/gcc/config/mips/t-linux64	2008-08-24 13:43:19.000000000 -0400
+@@ -1,6 +1,6 @@
+ MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+ MULTILIB_DIRNAMES = n32 32 64
+-MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
++MULTILIB_OSDIRNAMES = ../lib64 ../lib32 ../lib
+ 
+ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
+ 
+diff -Naur gcc-4.3.1.orig/gcc/config/rs6000/linux64.h gcc-4.3.1/gcc/config/rs6000/linux64.h
+--- gcc-4.3.1.orig/gcc/config/rs6000/linux64.h	2007-08-02 06:49:31.000000000 -0400
++++ gcc-4.3.1/gcc/config/rs6000/linux64.h	2008-08-24 13:43:19.000000000 -0400
+@@ -339,8 +339,8 @@
+ #undef	LINK_OS_DEFAULT_SPEC
+ #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
+ 
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld.so.1"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
+ #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
+ #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
+ #if UCLIBC_DEFAULT
+diff -Naur gcc-4.3.1.orig/gcc/config/rs6000/t-linux64 gcc-4.3.1/gcc/config/rs6000/t-linux64
+--- gcc-4.3.1.orig/gcc/config/rs6000/t-linux64	2007-09-27 15:56:06.000000000 -0400
++++ gcc-4.3.1/gcc/config/rs6000/t-linux64	2008-08-24 13:43:19.000000000 -0400
+@@ -19,7 +19,7 @@
+ MULTILIB_EXTRA_OPTS     = fPIC mstrict-align
+ MULTILIB_EXCEPTIONS     = m64/msoft-float
+ MULTILIB_EXCLUSIONS     = m64/!m32/msoft-float
+-MULTILIB_OSDIRNAMES	= ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
++MULTILIB_OSDIRNAMES	= ../lib $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
+ MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
+ 
+ softfp_wrap_start := '\#ifndef __powerpc64__'
+diff -Naur gcc-4.3.1.orig/gcc/config/s390/t-linux64 gcc-4.3.1/gcc/config/s390/t-linux64
+--- gcc-4.3.1.orig/gcc/config/s390/t-linux64	2006-02-06 12:41:54.000000000 -0500
++++ gcc-4.3.1/gcc/config/s390/t-linux64	2008-08-24 13:43:19.000000000 -0400
+@@ -1,6 +1,6 @@
+ MULTILIB_OPTIONS = m64/m31
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 ../lib
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+ 
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
+diff -Naur gcc-4.3.1.orig/gcc/config/sparc/linux64.h gcc-4.3.1/gcc/config/sparc/linux64.h
+--- gcc-4.3.1.orig/gcc/config/sparc/linux64.h	2007-10-19 00:29:38.000000000 -0400
++++ gcc-4.3.1/gcc/config/sparc/linux64.h	2008-08-24 13:43:19.000000000 -0400
+@@ -144,8 +144,8 @@
+ 
+ /* If ELF is the default format, we should not use /lib/elf.  */
+ 
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux.so.2"
+ #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
+ #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
+ #if UCLIBC_DEFAULT
+@@ -167,7 +167,7 @@
+   { "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,/usr/lib32 %{shared:-shared} \
+   %{!shared: \
+     %{!ibcs: \
+       %{!static: \
+@@ -176,7 +176,7 @@
+         %{static:-static}}} \
+ "
+ 
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib %{shared:-shared} \
+   %{!shared: \
+     %{!ibcs: \
+       %{!static: \
+@@ -257,7 +257,7 @@
+ #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,/usr/lib %{shared:-shared} \
+   %{!shared: \
+     %{!ibcs: \
+       %{!static: \
+diff -Naur gcc-4.3.1.orig/gcc/config/sparc/linux.h gcc-4.3.1/gcc/config/sparc/linux.h
+--- gcc-4.3.1.orig/gcc/config/sparc/linux.h	2007-08-02 06:49:31.000000000 -0400
++++ gcc-4.3.1/gcc/config/sparc/linux.h	2008-08-24 13:43:19.000000000 -0400
+@@ -132,7 +132,7 @@
+ 
+ 
+ #undef  LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib32 %{shared:-shared} \
+   %{!mno-relax:%{!r:-relax}} \
+   %{!shared: \
+     %{!ibcs: \
+diff -Naur gcc-4.3.1.orig/gcc/config/sparc/t-linux64 gcc-4.3.1/gcc/config/sparc/t-linux64
+--- gcc-4.3.1.orig/gcc/config/sparc/t-linux64	2006-02-08 02:19:43.000000000 -0500
++++ gcc-4.3.1/gcc/config/sparc/t-linux64	2008-08-24 13:43:19.000000000 -0400
+@@ -1,6 +1,6 @@
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 ../lib
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+ 
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
+@@ -10,4 +10,4 @@
+ 
+ CRTSTUFF_T_CFLAGS = `if test x$$($(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) \
+ 				 -print-multi-os-directory) \
+-			= x../lib64; then echo -mcmodel=medany; fi`
++			= x../lib; then echo -mcmodel=medany; fi`
