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