On Thu, Mar 17, 2011 at 01:12:27AM -0700, Steve Langasek wrote: > Attached is a backport to gcc-4.4 of all my multiarch changes to date for > gcc-4.5.
Here is a further set of changes to be applied on top of the previous patch. The previous upload of multiarch gcc-4.4 to Ubuntu showed a couple of regressions: - build failure on powerpc, caused by conflicting, conditionally-applied patches on that architecture only - wrong multilib os dir being declared on 64-bit archs, contributing to a binutils misbuild because libiberty.a isn't in the expected directory (binutils uses gcc -print-multi-os-directory to decide its install path; this seems wrong to me, but the multilib os dir was wrong anyway.) The first issue only affects gcc-4.4 - the fix for this is taken from gcc-4.5. A cleanup of the second issue will be applied separately to gcc-4.5 and forwarded when it's ready. -- 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/ slanga...@ubuntu.com vor...@debian.org
# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: steve.langa...@linaro.org-20110319095056-\ # 2j1t8tvrsyb0s9b8 # target_branch: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-\ # 4.4 # testament_sha1: be39276da488554069597b83280f74cb2a669c75 # timestamp: 2011-03-19 02:51:30 -0700 # base_revision_id: svn-v4:6ca36cf4-e1d1-0310-8c6f-\ # e303bb2178ca:branches/sid/gcc-4.4:5125 # # Begin patch === modified file 'debian/changelog' --- debian/changelog 2011-03-17 12:13:01 +0000 +++ debian/changelog 2011-03-19 09:50:56 +0000 @@ -26,6 +26,18 @@ * debian/rules.defs: support turning on multiarch build by distribution. * debian/rules2: When DEB_HOST_MULTIARCH is available, use it as our multiarch path. + * rename debian/patches/powerpc-biarch.diff to + debian/patches/gcc-powerpc-nof.diff as in gcc-4.5 and apply + unconditionally to disable softfloat, to keep this change from being + mixed into the biarch32/biarch64/multiarch patches. + * debian/patches/gcc-multiarch+biarch.diff: restore the original intent of + the patch, namely, that the multilib dir for the default variant is + always equal to libdir (the multiarch dir), and we walk up the tree + to find lib<qual> for the secondary variant. + * debian/patches/gcc-multiarch+biarch32.diff: apply the same multilib + directory rewriting for biarch paths with multiarch as we do without; + still needed in the near term. This corrects a regression that leads to + a binutils misbuild. LP: #737887. -- Steve Langasek <vor...@debian.org> Thu, 17 Mar 2011 01:07:37 -0700 === modified file 'debian/patches/gcc-multiarch+biarch.diff' --- debian/patches/gcc-multiarch+biarch.diff 2011-03-17 12:13:01 +0000 +++ debian/patches/gcc-multiarch+biarch.diff 2011-03-19 09:50:56 +0000 @@ -4,17 +4,14 @@ =================================================================== --- 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 @@ +@@ -1,6 +1,6 @@ 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,.) ++MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,../lib64) . 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 @@ -23,7 +20,7 @@ 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,.) ++MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,../lib64) . LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib @@ -36,7 +33,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,.) ++MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,../lib64) . LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib @@ -46,10 +43,10 @@ +++ 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) + MULTILIB_EXCEPTIONS = + MULTILIB_EXCLUSIONS = +-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,../lib64) . + MULTILIB_MATCHES = softfp_wrap_start := '\#ifndef __powerpc64__' === added file 'debian/patches/gcc-multiarch+biarch32.diff' --- debian/patches/gcc-multiarch+biarch32.diff 1970-01-01 00:00:00 +0000 +++ debian/patches/gcc-multiarch+biarch32.diff 2011-03-19 09:50:56 +0000 @@ -0,0 +1,53 @@ +# DP: Use lib instead of lib64 as multilibdir on amd64, sparc64 and ppc64, +# DP: including when building for multiarch. + +Index: trunk/src/gcc/config/i386/t-linux64 +=================================================================== +--- trunk.orig/src/gcc/config/i386/t-linux64 ++++ trunk/src/gcc/config/i386/t-linux64 +@@ -7,7 +7,7 @@ + + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,../lib64) . ++MULTILIB_OSDIRNAMES = . $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib32),../../lib32,../lib32) + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib +Index: trunk/src/gcc/config/rs6000/t-linux64 +=================================================================== +--- trunk.orig/src/gcc/config/rs6000/t-linux64 ++++ trunk/src/gcc/config/rs6000/t-linux64 +@@ -19,7 +19,7 @@ + MULTILIB_EXTRA_OPTS = fPIC mstrict-align + MULTILIB_EXCEPTIONS = + MULTILIB_EXCLUSIONS = +-MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,../lib64) . ++MULTILIB_OSDIRNAMES = . $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib32),../../lib32,../lib32) + MULTILIB_MATCHES = + + softfp_wrap_start := '\#ifndef __powerpc64__' +Index: trunk/src/gcc/config/s390/t-linux64 +=================================================================== +--- trunk.orig/src/gcc/config/s390/t-linux64 ++++ trunk/src/gcc/config/s390/t-linux64 +@@ -1,6 +1,6 @@ + MULTILIB_OPTIONS = m64/m31 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,../lib64) . ++MULTILIB_OSDIRNAMES = . $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib32),../../lib32,../lib32) + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib +Index: trunk/src/gcc/config/sparc/t-linux64 +=================================================================== +--- trunk.orig/src/gcc/config/sparc/t-linux64 ++++ trunk/src/gcc/config/sparc/t-linux64 +@@ -1,6 +1,6 @@ + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib64),../../lib64,../lib64) . ++MULTILIB_OSDIRNAMES = . $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../../usr/lib32),../../lib32,../lib32) + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib === modified file 'debian/patches/gcc-multilib64dir.diff' --- debian/patches/gcc-multilib64dir.diff 2010-09-25 10:08:49 +0000 +++ debian/patches/gcc-multilib64dir.diff 2011-03-19 09:50:56 +0000 @@ -18,26 +18,15 @@ INSTALL_LIBGCC = install-multilib --- a/src/gcc/config/rs6000/t-linux64 +++ b/src/gcc/config/rs6000/t-linux64 -@@ -14,13 +14,13 @@ TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc - # it doesn't tell anything about the 32bit libraries on those systems. Set - # MULTILIB_OSDIRNAMES according to what is found on the target. - --MULTILIB_OPTIONS = m64/m32 msoft-float --MULTILIB_DIRNAMES = 64 32 nof -+MULTILIB_OPTIONS = m64/m32 -+MULTILIB_DIRNAMES = 64 32 +@@ -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_MATCHES = $(MULTILIB_MATCHES_FLOAT) -+MULTILIB_EXCEPTIONS = -+MULTILIB_EXCLUSIONS = -+MULTILIB_OSDIRNAMES = ../lib $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) -+MULTILIB_MATCHES = + MULTILIB_EXCEPTIONS = + MULTILIB_EXCLUSIONS = +-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) ++MULTILIB_OSDIRNAMES = ../lib $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) + MULTILIB_MATCHES = softfp_wrap_start := '\#ifndef __powerpc64__' - softfp_wrap_end := '\#endif' --- a/src/gcc/config/sparc/t-linux64 +++ b/src/gcc/config/sparc/t-linux64 @@ -1,6 +1,6 @@ === added file 'debian/patches/gcc-powerpc-nof.diff' --- debian/patches/gcc-powerpc-nof.diff 1970-01-01 00:00:00 +0000 +++ debian/patches/gcc-powerpc-nof.diff 2011-03-19 09:50:56 +0000 @@ -0,0 +1,24 @@ +# DP: Don't build nof multlib on powerpc. + +--- a/src/gcc/config/rs6000/t-linux64~ 2010-04-05 21:47:52.681086416 +0000 ++++ b/src/gcc/config/rs6000/t-linux64 2010-04-05 21:51:34.531670412 +0000 +@@ -31,13 +31,13 @@ + # it doesn't tell anything about the 32bit libraries on those systems. Set + # MULTILIB_OSDIRNAMES according to what is found on the target. + +-MULTILIB_OPTIONS = m64/m32 msoft-float +-MULTILIB_DIRNAMES = 64 32 nof ++MULTILIB_OPTIONS = m64/m32 ++MULTILIB_DIRNAMES = 64 32 + 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_MATCHES = $(MULTILIB_MATCHES_FLOAT) ++MULTILIB_EXCEPTIONS = ++MULTILIB_EXCLUSIONS = ++MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) ++MULTILIB_MATCHES = + + softfp_wrap_start := '\#ifndef __powerpc64__' + softfp_wrap_end := '\#endif' === removed file 'debian/patches/powerpc-biarch.diff' --- debian/patches/powerpc-biarch.diff 2009-03-29 13:51:22 +0000 +++ debian/patches/powerpc-biarch.diff 1970-01-01 00:00:00 +0000 @@ -1,28 +0,0 @@ -# DP: enable biarch for 32 bit compiler - ---- - gcc/config/rs6000/t-linux64 | 12 ++++++------ - 1 files changed, 6 insertions(+), 6 deletions(-) - ---- a/src/gcc/config/rs6000/t-linux64 -+++ b/src/gcc/config/rs6000/t-linux64 -@@ -14,13 +14,13 @@ TARGET_LIBGCC2_CFLAGS += -mno-minimal-toc - # it doesn't tell anything about the 32bit libraries on those systems. Set - # MULTILIB_OSDIRNAMES according to what is found on the target. - --MULTILIB_OPTIONS = m64/m32 msoft-float --MULTILIB_DIRNAMES = 64 32 nof -+MULTILIB_OPTIONS = m64/m32 -+MULTILIB_DIRNAMES = 64 32 - 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_MATCHES = $(MULTILIB_MATCHES_FLOAT) -+MULTILIB_EXCEPTIONS = -+MULTILIB_EXCLUSIONS = -+MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) -+MULTILIB_MATCHES = - - softfp_wrap_start := '\#ifndef __powerpc64__' - softfp_wrap_end := '\#endif' === modified file 'debian/rules.patch' --- debian/rules.patch 2011-03-17 12:13:01 +0000 +++ debian/rules.patch 2011-03-19 09:50:56 +0000 @@ -295,6 +295,8 @@ debian_patches += gcc-multiarch$(if $(with_linaro_branch),-linaro) +debian_patches += gcc-powerpc-nof + ifeq ($(biarch64),yes) ifeq (,$(findstring libjava, $(biarch_multidir_names))) debian_patches += libjava-nobiarch-check @@ -304,9 +306,6 @@ ifeq ($(DEB_CROSS),yes) debian_patches += cross-biarch endif - ifeq ($(DEB_TARGET_ARCH),powerpc) - debian_patches += powerpc-biarch - endif debian_patches += s390-biarch endif @@ -319,6 +318,12 @@ ifeq ($(with_multiarch_lib),yes) debian_patches += gcc-multiarch+biarch + ifeq ($(biarch32),yes) + debian_patches += gcc-multiarch+biarch32 + endif + ifneq (,$(findstring sparc64,$(DEB_TARGET_ARCH))) + debian_patches += gcc-multiarch+biarch32 + endif else ifeq ($(biarch32),yes) debian_patches += gcc-multilib64dir # Begin bundle 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 3sf/F3JFOFCQzKh0Kg==
signature.asc
Description: Digital signature