[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

multiarch support for gcc-4.4



Hi guys,

Attached is a backport to gcc-4.4 of all my multiarch changes to date for
gcc-4.5.

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: steve.langasek@linaro.org-20110317080930-\
#   w1x4iozcu4a86okt
# target_branch: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-\
#   4.4
# testament_sha1: 0e2cfcd8f7daa9f2f06ef081267b0ccc5d9dad1e
# timestamp: 2011-03-17 01:09:47 -0700
# base_revision_id: svn-v4:6ca36cf4-e1d1-0310-8c6f-\
#   e303bb2178ca:branches/sid/gcc-4.4:5107
# 
# Begin patch
=== modified file 'debian/changelog'
--- debian/changelog	2011-03-13 22:21:44 +0000
+++ debian/changelog	2011-03-17 08:09:30 +0000
@@ -1,3 +1,34 @@
+gcc-4.4 (4.4.5-15) UNRELEASED; urgency=low
+
+  * Backport multiarch support from gcc-4.5.
+  * debian/control.m4: add missing Multi-Arch: same for libgcc4; make sure
+    Multi-Arch: same doesn't get set for libmudflap when building an
+    Architecture: all cross-compiler package.
+  * debian/rules2: use $libdir for libiberty.a.
+  * debian/rules2: the spu build is not a multiarch build; look in the 
+    correct directory.
+  * debian/rules.d/binary-java.mk: jvm-exports path is /usr/lib/jvm-exports,
+    not $(libdir)/jvm-exports. OTOH, libgcj_bc *is* in $(libdir).
+  * debian/patches/gcc-multiarch-*.diff: make sure we're using the same
+    set_multiarch_path definition for all variants.
+  * debian/control.m4: Make sure our libs Pre-Depend on
+    'multiarch-support' when building for multiarch.
+  * debian/patches/gcc-multiarch*, debian/rules.patch: use i386 in the
+    multiarch path for amd64 / kfreebsd-amd64, not i486 or i686.  This lets
+    us use a common set of paths on both Debian and Ubuntu, regardless of
+    the target default optimization level.
+  * debian/rules.conf: when building for multiarch, we require a
+    libc-dev that supports the corresponding paths.
+  * debian/rules.conf: Make dpkg-dev versioned build-dependency
+    conditional on whether we want to build for multiarch.
+  * Add a new patch, gcc-multiarch+biarch.diff, used only when building for
+    multiarch to set our multilib paths to the correct relative directories.
+  * debian/rules.defs: support turning on multiarch build by distribution.
+  * debian/rules2: When DEB_HOST_MULTIARCH is available, use it as our
+    multiarch path.
+
+ -- Steve Langasek <vorlon@debian.org>  Thu, 17 Mar 2011 01:07:37 -0700
+
 gcc-4.4 (4.4.5-14) unstable; urgency=low
 
   * Update to SVN 20110313 from the gcc-4_4-branch (r170916).

=== modified file 'debian/control.m4'
--- debian/control.m4	2011-03-13 22:21:44 +0000
+++ debian/control.m4	2011-03-17 08:09:30 +0000
@@ -46,9 +46,9 @@
 ')dnl SRCNAME
 Standards-Version: 3.9.1
 ifdef(`TARGET',`dnl cross
-Build-Depends: dpkg-dev (>= 1.14.15), debhelper (>= 5.0.62), dpkg-cross (>= 1.25.99), LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP LIBUNWIND_BUILD_DEP LIBATOMIC_OPS_BUILD_DEP AUTOGEN_BUILD_DEP CLOOG_BUILD_DEP AUTO_BUILD_DEP SOURCE_BUILD_DEP CROSS_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP zlib1g-dev, gawk, lzma, xz-utils, patchutils, BINUTILS_BUILD_DEP, bison (>= 1:2.3), flex, realpath (>= 1.9.12), lsb-release, make (>= 3.81), quilt
+Build-Depends: DPKG_BUILD_DEP debhelper (>= 5.0.62), dpkg-cross (>= 1.25.99), LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP LIBUNWIND_BUILD_DEP LIBATOMIC_OPS_BUILD_DEP AUTOGEN_BUILD_DEP CLOOG_BUILD_DEP AUTO_BUILD_DEP SOURCE_BUILD_DEP CROSS_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP zlib1g-dev, gawk, lzma, xz-utils, patchutils, BINUTILS_BUILD_DEP, bison (>= 1:2.3), flex, realpath (>= 1.9.12), lsb-release, make (>= 3.81), quilt
 ',`dnl native
-Build-Depends: dpkg-dev (>= 1.14.15), debhelper (>= 5.0.62), g++-multilib [amd64 i386 mips mipsel powerpc ppc64 s390 sparc kfreebsd-amd64], LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP AUTO_BUILD_DEP AUTOGEN_BUILD_DEP libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], zlib1g-dev, gawk, lzma, xz-utils, patchutils, BINUTILS_BUILD_DEP, binutils-hppa64 (>= BINUTILSV) [hppa], gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, texinfo (>= 4.3), FORTRAN_BUILD_DEP locales [locale_no_archs], procps, sharutils, PASCAL_BUILD_DEP JAVA_BUILD_DEP GNAT_BUILD_DEP SPU_BUILD_DEP CLOOG_BUILD_DEP MPC_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP ELF_BUILD_DEP CHECK_BUILD_DEP GDC_BUILD_DEP realpath (>= 1.9.12), chrpath, lsb-release, make (>= 3.81), quilt
+Build-Depends: DPKG_BUILD_DEP debhelper (>= 5.0.62), g++-multilib [amd64 i386 mips mipsel powerpc ppc64 s390 sparc kfreebsd-amd64], LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP AUTO_BUILD_DEP AUTOGEN_BUILD_DEP libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], zlib1g-dev, gawk, lzma, xz-utils, patchutils, BINUTILS_BUILD_DEP, binutils-hppa64 (>= BINUTILSV) [hppa], gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, texinfo (>= 4.3), FORTRAN_BUILD_DEP locales [locale_no_archs], procps, sharutils, PASCAL_BUILD_DEP JAVA_BUILD_DEP GNAT_BUILD_DEP SPU_BUILD_DEP CLOOG_BUILD_DEP MPC_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP ELF_BUILD_DEP CHECK_BUILD_DEP GDC_BUILD_DEP realpath (>= 1.9.12), chrpath, lsb-release, make (>= 3.81), quilt
 Build-Depends-Indep: LIBSTDCXX_BUILD_INDEP JAVA_BUILD_INDEP
 ')dnl
 dnl Build-Conflicts: qt3-dev-tools
@@ -167,6 +167,7 @@
 Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends}
 ifdef(`TARGET',`Provides: libgcc1-TARGET-dcv1
 ',ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 '))`'dnl
 Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `')
  Shared version of the support library, a library of internal subroutines
@@ -200,6 +201,7 @@
 Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends}
 ifdef(`TARGET',`Provides: libgcc2-TARGET-dcv1
 ',ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 '))`'dnl
 Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `')
  Shared version of the support library, a library of internal subroutines
