diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
--- gcc-4.2.0.orig/gcc/config/i386/linux64.h	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/i386/linux64.h	2007-05-18 17:04:05.000000000 -0400
@@ -49,8 +49,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"
 
 #undef	LINK_SPEC
 #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
--- gcc-4.2.0.orig/gcc/config/i386/t-linux64	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/i386/t-linux64	2007-05-18 17:04:36.000000000 -0400
@@ -6,7 +6,7 @@
 
 MULTILIB_OPTIONS = m64/m32
 MULTILIB_DIRNAMES = 64 32 
-MULTILIB_OSDIRNAMES = ../lib64 ../lib
+MULTILIB_OSDIRNAMES = ../lib ../lib32
 
 LIBGCC = stmp-multilib
 INSTALL_LIBGCC = install-multilib
diff -Naur gcc-4.2.0.orig/gcc/config/mips/linux64.h gcc-4.2.0/gcc/config/mips/linux64.h
--- gcc-4.2.0.orig/gcc/config/mips/linux64.h	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/mips/linux64.h	2007-05-18 17:04:05.000000000 -0400
@@ -36,10 +36,10 @@
 %{!shared: %{pthread:-lpthread} \
   %{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.2.0.orig/gcc/config/mips/t-linux64 gcc-4.2.0/gcc/config/mips/t-linux64
--- gcc-4.2.0.orig/gcc/config/mips/t-linux64	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/mips/t-linux64	2007-05-18 17:05:40.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.2.0.orig/gcc/config/rs6000/linux64.h gcc-4.2.0/gcc/config/rs6000/linux64.h
--- gcc-4.2.0.orig/gcc/config/rs6000/linux64.h	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/rs6000/linux64.h	2007-05-18 17:04:05.000000000 -0400
@@ -336,8 +336,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.2.0.orig/gcc/config/rs6000/t-linux64 gcc-4.2.0/gcc/config/rs6000/t-linux64
--- gcc-4.2.0.orig/gcc/config/rs6000/t-linux64	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/rs6000/t-linux64	2007-05-18 17:06:22.000000000 -0400
@@ -12,7 +12,7 @@
 MULTILIB_EXTRA_OPTS     = fPIC mstrict-align
 MULTILIB_EXCEPTIONS     = m64/msoft-float
 MULTILIB_EXCLUSIONS     = m64/!m32/msoft-float
-MULTILIB_OSDIRNAMES	= ../lib64 ../lib nof
+MULTILIB_OSDIRNAMES	= ../lib ../lib32 nof
 MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
 
 softfp_wrap_start := '\#ifndef __powerpc64__'
diff -Naur gcc-4.2.0.orig/gcc/config/s390/t-linux64 gcc-4.2.0/gcc/config/s390/t-linux64
--- gcc-4.2.0.orig/gcc/config/s390/t-linux64	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/s390/t-linux64	2007-05-18 17:07:44.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.2.0.orig/gcc/config/sparc/linux64.h gcc-4.2.0/gcc/config/sparc/linux64.h
--- gcc-4.2.0.orig/gcc/config/sparc/linux64.h	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/sparc/linux64.h	2007-05-18 17:04:05.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.2.0.orig/gcc/config/sparc/linux.h gcc-4.2.0/gcc/config/sparc/linux.h
--- gcc-4.2.0.orig/gcc/config/sparc/linux.h	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/sparc/linux.h	2007-05-18 17:04:05.000000000 -0400
@@ -133,7 +133,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.2.0.orig/gcc/config/sparc/t-linux64 gcc-4.2.0/gcc/config/sparc/t-linux64
--- gcc-4.2.0.orig/gcc/config/sparc/t-linux64	2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/sparc/t-linux64	2007-05-18 17:06:53.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`
