--- orig/debian/changelog
+++ mod/debian/changelog
@@ -1,3 +1,22 @@
+gcc-3.4 (3.4.3-7multiarch3) multiarch; urgency=low
+
+  * Build-dep on 3.4-stuff since we want to be sure to have a multiarched
+    gnatgcc, among other things.
+
+ -- Tollef Fog Heen <tfheen@idi.ntnu.no>  Mon, 21 Feb 2005 15:37:40 +0100
+
+gcc-3.4 (3.4.3-7multiarch2) multiarch; urgency=low
+
+  * Add multiarched search paths to default search path.
+
+ -- Tollef Fog Heen <tfheen@idi.ntnu.no>  Mon, 21 Feb 2005 15:05:03 +0100
+
+gcc-3.4 (3.4.3-7multiarch1) multiarch; urgency=low
+
+  * Multiarch build
+
+ -- Tollef Fog Heen <tfheen@debian.org>  Tue,  8 Feb 2005 16:05:33 +0100
+
 gcc-3.4 (3.4.3-7) unstable; urgency=low
 
   * Updated to gcc-3.4 CVS 20050108.

--- orig/debian/control.m4
+++ mod/debian/control.m4
@@ -33,21 +33,21 @@
 ifdef(`TARGET',`dnl cross
 Build-Depends: LIBC_BUILD_DEP, m4, autoconf2.13, autoconf, automake1.4, automake1.7, libtool, autotools-dev, gawk, bzip2, dpkg-cross (>= 1.18.1), BINUTILS_BUILD_DEP, debhelper (>= 4.1), bison (>= 1:1.875a-1) | bison (<< 1:1.50), flex, realpath (>= 1.9.12)`'TARGETBD
 ',`dnl native
-Build-Depends: LIBC_BUILD_DEP, libc6-dev-sparc64 [sparc],
-  libc6-dev-s390x [s390], amd64-libs-dev [i386], ia32-libs-dev
-  [amd64], libunwind7-dev (>= 0.98.3-3) [ia64], libatomic-ops-dev
-  [ia64], m4, autoconf2.13, autoconf, automake1.4, automake1.7,
-  libtool, autotools-dev, gawk, dejagnu (>= 1.4.3) [check_no_archs],
-  expect (>= 5.38.0) [check_no_archs], bzip2, BINUTILS_BUILD_DEP,
-  binutils-hppa64 [hppa], debhelper (>= 4.1), gperf (>= 2.7-3), bison
-  (>= 1:1.875a-1) | bison (<< 1:1.50), flex, gettext, texinfo (>= 4.3),
-  zlib1g-dev, libgc-dev [libgc_no_archs], xlibs-dev, gnat-3.3
-  [ada_no_archs] | gnat-3.4 [ada_no_archs] | gnat [i386 powerpc sparc],
-  libncurses5-dev [pascal_no_archs], libgmp3-dev, tetex-bin
-  [pascal_no_archs], locales [locale_no_archs !hurd-i386], procps
-  [check_no_archs], help2man [pascal_no_archs], sharutils, libgtk2.0-dev
-  (>= 2.4.4-2) [java_no_archs], libart-2.0-dev [java_no_archs], g++-3.3
-  [!amd64], g77-3.3 [!amd64], gobjc-3.3 [!amd64], realpath (>= 1.9.12)
+Build-Depends: LIBC_BUILD_DEP, libc6-dev-sparc64 [sparc],
+  libc6-dev-s390x [s390], amd64-libs-dev [i386], ia32-libs-dev [amd64],
+  libunwind7-dev (>= 0.98.3-3) [ia64], libatomic-ops-dev [ia64], m4,
+  autoconf2.13, autoconf, automake1.4, automake1.7, libtool,
+  autotools-dev, gawk, dejagnu (>= 1.4.3) [check_no_archs], expect (>=
+  5.38.0) [check_no_archs], bzip2, BINUTILS_BUILD_DEP, binutils-hppa64
+  [hppa], debhelper (>= 4.1), gperf (>= 2.7-3), bison (>= 1:1.875a-1)
+  | bison (<< 1:1.50), flex, gettext, texinfo (>= 4.3), zlib1g-dev,
+  libgc-dev [libgc_no_archs], xlibs-dev, gnat-3.4 [ada_no_archs] |
+  gnat-3.4 [ada_no_archs] | gnat [i386 powerpc sparc], libncurses5-dev
+  [pascal_no_archs], libgmp3-dev, tetex-bin [pascal_no_archs], locales
+  [locale_no_archs !hurd-i386], procps [check_no_archs], help2man
+  [pascal_no_archs], sharutils, libgtk2.0-dev (>= 2.4.4-2)
+  [java_no_archs], libart-2.0-dev [java_no_archs], g++-3.4 [!amd64],
+  g77-3.4 [!amd64], gobjc-3.4 [!amd64], realpath (>= 1.9.12)
 Build-Depends-Indep: doxygen (>= 1.3.9.1)
 ')dnl
 

--- orig/debian/patches/multiarch-include.dpatch
+++ mod/debian/patches/multiarch-include.dpatch
@@ -43,15 +43,18 @@
 diff -urN gcc.old/config/i386/t-linux64 gcc/config/i386/t-linux64
 --- gcc.old/config/i386/t-linux64	2002-11-28 15:47:02.000000000 +0100
 +++ gcc/config/i386/t-linux64	2004-07-10 01:44:11.000000000 +0200
-@@ -6,7 +6,7 @@
+@@ -6,7 +6,9 @@
  
  MULTILIB_OPTIONS = m64/m32
  MULTILIB_DIRNAMES = 64 32 
 -MULTILIB_OSDIRNAMES = ../lib64 ../lib
-+MULTILIB_OSDIRNAMES = x86_64-linux i486-linux
++# lib64 is here for backwards compatibility purposes.  
++# MULTILIB_OSDIRNAMES seems to be relative to libdir.  They are ordered.
++MULTILIB_OSDIRNAMES = ../x86_64-linux .
  
  LIBGCC = stmp-multilib
  INSTALL_LIBGCC = install-multilib
+# OLD: x86_64-linux i486-linux ../lib64
 diff -urN gcc.old/config/t-linux gcc/config/t-linux
 --- gcc.old/config/t-linux	2003-09-23 20:55:57.000000000 +0200
 +++ gcc/config/t-linux	2004-07-10 01:48:41.000000000 +0200
@@ -62,7 +65,7 @@
 +
 +MULTILIB_OPTIONS = m32
 +MULTILIB_DIRNAMES = 32
-+MULTILIB_OSDIRNAMES = $TARGET_ARCH
++MULTILIB_OSDIRNAMES = .
 +
 +LIBGCC = stmp-multilib
 +INSTALL_LIBGCC = install-multilib
@@ -105,3 +108,18 @@
  #ifdef STANDARD_INCLUDE_DIR
      /* /usr/include comes dead last.  */
      { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1 },
+--- gcc/gcc.c~	2005-02-21 13:23:22.000000000 +0100
++++ gcc/gcc.c	2005-02-21 14:22:49.985527617 +0100
+@@ -3222,6 +3222,12 @@
+ 		  PREFIX_PRIORITY_LAST, 0, NULL, 0);
+       add_prefix (&startfile_prefixes, gcc_exec_prefix, "GCC",
+ 		  PREFIX_PRIORITY_LAST, 0, NULL, 0);
++      temp = xmalloc(strlen(gcc_exec_prefix) + 1 + strlen(spec_machine) + 1);
++      sprintf(temp,"%s/%s", gcc_exec_prefix, spec_machine);
++
++      add_prefix (&startfile_prefixes, temp, "GCC",
++		  PREFIX_PRIORITY_LAST, 0, NULL, 0);
++      free(temp);
+     }
+ 
+   /* COMPILER_PATH and LIBRARY_PATH have values

--- orig/debian/rules.d/binary-fortran.mk
+++ mod/debian/rules.d/binary-fortran.mk
@@ -51,11 +51,11 @@
 	$(gcc_lib_dir)/include/g2c.h
 
 ifeq ($(with_lib64g2c),yes)
-	dirs_g2c   += $(PF)/$(lib64)
-	files_g2c  += $(PF)/$(lib64)/libg2c.so.*
+	dirs_g2c   += $(PF)/$(lib64dir)
+	files_g2c  += $(PF)/$(lib64dir)/libg2c.so.*
 
-	dirs_g2cd  += $(PF)/$(lib64)
-	files_g2cd += $(PF)/$(lib64)/{libg2c.{a,la,so},libfrtbegin.a}
+	dirs_g2cd  += $(PF)/$(lib64dir)
+	files_g2cd += $(PF)/$(lib64dir)/{libg2c.{a,la,so},libfrtbegin.a}
 endif
 
 # ----------------------------------------------------------------------
@@ -121,10 +121,10 @@
 
 #ifeq ($(biarch),yes)
 #  ifeq ($(DEB_TARGET_GNU_CPU),i386)
-#	mv $(d)/$(PF)/$(lib64)/libg2c.{a,la,so} $(d)/$(gcc_lib_dir)/64
+#	mv $(d)/$(PF)/$(lib64dir)/libg2c.{a,la,so} $(d)/$(gcc_lib_dir)/64
 #	ln -sf ../../../../lib64/libg2c.so.$(F77_SONAME) \
 #		$(d)/$(gcc_lib_dir)/64/libg2c.so
-#	mv $(d)/$(PF)/$(lib64)/libfrtbegin.a $(d)/$(gcc_lib_dir)/64
+#	mv $(d)/$(PF)/$(lib64dir)/libfrtbegin.a $(d)/$(gcc_lib_dir)/64
 #  endif
 #endif
 	rm -rf $(d_g77)


--- orig/debian/rules.d/binary-gcc-cross.mk
+++ mod/debian/rules.d/binary-gcc-cross.mk
@@ -68,9 +68,9 @@
 	rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so
 	ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so
 ifeq ($(biarch),yes)
-	rm -f $(d)/$(PF)/$(lib64)/libgcc_s.so
-	ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(lib64)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s_64.so
-	ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(lib64)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/64/libgcc_s.so
+	rm -f $(d)/$(PF)/$(lib64dir)/libgcc_s.so
+	ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(lib64dir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s_64.so
+	ln -sf /$(PF)/$(DEB_TARGET_GNU_TYPE)/$(lib64dir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/64/libgcc_s.so
 endif
 
 	DH_COMPAT=2 dh_movefiles -p$(p_gcc) $(files_gcc)


--- orig/debian/rules.d/binary-gcc.mk
+++ mod/debian/rules.d/binary-gcc.mk
@@ -78,10 +78,10 @@
 
 	rm -f $(d)/$(PF)/$(libdir)/libgcc_s.so
 	ln -sf /$(libdir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s.so
-ifeq ($(biarch),yes)
-	rm -f $(d)/$(PF)/$(lib64)/libgcc_s.so
-	ln -sf /$(lib64)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s_64.so
-	ln -sf /$(lib64)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/64/libgcc_s.so
+ifneq (,$(findstring(yes, $(biarch) $(multiarch))))
+	rm -f $(d)/$(PF)/$(lib64dir)/libgcc_s.so
+	ln -sf /$(lib64dir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/libgcc_s_64.so
+	ln -sf /$(lib64dir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(gcc_lib_dir)/64/libgcc_s.so
 endif
 ifeq ($(biarch_ia32),yes)
 	mkdir -p $(d_gcc)/$(gcc_lib_dir)


--- orig/debian/rules.d/binary-java.mk
+++ mod/debian/rules.d/binary-java.mk
@@ -100,17 +100,17 @@
 	$(PF)/$(libdir)/lib-org-*.so
 
 ifeq ($(with_lib64gcj),yes)
-	dirs_jlib    +=	$(PF)/$(lib64)
-	files_jlib   +=	$(PF)/$(lib64)/libgcj*.so.* \
-			$(PF)/$(lib64)/lib-org-*.so.*
-
-	dirs_jlibx   +=	$(PF)/$(lib64)
-	files_jlibx  +=	$(PF)/$(lib64)/lib-gnu-java-awt-*.so.*
-
-	dirs_jdev    += $(PF)/$(lib64)
-	files_jdev   += $(PF)/$(lib64)/libgcj*.{a,so,la} \
-			$(PF)/$(lib64)/lib-gnu-*.{a,so,la} \
-			$(PF)/$(lib64)/lib-org-*.{a,so,la}
+	dirs_jlib    +=	$(PF)/$(lib64dir)
+	files_jlib   +=	$(PF)/$(lib64dir)/libgcj*.so.* \
+			$(PF)/$(lib64dir)/lib-org-*.so.*
+
+	dirs_jlibx   +=	$(PF)/$(lib64dir)
+	files_jlibx  +=	$(PF)/$(lib64dir)/lib-gnu-java-awt-*.so.*
+
+	dirs_jdev    += $(PF)/$(lib64dir)
+	files_jdev   += $(PF)/$(lib64dir)/libgcj*.{a,so,la} \
+			$(PF)/$(lib64dir)/lib-gnu-*.{a,so,la} \
+			$(PF)/$(lib64dir)/lib-org-*.{a,so,la}
 endif
 
 # ----------------------------------------------------------------------


--- orig/debian/rules.d/binary-libffi.mk
+++ mod/debian/rules.d/binary-libffi.mk
@@ -22,10 +22,10 @@
 	$(PF)/$(libdir)/libffi.{a,so,la}
 
 ifeq ($(with_lib64ffi),yes)
-	dirs_ffi   += $(PF)/$(lib64)
-	files_ffi  += $(PF)/$(lib64)/libffi.so.*
-	dirs_ffid  += $(PF)/$(lib64)
-	files_ffid += $(PF)/$(lib64)/libffi.{a,so,la}
+	dirs_ffi   += $(PF)/$(lib64dir)
+	files_ffi  += $(PF)/$(lib64dir)/libffi.so.*
+	dirs_ffid  += $(PF)/$(lib64dir)
+	files_ffid += $(PF)/$(lib64dir)/libffi.{a,so,la}
 endif
 
 $(binary_stamp)-libffi: $(install_stamp)


--- orig/debian/rules.d/binary-libgcc-cross.mk
+++ mod/debian/rules.d/binary-libgcc-cross.mk
@@ -17,9 +17,9 @@
 
 ifeq ($(with_shared_libgcc),yes)
 files_lgcc = \
-	$(PF)/$(DEB_TARGET_GNU_TYPE)/lib/libgcc_s.so.$(GCC_SONAME)
+	$(PF)/lib/$(DEB_TARGET_GNU_TYPE)/libgcc_s.so.$(GCC_SONAME)
 files_l64gcc = \
-	$(PF)/$(DEB_TARGET_GNU_TYPE)/lib64/libgcc_s.so.$(GCC_SONAME)
+	$(PF)/lib/$(DEB_TARGET_GNU_TYPE)/libgcc_s.so.$(GCC_SONAME)
 endif
 
 # ----------------------------------------------------------------------
@@ -91,7 +91,7 @@
 	rm -rf $(d_l64gcc)
 	dh_installdirs -p$(p_l64gcc) \
 		$(docdir)/$(p_l64gcc) \
-		$(PF)/$(DEB_TARGET_GNU_TYPE)/lib64
+		$(PF)/lib/$(DEB_TARGET_GNU_TYPE)
 
 ifeq ($(with_shared_libgcc),yes)
 	DH_COMPAT=2 dh_movefiles -p$(p_l64gcc) $(files_l64gcc)
@@ -137,7 +137,7 @@
 	rm -rf $(d_l32gcc)
 	dh_installdirs -p$(p_l32gcc) \
 		$(docdir)/$(p_l32gcc) \
-		$(PF)/$(DEB_TARGET_GNU_TYPE)/lib32
+		$(PF)/lib/$(DEB_TARGET_GNU_TYPE)
 
 ifeq ($(with_shared_libgcc),yes)
 	DH_COMPAT=2 dh_movefiles -p$(p_l32gcc) $(files_l32gcc)


--- orig/debian/rules.d/binary-libgcc.mk
+++ mod/debian/rules.d/binary-libgcc.mk
@@ -19,7 +19,7 @@
 files_lgcc = \
 	$(libdir)/libgcc_s.so.$(GCC_SONAME)
 files_l64gcc = \
-	lib64/libgcc_s.so.$(GCC_SONAME)
+	$(lib64dir)/libgcc_s.so.$(GCC_SONAME)
 endif
 
 # ----------------------------------------------------------------------
@@ -38,7 +38,7 @@
 		$(libdir)
 
 ifeq ($(with_shared_libgcc),yes)
-	mv $(d)/$(PF)/lib/libgcc_s.so.$(GCC_SONAME) $(d)/$(libdir)/.
+	mv $(d)/$(PF)/lib/$(DEB_BUILD_GNU_TYPE)/libgcc_s.so.$(GCC_SONAME) $(d)/$(libdir)/
 	DH_COMPAT=2 dh_movefiles -p$(p_lgcc) $(files_lgcc)
 endif
 
@@ -79,15 +79,14 @@
 	dh_testdir
 	dh_testroot
 	mv $(install_stamp) $(install_stamp)-tmp
-
 	rm -rf $(d_l64gcc)
 	dh_installdirs -p$(p_l64gcc) \
 		$(docdir)/$(p_l64gcc) \
-		lib64
+		$(lib64dir)
 
 ifeq ($(with_shared_libgcc),yes)
-	install -d $(d)/lib64
-	mv $(d)/$(PF)/lib64/libgcc_s.so.$(GCC_SONAME) $(d)/lib64/.
+	install -d $(d)/$(lib64dir)
+	mv $(d)/$(PF)/$(lib64dir)/libgcc_s.so.$(GCC_SONAME) $(d)/$(lib64dir)/.
 endif
 	DH_COMPAT=2 dh_movefiles -p$(p_l64gcc) $(files_l64gcc)
 


--- orig/debian/rules.d/binary-libobjc.mk
+++ mod/debian/rules.d/binary-libobjc.mk
@@ -16,10 +16,10 @@
 endif
 
 ifeq ($(with_lib64objc),yes)
-	dirs_lobjc   +=	$(PF)/$(lib64)
-	files_lobjc  +=	$(PF)/$(lib64)/libobjc.so.*
+	dirs_lobjc   +=	$(PF)/$(lib64dir)
+	files_lobjc  +=	$(PF)/$(lib64dir)/libobjc.so.*
   ifeq ($(with_objc_gc),yes)
-	files_lobjc  +=	$(PF)/$(lib64)/libobjc_gc.so.*
+	files_lobjc  +=	$(PF)/$(lib64dir)/libobjc_gc.so.*
   endif
 endif
 


--- orig/debian/rules.d/binary-libstdcxx.mk
+++ mod/debian/rules.d/binary-libstdcxx.mk
@@ -45,13 +45,13 @@
 
 dirs_lib64 = \
 	$(docdir) \
-	$(PF)/lib64
+	$(PF)/$(lib64dir)
 
 files_lib = \
 	$(PF)/$(libdir)/libstdc++.so.*
 
 files_lib64 = \
-	$(PF)/lib64/libstdc++.so.*
+	$(PF)/$(lib64dir)/libstdc++.so.*
 
 dirs_dev = \
 	$(docdir)/$(p_base)/C++ \
@@ -83,8 +83,8 @@
     dirs_dev += $(gcc_lib_dir)/64/
     files_dev += $(gcc_lib_dir)/64/libstdc++.{a,so} \
         $(gcc_lib_dir)/64/libsupc++.a
-    dirs_dbg += $(PF)/lib64/debug
-    files_dbg += $(PF)/lib64/debug/libstdc++.*
+    dirs_dbg += $(PF)/$(lib64dir)/debug
+    files_dbg += $(PF)/$(lib64dir)/debug/libstdc++.*
     dirs_pic += $(gcc_lib_dir)
     files_pic += $(gcc_lib_dir)/64/libstdc++_pic.a
 endif
@@ -284,13 +284,13 @@
 	mv $(d)/$(PF)/$(libdir)/libstdc++_pic.a $(d)/$(gcc_lib_dir)/
 
 	rm -f $(d)/$(PF)/$(libdir)/debug/libstdc++_pic.a
-	rm -f $(d)/$(PF)/lib64/debug/libstdc++_pic.a
+	rm -f $(d)/$(PF)/$(lib64dir)/debug/libstdc++_pic.a
 
 	: # remove precompiled headers
 	-find $(d) -type d -name '*.gch' | xargs rm -rf
 
 ifeq ($(with_lib64cxx),yes)
-	mv $(d)/$(PF)/lib64/lib*c++*.{a,so} $(d)/$(gcc_lib_dir)/64/.
+	mv $(d)/$(PF)/$(lib64dir)/lib*c++*.{a,so} $(d)/$(gcc_lib_dir)/64/.
 endif
 ifeq ($(biarch_ia32),yes)
 	mv $(d)/$(PF)/lib32/lib*c++*.{a,so} $(d)/$(gcc_lib_dir)/32/.
@@ -305,7 +305,7 @@
 		/$(gcc_lib_dir)/libstdc++.so
 ifeq ($(with_lib64cxx),yes)
 	dh_link -p$(p_dev) \
-		/$(PF)/lib64/libstdc++.so.$(CXX_SONAME) \
+		/$(PF)/$(lib64dir)/libstdc++.so.$(CXX_SONAME) \
 		/$(gcc_lib_dir)/64/libstdc++.so
 endif
 ifeq ($(biarch_ia32),yes)
@@ -339,7 +339,7 @@
 	dh_compress -p$(p_dev) -p$(p_pic) -p$(p_dbg) -X.txt
 	dh_fixperms -p$(p_dev) -p$(p_pic) -p$(p_dbg)
 ifeq ($(with_lib64cxx),yes)
-	dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg) -Xlib64
+	dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg) -X$(lib64dir)
 else
 	dh_shlibdeps -p$(p_dev) -p$(p_pic) -p$(p_dbg) -Xlib32/debug
 endif


--- orig/debian/rules.defs
+++ mod/debian/rules.defs
@@ -8,8 +8,6 @@
 builddir_hppa64	= $(PWD)/build-hppa64
 stampdir	= stamps
 
-lib64		= lib64
-
 # version of default gcc compiler (e.g. 3.3 or 3.4)
 BUILD_CC_VERSION:= $(shell gcc -dumpversion | sed 's/\([0-9]*\.[0-9]*\)\(.*\)/\1/')
 
@@ -142,7 +140,7 @@
 #endif
 
 # multiarch --------------------
-with_multiarch := no
+with_multiarch := yes
 
 # "old" arm ABI (with 3.5, we get a new one) --------------------
 ifeq ($(DEB_TARGET_GNU_CPU),arm)
@@ -493,8 +491,8 @@
 endif
 
 # Shared libgcc --------------------
-with_libgcc := yes
-with_shared_libgcc := yes
+with_libgcc := no
+with_shared_libgcc := no
 
 #ifeq ($(with_common_libs),yes)
 #  with_libgcc := yes


--- orig/debian/rules2
+++ mod/debian/rules2
@@ -37,8 +37,9 @@
 # the recipient for the test summaries. Send with: debian/rules mail-summary
 S_EMAIL = gcc@packages.debian.org gcc-testresults@gcc.gnu.org
 
-CPPFLAGS	=
+CPPFLAGS	= 
 CFLAGS		= -g -O2 $(CPPFLAGS)
+#CFLAGS		+= -DSTANDARD_INCLUDE_DIR=\"/usr/include/i386-linux\"
 LDFLAGS		=
 BOOT_CFLAGS	= -O2 $(CPPFLAGS)
 ifeq ($(with_ada),yes)
@@ -63,9 +64,16 @@
 
 ifeq ($(with_multiarch),yes)
   libdir	= lib/$(DEB_TARGET_GNU_TYPE)
+  ifeq ($(DEB_TARGET_GNU_TYPE),i386-linux)
+	lib64dir = lib/x86_64-linux
+  else
+	lib64dir = lib64
+  endif
 else
   libdir	= lib
+  lib64dir = lib64
 endif
+
 # /usr/libexec doesn't follow the FHS
 libexecdir	= $(PF)/$(libdir)
 buildlibdir	= $(builddir)/$(TARGET_ALIAS)
@@ -73,15 +81,21 @@
 gcc_lexec_dir	= $(libexecdir)/gcc/$(TARGET_ALIAS)/$(VER)
 
 ifndef DEB_CROSS
-  cxx_inc_dir	= $(PF)/include/c++/$(BASE_VERSION)
+  ifeq ($(with_multiarch),yes)
+    cxx_inc_dir	= $(PF)/include/$(DEB_TARGET_GNU_TYPE)/c++/$(BASE_VERSION)
+  else
+    cxx_inc_dir	= $(PF)/include/c++/$(BASE_VERSION)
+  endif
 else
   cxx_inc_dir	= $(PF)/$(TARGET_ALIAS)/include/c++/$(BASE_VERSION)
 endif
 
+
 CONFARGS = -v \
 	--enable-languages=$(shell echo $(enabled_languages) | tr -s ' ' ',') \
 	--prefix=/$(PF) \
 	--libexecdir=/$(libexecdir) \
+	--libdir=/$(PF)/$(libdir) \
 	--with-gxx-include-dir=/$(cxx_inc_dir) \
 	--enable-shared \
 	--with-system-zlib \
@@ -176,7 +190,10 @@
   bootstrap_target = bootstrap-lean
 endif
 
-bootstrap_target = bootstrap-lean
+# Work around bug where bootstrap-lean causes stage2/ to disappear
+# before "Building runtime libraries"
+
+bootstrap_target = bootstrap
 
 # Increase the timeout for one testrun on slow architectures
 ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),arm hppa m68k))
@@ -983,6 +1000,14 @@
 	ln -s lib $(d)/usr/lib64
 endif
 
+ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),i386))
+	mkdir -p $(d)/usr/lib $(d)/lib
+	ln -s i386-linux $(d)/usr/lib/i486-linux
+	ln -s i386-linux $(d)/lib/i486-linux
+#	mkdir -p $(d)/usr/lib/i386-linux/ $(d)/usr/lib/x86_64-linux
+#	ln -s ../x86_64-linux $(d)/usr/lib/i486-linux/x86_64-linux
+endif
+
 	: # Install everything
 	PATH=$(PWD)/bin:$$PATH \
 	  $(MAKE) -C $(builddir) \