@@ -230,6 +232,9 @@
 ifenabled(`lib4gcc',`
 Package: libgcc4`'LS
 Architecture: ifdef(`TARGET',`all',`hppa')
+ifdef(`TARGET',`',ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
+'))`'dnl
 Section: ifdef(`TARGET',`devel',`libs')
 Priority: ifdef(`TARGET',`extra',required)
 Depends: ifdef(`STANDALONEJAVA',`gcj`'PV-base (>= ${gcj:Version})',`BASEDEP'), ${shlibs:Depends}, ${misc:Depends}
@@ -245,6 +250,8 @@
 
 Package: libgcc4-dbg`'LS
 Architecture: ifdef(`TARGET',`all',`hppa')
+ifdef(`TARGET',`',ifdef(`MULTIARCH', `Multi-Arch: same
+'))`'dnl
 Section: debug
 Priority: extra
 Depends: BASEDEP, libgcc4`'LS (= ${gcc:Version}), ${misc:Depends}
@@ -376,6 +383,7 @@
 Package: libgccmath`'GCCMATH_SO`'LS
 Architecture: i386
 ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 ')`'dnl
 Section: libs
 Priority: PRI(optional)
@@ -568,8 +576,9 @@
 ifenabled(`libmudf',`
 Package: libmudflap`'MF_SO`'LS
 Architecture: ifdef(`TARGET',`all',`any')
-ifdef(`MULTIARCH', `Multi-Arch: same
-')`'dnl
+ifdef(`TARGET',`',ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
+'))`'dnl
 Section: ifdef(`TARGET',`devel',`libs')
 Priority: ifdef(`TARGET',`extra',`PRI(optional)')
 Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends}
@@ -579,8 +588,8 @@
 
 Package: libmudflap`'MF_SO-dbg`'LS
 Architecture: ifdef(`TARGET',`all',`any')
-ifdef(`MULTIARCH', `Multi-Arch: same
-')`'dnl
+ifdef(`TARGET',`',ifdef(`MULTIARCH', `Multi-Arch: same
+'))`'dnl
 Section: debug
 Priority: extra
 Depends: BASEDEP, libmudflap`'MF_SO`'LS (= ${gcc:Version}), ${misc:Depends}
@@ -666,6 +675,7 @@
 Package: libssp`'SSP_SO`'LS
 Architecture: any
 ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 ')`'dnl
 Section: libs
 Priority: PRI(optional)
@@ -716,6 +726,7 @@
 Section: ifdef(`TARGET',`devel',`libs')
 Architecture: ifdef(`TARGET',`all',`any')
 ifdef(`TARGET',`',ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 '))`'dnl
 Priority: ifdef(`TARGET',`extra',`PRI(optional)')
 Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends}
@@ -878,6 +889,7 @@
 Section: ifdef(`TARGET',`devel',`libs')
 Architecture: ifdef(`TARGET',`all',`any')
 ifdef(`TARGET',`',ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 '))`'dnl
 Priority: ifdef(`TARGET',`extra',`PRI(optional)')
 Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends}
@@ -1008,6 +1020,7 @@
 Section: ifdef(`TARGET',`devel',`libs')
 Architecture: ifdef(`TARGET',`all',`any')
 ifdef(`TARGET',`',ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 '))`'dnl
 Priority: ifdef(`TARGET',`extra',PRI(optional))
 Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends}
@@ -1093,6 +1106,7 @@
 Section: libs
 Architecture: NEON_ARCHS
 ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 ')`'dnl
 Priority: extra
 Depends: BASEDEP, libgcc1-neon`'LS, ${shlibs:Depends}, ${misc:Depends}
@@ -1301,6 +1315,7 @@
 Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends}
 ifdef(`TARGET',`Provides: libstdc++CXX_SO-TARGET-dcv1
 ',ifdef(`MULTIARCH', `Multi-Arch: same
+Pre-Depends: multiarch-support
 '))`'dnl
 Conflicts: scim (<< 1.4.2-1)
 Description: The GNU Standard C++ Library v3`'ifdef(`TARGET)',` (TARGET)', `')

=== added file 'debian/patches/gcc-multiarch+biarch.diff'
--- debian/patches/gcc-multiarch+biarch.diff	1970-01-01 00:00:00 +0000
+++ debian/patches/gcc-multiarch+biarch.diff	2011-03-17 08:09:30 +0000
@@ -0,0 +1,55 @@
+# DP: Use multiarch dirs for the default multilib dir.
+
+Index: gcc-4.4-4.4.5/src/gcc/config/s390/t-linux64
+===================================================================
+--- gcc-4.4-4.4.5.orig/src/gcc/config/s390/t-linux64
++++ gcc-4.4-4.4.5/src/gcc/config/s390/t-linux64
+@@ -1,8 +1,9 @@
+ MULTILIB_OPTIONS = m64/m31
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 ../lib
++MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,.) $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib32),../../lib32,.)
+ 
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
+ 
+ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
++
+Index: gcc-4.4-4.4.5/src/gcc/config/sparc/t-linux64
+===================================================================
+--- gcc-4.4-4.4.5.orig/src/gcc/config/sparc/t-linux64
++++ gcc-4.4-4.4.5/src/gcc/config/sparc/t-linux64
+@@ -1,6 +1,6 @@
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 ../lib
++MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,.) $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib32),../../lib32,.)
+ 
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
+Index: gcc-4.4-4.4.5/src/gcc/config/i386/t-linux64
+===================================================================
+--- gcc-4.4-4.4.5.orig/src/gcc/config/i386/t-linux64
++++ gcc-4.4-4.4.5/src/gcc/config/i386/t-linux64
+@@ -7,7 +7,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 = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,.) $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib32),../../lib32,.)
+ 
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
+Index: gcc-4.4-4.4.5/src/gcc/config/rs6000/t-linux64
+===================================================================
+--- gcc-4.4-4.4.5.orig/src/gcc/config/rs6000/t-linux64
++++ gcc-4.4-4.4.5/src/gcc/config/rs6000/t-linux64
+@@ -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	= $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,.) $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../../lib32,.)
+ MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
+ 
+ softfp_wrap_start := '\#ifndef __powerpc64__'

=== removed file 'debian/patches/gcc-multiarch-i686-linaro.diff'
--- debian/patches/gcc-multiarch-i686-linaro.diff	2010-09-14 12:47:01 +0000
+++ debian/patches/gcc-multiarch-i686-linaro.diff	1970-01-01 00:00:00 +0000
@@ -1,375 +0,0 @@
-# DP: Add multiarch support to GCC.
-# DP:
-# DP: Convert the multilib option to a target triplet,
-# DP: add multiarch include directories and libraries path:
-# DP:	/usr/local/include/<arch>-linux-gnu
-# DP:	/usr/include/<arch>-linux-gnu
-# DP:	/usr/lib/<arch>-linux-gnu
-# DP: to the system paths.
-
-2009-03-24  Arthur Loiret  <aloiret@debian.org>
-
-	* configure.ac: Handle --enable-multiarch and --with-multiarch-defaults.
-	* config.gcc: Define MULTIARCH_DEFAULTS if multiarch is enabled.
-	* config.in [!USED_FOR_TARGET]: Undef ENABLE_MULTIARCH.
-	* gcc.c: include multiarch.h.
-	(set_multiarch_dir): New function. Adds the multiarch directories to
-	the library path.
-	[ENABLE_MULTIARCH]: Use it.
-	* cppdefault.c [LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR] Add an include
-	directory for multiarch directories.
-	* incpath.c: include multiarch.h
-	[ENABLE_MULTIARCH]: Add the multiarch directory to include directories.
-	* Makefile.in (MULTIARCH_H): New. Use it for incpath.o and gcc.o.
-	* multiarch.h: New file.
----
- gcc/Makefile.in  |    7 ++--
- gcc/config.gcc   |    9 +++++
- gcc/config.in    |    4 ++
- gcc/configure.ac |   13 ++++++++
- gcc/cppdefault.c |    6 +++
- gcc/gcc.c        |   41 ++++++++++++++++++++++++
- gcc/incpath.c    |   28 ++++++++++++++++
- gcc/multiarch.h  |   91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 8 files changed, 196 insertions(+), 3 deletions(-)
-
-diff -urN gcc.orig/Makefile.in gcc/Makefile.in
---- a/src/gcc.orig/Makefile.in	2010-06-12
-+++ b/src/gcc/Makefile.in	2010-06-12
-@@ -815,6 +815,7 @@
- endif
- 
- # Shorthand variables for dependency lists.
-+MULTIARCH_H = multiarch.h
- TOPLEV_H = toplev.h input.h
- TARGET_H = $(TM_H) target.h insn-modes.h
- MACHMODE_H = machmode.h mode-classes.def insn-modes.h
-@@ -1843,7 +1844,7 @@
- 
- incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
- 		intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
--		$(MACHMODE_H) $(FLAGS_H) toplev.h
-+		$(MACHMODE_H) $(FLAGS_H) toplev.h  $(MULTIARCH_H)
- 
- c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-     $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \
-@@ -1985,7 +1986,7 @@
- 
- gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
-     Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
--    configargs.h $(OBSTACK_H) opts.h
-+    configargs.h $(OBSTACK_H) opts.h $(MULTIARCH_H)
- 	(SHLIB_LINK='$(SHLIB_LINK)'; \
- 	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
-   $(DRIVER_DEFINES) \
-diff -urN gcc.orig/config.gcc gcc/config.gcc
---- a/src/gcc.orig/config.gcc	2010-06-12
-+++ b/src/gcc/config.gcc	2010-06-12
-@@ -3422,3 +3422,12 @@
- 		target_cpu_default=$target_cpu_default2
- 	fi
- fi
-+
-+if test x${enable_multiarch} = xyes; then
-+	multiarch_defaults=`echo ${target_noncanonical} | sed -e 's/unknown-//'`
-+	multiarch_define="__`echo ${multiarch_defaults} | tr '-' '_'`__"
-+	if test x${with_multiarch_defaults} != x; then
-+		multiarch_defaults=${with_multiarch_defaults}
-+	fi
-+	tm_defines="${tm_defines} ${multiarch_define}=1 MULTIARCH_DEFAULTS=\\\"${multiarch_defaults}\\\""
-+fi
-diff -urN gcc.orig/config.in gcc/config.in
---- a/src/gcc.orig/config.in	2010-06-12
-+++ b/src/gcc/config.in	2010-06-12
-@@ -179,6 +179,10 @@
- #undef ENABLE_WIN32_REGISTRY
- #endif
- 
-+/* Define if you want to use multiarch. */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_MULTIARCH
-+#endif
- 
- /* Define to the name of a file containing a list of extra machine modes for
-    this architecture. */
-diff -urN gcc.orig/configure.ac gcc/configure.ac
---- a/src/gcc.orig/configure.ac	2010-06-12
-+++ b/src/gcc/configure.ac	2010-06-12
-@@ -589,6 +589,19 @@
- [], [enable_multilib=yes])
- AC_SUBST(enable_multilib)
- 
-+# Determine whether or not multiarch is enabled.
-+AC_ARG_ENABLE(multiarch,
-+[  --enable-multiarch      enable multiarch support],
-+[
-+  enable_multiarch=yes
-+  AC_DEFINE(ENABLE_MULTIARCH, 1,
-+  [Define if you want to use multiarch.])
-+],[])
-+AC_SUBST(enable_multiarch)
-+
-+AC_ARG_WITH(multiarch-defaults,
-+[  --with-multiarch-defaults  set the default multiarch directory.],)
-+
- # Enable __cxa_atexit for C++.
- AC_ARG_ENABLE(__cxa_atexit,
- [  --enable-__cxa_atexit   enable __cxa_atexit for C++],
-diff -urN gcc.orig/cppdefault.c gcc/cppdefault.c
---- a/src/gcc.orig/cppdefault.c	2007-07-26
-+++ b/src/gcc/cppdefault.c	2010-06-12
-@@ -60,6 +60,9 @@
- #endif
- #ifdef LOCAL_INCLUDE_DIR
-     /* /usr/local/include comes before the fixincluded header files.  */
-+# ifdef ENABLE_MULTIARCH
-+    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
-+# endif
-     { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
- #endif
- #ifdef PREFIX_INCLUDE_DIR
-@@ -95,6 +98,9 @@
- #endif
- #ifdef STANDARD_INCLUDE_DIR
-     /* /usr/include comes dead last.  */
-+# ifdef ENABLE_MULTIARCH
-+    { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1, 2 },
-+# endif
-     { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1, 0 },
- #endif
-     { 0, 0, 0, 0, 0, 0 }
-diff -urN gcc.orig/gcc.c gcc/gcc.c
---- a/src/gcc.orig/gcc.c	2010-06-12
-+++ b/src/gcc/gcc.c	2010-06-12
-@@ -71,6 +71,7 @@
- #include "system.h"
- #include "coretypes.h"
- #include "multilib.h" /* before tm.h */
-+#include "multiarch.h"
- #include "tm.h"
- #include <signal.h>
- #if ! defined( SIGCHLD ) && defined( SIGCLD )
-@@ -383,6 +384,9 @@
- static int used_arg (const char *, int);
- static int default_arg (const char *, int);
- static void set_multilib_dir (void);
-+#ifdef ENABLE_MULTIARCH
-+static void set_multiarch_dir (void);
-+#endif
- static void print_multilib_info (void);
- static void perror_with_name (const char *);
- static void fatal_ice (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-@@ -6924,6 +6928,11 @@
-      the subdirectory based on the options.  */
-   set_multilib_dir ();
- 
-+#ifdef ENABLE_MULTIARCH
-+  /* Add the multiarch directories to libraries path.  */
-+  set_multiarch_dir ();
-+#endif
-+
-   /* Warn about any switches that no pass was interested in.  */
- 
-   for (i = 0; (int) i < n_switches; i++)
-@@ -8078,6 +8087,39 @@
-     multilib_os_dir = multilib_dir;
- }
- 
-+#ifdef ENABLE_MULTIARCH
-+/* Add the multiarch directories to libraries path. This uses the converted
-+   multiarch triplet from the multilib value.
-+   For example, if the target supports -m32/-m64 as multilib option and
-+   defaults to 64, it will add /usr/lib/$triplet_target64/lib to library
-+   path if either -m64 or no multilib option at all is set. And it will
-+   add /usr/lib/$triplet_target32 if -m32 is set. Triplets are defined in
-+   multiarch.def.  */
-+
-+static void
-+set_multiarch_dir (void)
-+{
-+  const char *multiarch, *path;
-+
-+  multiarch = multilib_to_multiarch (multilib_dir);
-+  if (multiarch == NULL)
-+    {
-+      fatal_ice ("\
-+Internal error: no multiarch mapping for multilib (%s)\n\
-+Please submit a full bug report.\n\
-+See %s for instructions.",
-+        multilib_dir ? multilib_dir : multilib_defaults, bug_report_url);
-+    }
-+  else if (multiarch)
-+    {
-+      path = concat (STANDARD_STARTFILE_PREFIX_2, multiarch,
-+        dir_separator_str, NULL);
-+      add_prefix (&startfile_prefixes, path, NULL,
-+        PREFIX_PRIORITY_LAST, 0, 1);
-+    }
-+}
-+#endif
-+
- /* Print out the multiple library subdirectory selection
-    information.  This prints out a series of lines.  Each line looks
-    like SUBDIRECTORY;@OPTION@OPTION, with as many options as is
-diff -urN gcc.orig/incpath.c gcc/incpath.c
---- a/src/gcc.orig/incpath.c	2010-06-12
-+++ b/src/gcc/incpath.c	2010-06-12
-@@ -32,6 +32,7 @@
- #include "cppdefault.h"
- #include "flags.h"
- #include "toplev.h"
-+#include "multiarch.h"
- 
- /* Microsoft Windows does not natively support inodes.
-    VMS has non-numeric inodes.  */
-@@ -134,6 +135,9 @@
-   const struct default_include *p;
-   int relocated = cpp_relocated();
-   size_t len;
-+#ifdef ENABLE_MULTIARCH
-+  const char *multiarch;
-+#endif
- 
-   if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0)
-     {
-@@ -152,8 +156,20 @@
- 	      if (!strncmp (p->fname, cpp_GCC_INCLUDE_DIR, len))
- 		{
- 		  char *str = concat (iprefix, p->fname + len, NULL);
-+#ifdef ENABLE_MULTIARCH
-+		  if (p->multilib == 1 && imultilib)
-+		    str = concat (str, dir_separator_str, imultilib, NULL);
-+		  else if (p->multilib == 2)
-+		    {
-+		      multiarch = multilib_to_multiarch (imultilib);
-+		      if (!multiarch)
-+			continue;
-+		      str = concat (str, dir_separator_str, multiarch, NULL);
-+		    }
-+#else
- 		  if (p->multilib && imultilib)
- 		    str = concat (str, dir_separator_str, imultilib, NULL);
-+#endif
- 		  add_path (str, SYSTEM, p->cxx_aware, false);
- 		}
- 	    }
-@@ -197,8 +213,20 @@
- 	  else
- 	    str = update_path (p->fname, p->component);
- 
-+#ifdef ENABLE_MULTIARCH
-+	  if (p->multilib == 1 && imultilib)
-+	    str = concat (str, dir_separator_str, imultilib, NULL);
-+	  else if (p->multilib == 2)
-+	    {
-+	      multiarch = multilib_to_multiarch (imultilib);
-+	      if (!multiarch)
-+		continue;
-+	      str = concat (str, dir_separator_str, multiarch, NULL);
-+	    }
-+#else
- 	  if (p->multilib && imultilib)
- 	    str = concat (str, dir_separator_str, imultilib, NULL);
-+#endif
- 
- 	  add_path (str, SYSTEM, p->cxx_aware, false);
- 	}
-diff -urN gcc.orig/multiarch.h gcc/multiarch.h
---- a/src/gcc.orig/multiarch.h	1970-01-01
-+++ b/src/gcc/multiarch.h	2010-06-12
-@@ -0,0 +1,95 @@
-+/* Header for multiarch handling (include directories, libraries path).
-+   Copyright (C) 2009 Free Software Foundation, Inc.
-+   Contributed by Arthur Loiret <aloiret@debian.org>
-+
-+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 3, 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 COPYING3.  If not see
-+<http://www.gnu.org/licenses/>.  */
-+
-+#ifndef GCC_MULTIARCH_H
-+#define GCC_MULTIARCH_H
-+
-+#include "tm.h"
-+
-+struct multiarch_mapping
-+{
-+  const char *const multilib;
-+  const char *const multiarch;
-+};
-+
-+const struct multiarch_mapping multiarch_mappings[] = {
-+#ifdef ENABLE_MULTIARCH
-+  { "", MULTIARCH_DEFAULTS },
-+# if defined(__x86_64_linux_gnu__)
-+  { "32",  "i686-linux-gnu" },
-+# endif
-+# if defined(__i486_linux_gnu__) || defined(__i686_linux_gnu__)
-+  { "64",  "x86_64-linux-gnu" },
-+# endif
-+# if defined(__powerpc64_linux_gnu__)
-+  { "32",  "powerpc-linux-gnu" },
-+# endif
-+# if defined(__powerpc_linux_gnu__)
-+  { "64",  "powerpc64-linux-gnu" },
-+# endif
-+# if defined(__sparc64_linux_gnu__)
-+  { "32",  "sparc-linux-gnu" },
-+# endif
-+# if defined(__sparc_linux_gnu__)
-+  { "64",  "sparc64-linux-gnu" },
-+# endif
-+# if defined(__s390x_linux_gnu__)
-+  { "31",  "s390-linux-gnu" },
-+# endif
-+# if defined(__s390_linux_gnu__)
-+  { "64",  "s390x-linux-gnu" },
-+# endif
-+# if defined(__mips_linux_gnu__)
-+  { "n32",  "mips64-linux-gnuabin32" },
-+  { "64",  "mips64-linux-gnuabi64" },
-+# endif
-+# if defined(__mipsel_linux_gnu__)
-+  { "n32",  "mips64el-linux-gnuabin32" },
-+  { "64",  "mips64el-linux-gnuabi64" },
-+# endif
-+# if defined(__x86_64_kfreebsd_gnu__)
-+  { "32",  "i486-kfreebsd-gnu" },
-+# endif
-+# if defined(__sh4_linux_gnu__)
-+  { "m4",  "sh4-linux-gnu" },
-+  { "m4-nofpu",  "sh4_nofpu-linux-gnu" },
-+# endif
-+#endif /* ENABLE_MULTIARCH */
-+  { 0, 0 }
-+};
-+
-+/* Convert the multilib option to the corresponding target triplet.
-+   See multiarch.def and config.gcc for multilib/multiarch pairs.
-+   When the default multilib is used, the corresponding multilib/multiarch
-+   pair is { "", $target_tripplet }.  */
-+static inline const char*
-+multilib_to_multiarch (const char *imultilib)
-+{
-+  const struct multiarch_mapping *p;
-+
-+  for (p = multiarch_mappings; p->multiarch; p++)
-+    {
-+      if (!strcmp(p->multilib, imultilib ? imultilib : ""))
-+	return p->multiarch;
-+    }
-+  return NULL;
-+}
-+
-+#endif /* GCC_MULTIARCH_H */

=== removed file 'debian/patches/gcc-multiarch-i686.diff'
--- debian/patches/gcc-multiarch-i686.diff	2010-08-13 16:57:34 +0000
+++ debian/patches/gcc-multiarch-i686.diff	1970-01-01 00:00:00 +0000
@@ -1,356 +0,0 @@
-# DP: Add multiarch support to GCC.
-# DP:
-# DP: Convert the multilib option to a target triplet,
-# DP: add multiarch include directories and libraries path:
-# DP:	/usr/local/include/<arch>-linux-gnu
-# DP:	/usr/include/<arch>-linux-gnu
-# DP:	/usr/lib/<arch>-linux-gnu
-# DP: to the system paths.
-
-2009-03-24  Arthur Loiret  <aloiret@debian.org>
-
-	* configure.ac: Handle --enable-multiarch and --with-multiarch-defaults.
-	* config.gcc: Define MULTIARCH_DEFAULTS if multiarch is enabled.
-	* config.in [!USED_FOR_TARGET]: Undef ENABLE_MULTIARCH.
-	* gcc.c: include multiarch.h.
-	(set_multiarch_dir): New function. Adds the multiarch directories to
-	the library path.
-	[ENABLE_MULTIARCH]: Use it.
-	* cppdefault.c [LOCAL_INCLUDE_DIR, STANDARD_INCLUDE_DIR] Add an include
-	directory for multiarch directories.
-	* incpath.c: include multiarch.h
-	[ENABLE_MULTIARCH]: Add the multiarch directory to include directories.
-	* Makefile.in (MULTIARCH_H): New. Use it for incpath.o and gcc.o.
-	* multiarch.h: New file.
----
- gcc/Makefile.in  |    7 ++--
- gcc/config.gcc   |    9 +++++
- gcc/config.in    |    4 ++
- gcc/configure.ac |   13 ++++++++
- gcc/cppdefault.c |    6 +++
- gcc/gcc.c        |   41 ++++++++++++++++++++++++
- gcc/incpath.c    |   28 ++++++++++++++++
- gcc/multiarch.h  |   91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 8 files changed, 196 insertions(+), 3 deletions(-)
-
---- a/src/gcc/Makefile.in
-+++ b/src/gcc/Makefile.in
-@@ -806,6 +806,7 @@
- endif
- 
- # Shorthand variables for dependency lists.
-+MULTIARCH_H = multiarch.h
- TOPLEV_H = toplev.h input.h
- TARGET_H = $(TM_H) target.h insn-modes.h
- MACHMODE_H = machmode.h mode-classes.def insn-modes.h
-@@ -1818,7 +1819,7 @@
- 
- incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
- 		intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
--		$(MACHMODE_H)
-+		$(MACHMODE_H) $(MULTIARCH_H)
- 
- c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-     $(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) $(FLAGS_H) $(FUNCTION_H) output.h \
-@@ -1959,7 +1960,7 @@
- 
- gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
-     Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
--    configargs.h $(OBSTACK_H) opts.h
-+    configargs.h $(OBSTACK_H) opts.h $(MULTIARCH_H)
- 	(SHLIB_LINK='$(SHLIB_LINK)'; \
- 	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) \
-   $(DRIVER_DEFINES) \
-
---- a/src/gcc/config.gcc
-+++ b/src/gcc/config.gcc
-@@ -3173,3 +3173,12 @@ then
- 		target_cpu_default=$target_cpu_default2
- 	fi
- fi
-+
-+if test x${enable_multiarch} = xyes; then
-+	multiarch_defaults=`echo ${target_noncanonical} | sed -e 's/unknown-//'`
-+	multiarch_define="__`echo ${multiarch_defaults} | tr '-' '_'`__"
-+	if test x${with_multiarch_defaults} != x; then
-+		multiarch_defaults=${with_multiarch_defaults}
-+	fi
-+	tm_defines="${tm_defines} ${multiarch_define}=1 MULTIARCH_DEFAULTS=\\\"${multiarch_defaults}\\\""
-+fi
---- a/src/gcc/config.in
-+++ b/src/gcc/config.in
-@@ -155,6 +155,10 @@
- #undef ENABLE_WIN32_REGISTRY
- #endif
- 
-+/* Define if you want to use multiarch. */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_MULTIARCH
-+#endif
- 
- /* Define to the name of a file containing a list of extra machine modes for
-    this architecture. */
---- a/src/gcc/configure.ac
-+++ b/src/gcc/configure.ac
-@@ -585,6 +585,19 @@ AC_ARG_ENABLE(multilib,
- [], [enable_multilib=yes])
- AC_SUBST(enable_multilib)
- 
-+# Determine whether or not multiarch is enabled.
-+AC_ARG_ENABLE(multiarch,
-+[  --enable-multiarch      enable multiarch support],
-+[
-+  enable_multiarch=yes
-+  AC_DEFINE(ENABLE_MULTIARCH, 1,
-+  [Define if you want to use multiarch.])
-+],[])
-+AC_SUBST(enable_multiarch)
-+
-+AC_ARG_WITH(multiarch-defaults,
-+[  --with-multiarch-defaults  set the default multiarch directory.],)
-+
- # Enable __cxa_atexit for C++.
- AC_ARG_ENABLE(__cxa_atexit,
- [  --enable-__cxa_atexit   enable __cxa_atexit for C++],
---- a/src/gcc/cppdefault.c
-+++ b/src/gcc/cppdefault.c
-@@ -60,6 +60,9 @@ const struct default_include cpp_include_defaults[]
- #endif
- #ifdef LOCAL_INCLUDE_DIR
-     /* /usr/local/include comes before the fixincluded header files.  */
-+# ifdef ENABLE_MULTIARCH
-+    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
-+# endif
-     { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
- #endif
- #ifdef PREFIX_INCLUDE_DIR
-@@ -95,6 +98,9 @@ const struct default_include cpp_include_defaults[]
- #endif
- #ifdef STANDARD_INCLUDE_DIR
-     /* /usr/include comes dead last.  */
-+# ifdef ENABLE_MULTIARCH
-+    { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1, 2 },
-+# endif
-     { STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT, 0, 0, 1, 0 },
- #endif
-     { 0, 0, 0, 0, 0, 0 }
---- a/src/gcc/gcc.c
-+++ b/src/gcc/gcc.c
-@@ -71,6 +71,7 @@ compilation is specified by a string called a "spec".  */
- #include "system.h"
- #include "coretypes.h"
- #include "multilib.h" /* before tm.h */
-+#include "multiarch.h"
- #include "tm.h"
- #include <signal.h>
- #if ! defined( SIGCHLD ) && defined( SIGCLD )
-@@ -345,6 +346,9 @@ static void give_switch (int, int);
- static int used_arg (const char *, int);
- static int default_arg (const char *, int);
- static void set_multilib_dir (void);
-+#ifdef ENABLE_MULTIARCH
-+static void set_multiarch_dir (void);
-+#endif
- static void print_multilib_info (void);
- static void perror_with_name (const char *);
- static void fatal_ice (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-@@ -6504,6 +6508,11 @@ main (int argc, char **argv)
-      the subdirectory based on the options.  */
-   set_multilib_dir ();
- 
-+#ifdef ENABLE_MULTIARCH
-+  /* Add the multiarch directories to libraries path.  */
-+  set_multiarch_dir ();
-+#endif
-+
-   /* Warn about any switches that no pass was interested in.  */
- 
-   for (i = 0; (int) i < n_switches; i++)
-@@ -7576,6 +7585,27 @@ set_multilib_dir (void)
-     multilib_os_dir = multilib_dir;
- }
- 
-+#ifdef ENABLE_MULTIARCH
-+/* Add the multiarch directories to libraries path. This uses the converted
-+   multiarch triplet from the multilib value.
-+   For example, if the target supports -m32/-m64 as multilib option and
-+   defaults to 64, it will add /usr/lib/$triplet_target64/lib to library
-+   path if either -m64 or no multilib option at all is set. And it will
-+   add /usr/lib/$triplet_target32 if -m32 is set. Triplets are defined in
-+   multiarch.def.  */
-+
-+static void
-+set_multiarch_dir (void)
-+{
-+  const char *path;
-+
-+  path = concat (STANDARD_STARTFILE_PREFIX_2, MULTIARCH_DEFAULTS,
-+    dir_separator_str, NULL);
-+  add_prefix (&startfile_prefixes, path, NULL,
-+    PREFIX_PRIORITY_LAST, 0, 1);
-+}
-+#endif
-+
- /* Print out the multiple library subdirectory selection
-    information.  This prints out a series of lines.  Each line looks
-    like SUBDIRECTORY;@OPTION@OPTION, with as many options as is
---- a/src/gcc/incpath.c
-+++ b/src/gcc/incpath.c
-@@ -30,6 +30,7 @@
- #include "intl.h"
- #include "incpath.h"
- #include "cppdefault.h"
-+#include "multiarch.h"
- 
- /* Microsoft Windows does not natively support inodes.
-    VMS has non-numeric inodes.  */
-@@ -132,6 +133,9 @@ add_standard_paths (const char *sysroot, const char *iprefix,
-   const struct default_include *p;
-   int relocated = cpp_relocated();
-   size_t len;
-+#ifdef ENABLE_MULTIARCH
-+  const char *multiarch;
-+#endif
- 
-   if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0)
-     {
-@@ -150,8 +154,20 @@ add_standard_paths (const char *sysroot, const char *iprefix,
- 	      if (!strncmp (p->fname, cpp_GCC_INCLUDE_DIR, len))
- 		{
- 		  char *str = concat (iprefix, p->fname + len, NULL);
-+#ifdef ENABLE_MULTIARCH
-+		  if (p->multilib == 1 && imultilib)
-+		    str = concat (str, dir_separator_str, imultilib, NULL);
-+		  else if (p->multilib == 2)
-+		    {
-+		      multiarch = multilib_to_multiarch (imultilib);
-+		      if (!multiarch)
-+			continue;
-+		      str = concat (str, dir_separator_str, multiarch, NULL);
-+		    }
-+#else
- 		  if (p->multilib && imultilib)
- 		    str = concat (str, dir_separator_str, imultilib, NULL);
-+#endif
- 		  add_path (str, SYSTEM, p->cxx_aware, false);
- 		}
- 	    }
-@@ -195,8 +211,20 @@ add_standard_paths (const char *sysroot, const char *iprefix,
- 	  else
- 	    str = update_path (p->fname, p->component);
- 
-+#ifdef ENABLE_MULTIARCH
-+	  if (p->multilib == 1 && imultilib)
-+	    str = concat (str, dir_separator_str, imultilib, NULL);
-+	  else if (p->multilib == 2)
-+	    {
-+	      multiarch = multilib_to_multiarch (imultilib);
-+	      if (!multiarch)
-+		continue;
-+	      str = concat (str, dir_separator_str, multiarch, NULL);
-+	    }
-+#else
- 	  if (p->multilib && imultilib)
- 	    str = concat (str, dir_separator_str, imultilib, NULL);
-+#endif
- 
- 	  add_path (str, SYSTEM, p->cxx_aware, false);
- 	}
---- /dev/null
-+++ b/src/gcc/multiarch.h
-@@ -0,0 +1,95 @@
-+/* Header for multiarch handling (include directories, libraries path).
-+   Copyright (C) 2009 Free Software Foundation, Inc.
-+   Contributed by Arthur Loiret <aloiret@debian.org>
-+
-+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 3, 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 COPYING3.  If not see
-+<http://www.gnu.org/licenses/>.  */
-+
-+#ifndef GCC_MULTIARCH_H
-+#define GCC_MULTIARCH_H
-+
-+#include "tm.h"
-+
-+struct multiarch_mapping
-+{
-+  const char *const multilib;
-+  const char *const multiarch;
-+};
-+
-+const struct multiarch_mapping multiarch_mappings[] = {
-+#ifdef ENABLE_MULTIARCH
-+  { "", MULTIARCH_DEFAULTS },
-+# if defined(__x86_64_linux_gnu__)
-+  { "32",  "i686-linux-gnu" },
-+# endif
-+# if defined(__i486_linux_gnu__) || defined(__i686_linux_gnu__)
-+  { "64",  "x86_64-linux-gnu" },
-+# endif
-+# if defined(__powerpc64_linux_gnu__)
-+  { "32",  "powerpc-linux-gnu" },
-+# endif
-+# if defined(__powerpc_linux_gnu__)
-+  { "64",  "powerpc64-linux-gnu" },
-+# endif
-+# if defined(__sparc64_linux_gnu__)
-+  { "32",  "sparc-linux-gnu" },
-+# endif
-+# if defined(__sparc_linux_gnu__)
-+  { "64",  "sparc64-linux-gnu" },
-+# endif
-+# if defined(__s390x_linux_gnu__)
-+  { "31",  "s390-linux-gnu" },
-+# endif
-+# if defined(__s390_linux_gnu__)
-+  { "64",  "s390x-linux-gnu" },
-+# endif
-+# if defined(__mips_linux_gnu__)
-+  { "n32",  "mips64-linux-gnuabin32" },
-+  { "64",  "mips64-linux-gnuabi64" },
-+# endif
-+# if defined(__mipsel_linux_gnu__)
-+  { "n32",  "mips64el-linux-gnuabin32" },
-+  { "64",  "mips64el-linux-gnuabi64" },
-+# endif
-+# if defined(__x86_64_kfreebsd_gnu__)
-+  { "32",  "i486-kfreebsd-gnu" },
-+# endif
-+# if defined(__sh4_linux_gnu__)
-+  { "m4",  "sh4-linux-gnu" },
-+  { "m4-nofpu",  "sh4_nofpu-linux-gnu" },
-+# endif
-+#endif /* ENABLE_MULTIARCH */
-+  { 0, 0 }
-+};
-+
-+/* Convert the multilib option to the corresponding target triplet.
-+   See multiarch.def and config.gcc for multilib/multiarch pairs.
-+   When the default multilib is used, the corresponding multilib/multiarch
-+   pair is { "", $target_tripplet }.  */
-+static inline const char*
-+multilib_to_multiarch (const char *imultilib)
-+{
-+  const struct multiarch_mapping *p;
-+
-+  for (p = multiarch_mappings; p->multiarch; p++)
-+    {
-+      if (!strcmp(p->multilib, imultilib ? imultilib : ""))
-+	return p->multiarch;
-+    }
-+  return NULL;
-+}
-+
-+#endif /* GCC_MULTIARCH_H */

=== modified file 'debian/patches/gcc-multiarch-linaro.diff'
--- debian/patches/gcc-multiarch-linaro.diff	2010-09-14 12:47:01 +0000
+++ debian/patches/gcc-multiarch-linaro.diff	2011-03-17 08:09:30 +0000
@@ -171,7 +171,7 @@
    /* Warn about any switches that no pass was interested in.  */
  
    for (i = 0; (int) i < n_switches; i++)
-@@ -8078,6 +8087,39 @@
+@@ -8078,6 +8087,27 @@
      multilib_os_dir = multilib_dir;
  }
  
@@ -187,24 +187,12 @@
 +static void
 +set_multiarch_dir (void)
 +{
-+  const char *multiarch, *path;
++  const char *path;
 +
-+  multiarch = multilib_to_multiarch (multilib_dir);
-+  if (multiarch == NULL)
-+    {
-+      fatal_ice ("\
-+Internal error: no multiarch mapping for multilib (%s)\n\
-+Please submit a full bug report.\n\
-+See %s for instructions.",
-+        multilib_dir ? multilib_dir : multilib_defaults, bug_report_url);
-+    }
-+  else if (multiarch)
-+    {
-+      path = concat (STANDARD_STARTFILE_PREFIX_2, multiarch,
-+        dir_separator_str, NULL);
-+      add_prefix (&startfile_prefixes, path, NULL,
-+        PREFIX_PRIORITY_LAST, 0, 1);
-+    }
++  path = concat (STANDARD_STARTFILE_PREFIX_2, MULTIARCH_DEFAULTS,
++    dir_separator_str, NULL);
++  add_prefix (&startfile_prefixes, path, NULL,
++    PREFIX_PRIORITY_LAST, 0, 1);
 +}
 +#endif
 +
@@ -313,7 +301,7 @@
 +#ifdef ENABLE_MULTIARCH
 +  { "", MULTIARCH_DEFAULTS },
 +# if defined(__x86_64_linux_gnu__)
-+  { "32",  "i486-linux-gnu" },
++  { "32",  "i386-linux-gnu" },
 +# endif
 +# if defined(__i486_linux_gnu__) || defined(__i686_linux_gnu__)
 +  { "64",  "x86_64-linux-gnu" },
@@ -345,7 +333,7 @@
 +  { "64",  "mips64el-linux-gnuabi64" },
 +# endif
 +# if defined(__x86_64_kfreebsd_gnu__)
-+  { "32",  "i486-kfreebsd-gnu" },
++  { "32",  "i386-kfreebsd-gnu" },
 +# endif
 +# if defined(__sh4_linux_gnu__)
 +  { "m4",  "sh4-linux-gnu" },

=== modified file 'debian/patches/gcc-multiarch.diff'
--- debian/patches/gcc-multiarch.diff	2010-10-20 20:20:08 +0000
+++ debian/patches/gcc-multiarch.diff	2011-03-17 08:09:30 +0000
@@ -7,6 +7,9 @@
 # DP:	/usr/lib/<arch>-linux-gnu
 # DP: to the system paths.
 
+2011-03-08  Steve Langasek <steve.langasek@linaro.org>
+	* Canonicalize x86 to i386 everywhere, not i486/i686
+
 2009-03-24  Arthur Loiret  <aloiret@debian.org>
 
 	* configure.ac: Handle --enable-multiarch and --with-multiarch-defaults.
@@ -294,7 +297,7 @@
 +#ifdef ENABLE_MULTIARCH
 +  { "", MULTIARCH_DEFAULTS },
 +# if defined(__x86_64_linux_gnu__)
-+  { "32",  "i486-linux-gnu" },
++  { "32",  "i386-linux-gnu" },
 +# endif
 +# if defined(__i486_linux_gnu__) || defined(__i686_linux_gnu__)
 +  { "64",  "x86_64-linux-gnu" },
@@ -326,7 +329,7 @@
 +  { "64",  "mips64el-linux-gnuabi64" },
 +# endif
 +# if defined(__x86_64_kfreebsd_gnu__)
-+  { "32",  "i486-kfreebsd-gnu" },
++  { "32",  "i386-kfreebsd-gnu" },
 +# endif
 +# if defined(__sh4_linux_gnu__)
 +  { "m4",  "sh4-linux-gnu" },

=== modified file 'debian/rules.conf'
--- debian/rules.conf	2011-03-13 22:21:44 +0000
+++ debian/rules.conf	2011-03-17 08:09:30 +0000
@@ -108,9 +108,16 @@
   UPLOADERS = Arthur Loiret <arthur.loiret@gmail.com>
 endif
 
-DPKG_BUILD_DEP = dpkg-dev (>= 1.14.15)
+DPKG_BUILD_DEP = dpkg-dev (>= 1.14.15),
+ifeq ($(with_multiarch_lib),yes)
+  DPKG_BUILD_DEP = dpkg-dev (>= 1.16.0~ubuntu4),
+endif
+ifeq ($(multiarch_stage1),yes)
+  DPKG_BUILD_DEP = dpkg-dev (>= 1.16.0~ubuntu4),
+endif
+
 ifeq ($(DEB_CROSS),yes)
-  DPKG_BUILD_DEP +=, dpkg-cross (>= 1.25.99)
+  DPKG_BUILD_DEP += dpkg-cross (>= 1.25.99),
 endif
 
 # The binutils version needed.
@@ -132,9 +139,13 @@
 
 # libc-dev dependencies
 libc_ver := 2.5
+libc_dev_ver := $(libc_ver)
 ifneq (,$(findstring gnat,$(PKGSOURCE)))
   libc_ver := 2.9-21
 endif
+ifeq ($(with_multiarch_lib),yes)
+  libc_dev_ver := 2.13-0ubuntu6
+endif
 ifeq ($(DEB_TARGET_ARCH_OS),linux)
   ifneq (,$(findstring $(DEB_TARGET_ARCH),alpha ia64))
     LIBC_DEP = libc6.1
@@ -202,11 +213,11 @@
 endif
 
 # Add suffix and required version
-LIBC_DEV_DEP := $(LIBC_DEV_DEP)$(LS) (>= $(libc_ver))
+LIBC_DEV_DEP := $(LIBC_DEV_DEP)$(LS) (>= $(libc_dev_ver))
 
 # TODO: make this automatic, there must be a better way to define LIBC_DEP.
 ifneq ($(DEB_CROSS),yes)
-  LIBC_BUILD_DEP = libc6.1-dev (>= $(libc_ver)) [alpha ia64] | libc0.3-dev (>= $(libc_ver)) [hurd-i386] | libc0.1-dev (>= $(libc_ver)) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= $(libc_ver)),
+  LIBC_BUILD_DEP = libc6.1-dev (>= $(libc_dev_ver)) [alpha ia64] | libc0.3-dev (>= $(libc_dev_ver)) [hurd-i386] | libc0.1-dev (>= $(libc_dev_ver)) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= $(libc_dev_ver)),
   LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64], lib64gcc1 [i386 powerpc sparc s390], libc6-dev-mips64 [mips mipsel], libc6-dev-mipsn32 [mips mipsel],
 else
   LIBC_BUILD_DEP = $(LIBC_DEV_DEP),
@@ -267,7 +278,7 @@
 endif
 
 ifneq ($(DEB_CROSS),yes)
-LIBC_BUILD_DEP := libc6.1-dev (>= $(libc_ver)) [alpha ia64] | libc0.3-dev (>= $(libc_ver)) [hurd-i386] | libc0.1-dev (>= $(libc_ver)) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= $(libc_ver))
+LIBC_BUILD_DEP := libc6.1-dev (>= $(libc_dev_ver)) [alpha ia64] | libc0.3-dev (>= $(libc_dev_ver)) [hurd-i386] | libc0.1-dev (>= $(libc_dev_ver)) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= $(libc_dev_ver))
 JAVA_BUILD_DEP := libc6.1-dbg [alpha ia64] | libc0.3-dbg [hurd-i386] | libc0.1-dbg [kfreebsd-i386 kfreebsd-amd64] | libc6-dbg, zlib1g-dev, libantlr-java,
 
 ifeq ($(PKGSOURCE),gcj-$(BASE_VERSION))
@@ -518,6 +529,7 @@
 	-DMPFR_BUILD_DEP="$(MPFR_BUILD_DEP)" \
 	-DMPC_BUILD_DEP="$(MPC_BUILD_DEP)" \
 	-DELF_BUILD_DEP="$(ELF_BUILD_DEP)" \
+	-DDPKG_BUILD_DEP="$(DPKG_BUILD_DEP)" \
 	-DSOURCE_BUILD_DEP="$(SOURCE_BUILD_DEP)" \
 	-DCROSS_BUILD_DEP="$(CROSS_BUILD_DEP)" \
 	-DMULTILIB_ARCHS="$(multilib_archs)" \

=== modified file 'debian/rules.d/binary-java.mk'
--- debian/rules.d/binary-java.mk	2010-08-25 20:43:44 +0000
+++ debian/rules.d/binary-java.mk	2011-03-17 08:09:30 +0000
@@ -83,7 +83,7 @@
 	$(PF)/$(libdir)/libgcj.spec \
 	$(jvm_dir)/include \
 	$(jvm_dir)/bin/{appletviewer,jar,jarsigner,javadoc,javah,native2ascii,rmic,serialver} \
-	$(PF)/$(libdir)/jvm-exports
+	$(PF)/lib/jvm-exports
 
 ifneq ($(GFDL_INVARIANT_FREE),yes)
   files_jdk += \
@@ -567,7 +567,7 @@
 
 	mv $(d_jdk)/$(PF)/$(libdir)/libgcj.spec $(d_jdk)/$(gcc_lib_dir)/
 
-	install -m 755 $(d)/$(PF)/lib/libgcj_bc.so.1 \
+	install -m 755 $(d)/$(PF)/$(libdir)/libgcj_bc.so.1 \
 		$(d_jdk)/$(gcc_lib_dir)/libgcj_bc.so
 	$(builddir)/gcc/xgcc -B$(builddir)/gcc/ -shared -fpic -xc /dev/null \
 		-o build/libgcj.so -Wl,-soname,libgcj.so.$(GCJ_SONAME) -nostdlib

=== modified file 'debian/rules.defs'
--- debian/rules.defs	2011-02-27 22:02:11 +0000
+++ debian/rules.defs	2011-03-17 08:09:30 +0000
@@ -32,6 +32,7 @@
 DEB_HOST_GNU_CPU	?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_CPU)
 DEB_HOST_GNU_SYSTEM	?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_SYSTEM)
 DEB_HOST_GNU_TYPE	?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_TYPE)
+DEB_HOST_MULTIARCH	?= $(call vafilt,$(DPKG_VARS),DEB_HOST_MULTIARCH)
 
 CHANGELOG_VARS := $(shell dpkg-parsechangelog | \
 	sed -n 's/ /_/g;/^[^_]/s/^\([^:]*\):_\(.*\)/\1=\2/p')
@@ -309,6 +310,15 @@
 #  keep_in_control := yes
 #endif
 
+# is this a multiarch-enabled build?
+#ifeq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic lucid maverick))
+#  with_multiarch_lib := yes
+#endif
+
+#ifeq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic lucid maverick))
+#  multiarch_stage1 := yes
+#endif
+
 ifneq ($(DEB_STAGE),stage1)
   # build a -base package.
   ifneq ($(DEB_CROSS),yes)

=== modified file 'debian/rules.patch'
--- debian/rules.patch	2011-03-13 21:45:41 +0000
+++ debian/rules.patch	2011-03-17 08:09:30 +0000
@@ -293,11 +293,7 @@
   debian_patches += libmudflap-no-testsuite
 endif
 
-ifeq ($(biarch_cpu),i686)
-  debian_patches += gcc-multiarch-i686$(if $(with_linaro_branch),-linaro)
-else
-  debian_patches += gcc-multiarch$(if $(with_linaro_branch),-linaro)
-endif
+debian_patches += gcc-multiarch$(if $(with_linaro_branch),-linaro)
 
 ifeq ($(biarch64),yes)
   ifeq (,$(findstring libjava, $(biarch_multidir_names)))
@@ -318,11 +314,18 @@
   ifeq (,$(findstring libjava, $(biarch_multidir_names)))
     debian_patches += libjava-nobiarch-check
   endif
-  debian_patches += config-ml gcc-multilib64dir
+  debian_patches += config-ml
 endif
 
-ifneq (,$(findstring sparc64,$(DEB_TARGET_ARCH)))
-  debian_patches += gcc-multilib64dir
+ifeq ($(with_multiarch_lib),yes)
+  debian_patches += gcc-multiarch+biarch
+else
+  ifeq ($(biarch32),yes)
+    debian_patches += gcc-multilib64dir
+  endif
+  ifneq (,$(findstring sparc64,$(DEB_TARGET_ARCH)))
+    debian_patches += gcc-multilib64dir
+  endif
 endif
 
 ifeq ($(biarchn32)-$(biarch64),yes-yes)

=== modified file 'debian/rules2'
--- debian/rules2	2011-01-20 00:26:50 +0000
+++ debian/rules2	2011-03-17 08:09:30 +0000
@@ -142,6 +142,12 @@
   CONFARGS += --program-suffix=-$(BASE_VERSION)
 endif
 
+# if this variable exists at all, it's reasonable to use it, giving us
+# multiarch support for free
+ifneq ($(DEB_HOST_MULTIARCH),)
+  MULTIARCH_CONFARG = --with-multiarch-defaults=$(DEB_HOST_MULTIARCH)
+endif
+
 ifdef DEB_STAGE
   CONFARGS += \
 	--disable-libgomp  \
@@ -168,6 +174,7 @@
   CONFARGS += \
 	--enable-shared \
 	--enable-multiarch \
+	$(MULTIARCH_CONFARG) \
 	--enable-linker-build-id \
 	--with-system-zlib \
 
@@ -574,7 +581,7 @@
 endif
 
 ifeq ($(with_multiarch_lib),yes)
-  libdir	= lib/$(DEB_TARGET_GNU_TYPE)
+  libdir	= lib/$(DEB_HOST_MULTIARCH)
 else
   libdir	= lib
 endif
@@ -591,12 +598,12 @@
 ifeq ($(with_common_gcclibdir),yes)
   gcc_lib_dir	= $(PF)/$(libdir)/gcc/$(TARGET_ALIAS)/$(BASE_VERSION)
   gcc_lexec_dir	= $(libexecdir)/gcc/$(TARGET_ALIAS)/$(BASE_VERSION)
-  gcc_spu_lib_dir	= $(PF)/spu/$(libdir)/gcc/spu/$(BASE_VERSION)
+  gcc_spu_lib_dir	= $(PF)/spu/lib/gcc/spu/$(BASE_VERSION)
   gcc_spu_lexec_dir	= $(spulibexecdir)/gcc/spu/$(BASE_VERSION)
 else
   gcc_lib_dir	= $(PF)/$(libdir)/gcc/$(TARGET_ALIAS)/$(GCC_VERSION)
   gcc_lexec_dir	= $(libexecdir)/gcc/$(TARGET_ALIAS)/$(GCC_VERSION)
-  gcc_spu_lib_dir	= $(PF)/spu/$(libdir)/gcc/spu/$(GCC_VERSION)
+  gcc_spu_lib_dir	= $(PF)/spu/lib/gcc/spu/$(GCC_VERSION)
   gcc_spu_lexec_dir	= $(spulibexecdir)/gcc/spu/$(GCC_VERSION)
 endif
 
@@ -957,6 +964,7 @@
 		--prefix=/$(PF) \
 		--libexecdir=/$(libexecdir) \
 		--enable-multiarch \
+		$(MULTIARCH_CONFARG) \
 		--disable-shared \
 		--disable-nls \
 		--disable-threads \
@@ -998,6 +1006,7 @@
 		--libexecdir=/$(libexecdir) \
 		--program-suffix=-$(BASE_VERSION) \
 		--enable-multiarch \
+		$(MULTIARCH_CONFARG) \
 		--disable-nls \
 		--disable-libmudflap \
 		--with-arch=armv7-a --with-tune=cortex-a8 \
@@ -1032,6 +1041,7 @@
 		--prefix=/$(PF) \
 		--libexecdir=/$(libexecdir) \
 		--enable-multiarch \
+		$(MULTIARCH_CONFARG) \
 		--disable-nls \
 		--disable-libmudflap \
 		--program-suffix=-$(BASE_VERSION) \
@@ -1679,7 +1689,7 @@
 	: # remove files not needed from the hppa64 build
 	rm -rf $(d)/$(PF)/info
 	rm -rf $(d)/$(PF)/man
-	rm -f $(d)/$(PF)/lib/libiberty.a
+	rm -f $(d)/$(PF)/$(libdir)/libiberty.a
 	rm -f $(d)/$(PF)/bin/*{protoize,gcov,gccbug,gcc}
 
 	rm -rf $(d)/$(PF)/hppa64-linux-gnu/include
@@ -1729,7 +1739,7 @@
 	: # remove files not needed from the spu build
 	rm -rf $(d)/$(PF)/info
 	rm -rf $(d)/$(PF)/man
-	rm -f $(d)/$(PF)/lib/libiberty.a
+	rm -f $(d)/$(PF)/$(libdir)/libiberty.a
 	rm -f $(d)/$(PF)/bin/*{protoize,gcov,gccbug,gcc}
 
 	rm -rf $(d)/$(PF)/spu/include
@@ -2118,7 +2128,7 @@
 	: # remove files not needed
 	rm -rf $(d_spu)/$(PF)/info
 #	rm -rf $(d_spu)/$(PF)/man
-	rm -f $(d_spu)/$(PF)/lib/libiberty.a
+	rm -f $(d_spu)/$(PF)/$(libdir)/libiberty.a
 	rm -f $(d_spu)/$(PF)/bin/*{protoize,gcov,gccbug,gcc}
 
 #	rm -rf $(d_spu)/$(PF)/spu/include

# Begin bundle
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
/Q15bwFmQCtMCX4khLzP/xdyRThQkG32Co8=

Attachment: signature.asc
Description: Digital signature


Reply to: