Bug#804190: please support cross compiler builds without relying on binutils-multiarch
Source: gcc-5
Version: 5.2.1-22
Severity: wishlist
Tags: patch
User: helmutg@debian.org
Usertags: rebootstrap
Hi Matthias,
It would be nice if gcc supported cross compiler builds without relying
on binutils multiarch. When bootstrapping new architectures it may be
the case that the new architecture is not yet covered by
binutils-multiarch. Furthermore it seems odd that the cross compiler
builds would require both cross binutils and binutils-multiarch.
In practise, the only reason why gcc needs binutils-multiarch is because
dh_strip invokes binutils without a target triplet prefix. Other than
that binutils-multiarch is not used at all. So I am proposing the
attached patch that tells all relevant dh_strip invocations about the
target triplet such that it works with cross binutils.
Do you agree with the reasoning and the patch?
Helmut
diff -u gcc-5-5.2.1/debian/changelog gcc-5-5.2.1/debian/changelog
--- gcc-5-5.2.1/debian/changelog
+++ gcc-5-5.2.1/debian/changelog
@@ -1,3 +1,11 @@
+gcc-5 (5.2.1-22.1) UNRELEASED; urgency=low
+
+ * Non-maintainer upload.
+ * Support building cross compilers for architectures not covered by
+ binutils-multiarch. Closes: #-1.
+
+ -- Helmut Grohne <helmut@subdivi.de> Thu, 15 Oct 2015 23:56:53 +0200
+
gcc-5 (5.2.1-22) unstable; urgency=medium
* Update to SVN 20151010 (r228681, 5.2.1) from the gcc-5-branch.
diff -u gcc-5-5.2.1/debian/rules.d/binary-ada.mk gcc-5-5.2.1/debian/rules.d/binary-ada.mk
--- gcc-5-5.2.1/debian/rules.d/binary-ada.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-ada.mk
@@ -126,7 +126,7 @@
$(d_lgnat)/usr/share/lintian/overrides/$(p_lgnat)
endif
- dh_strip -p$(p_lgnat) --dbg-package=$(p_lgnat_dbg)
+ $(cross_strip) dh_strip -p$(p_lgnat) --dbg-package=$(p_lgnat_dbg)
dh_compress -p$(p_lgnat)
dh_fixperms -p$(p_lgnat)
$(cross_shlibdeps) dh_shlibdeps -p$(p_lgnat) \
@@ -174,7 +174,7 @@
$(usr_lib)/libgnatvsn.so.$(GNAT_VERSION) \
$(usr_lib)/libgnatvsn.so
debian/dh_doclink -p$(p_lgnatvsn_dev) $(p_glbase)
- dh_strip -p$(p_lgnatvsn_dev) -X.a --keep-debug
+ $(cross_strip) dh_strip -p$(p_lgnatvsn_dev) -X.a --keep-debug
dh_fixperms -p$(p_lgnatvsn_dev)
$(cross_gencontrol) dh_gencontrol -p$(p_lgnatvsn_dev) \
-- -v$(DEB_VERSION) $(common_substvars)
@@ -190,7 +190,7 @@
endif
$(dh_compat2) dh_movefiles -p$(p_lgnatvsn) $(usr_lib)/libgnatvsn.so.$(GNAT_VERSION)
debian/dh_doclink -p$(p_lgnatvsn) $(p_glbase)
- dh_strip -p$(p_lgnatvsn) --dbg-package=$(p_lgnatvsn_dbg)
+ $(cross_strip) dh_strip -p$(p_lgnatvsn) --dbg-package=$(p_lgnatvsn_dbg)
$(cross_makeshlibs) dh_makeshlibs -p$(p_lgnatvsn) \
-V '$(p_lgnatvsn) (>= $(DEB_VERSION))'
$(call cross_mangle_shlibs,$(p_lgnatvsn))
@@ -239,7 +239,7 @@
dh_link -p$(p_lgnatprj_dev) \
$(usr_lib)/libgnatprj.so.$(GNAT_VERSION) \
$(usr_lib)/libgnatprj.so
- dh_strip -p$(p_lgnatprj_dev) -X.a --keep-debug
+ $(cross_strip) dh_strip -p$(p_lgnatprj_dev) -X.a --keep-debug
debian/dh_doclink -p$(p_lgnatprj_dev) $(p_glbase)
dh_fixperms -p$(p_lgnatprj_dev)
$(cross_gencontrol) dh_gencontrol -p$(p_lgnatprj_dev) \
@@ -256,7 +256,7 @@
endif
$(dh_compat2) dh_movefiles -p$(p_lgnatprj) $(usr_lib)/libgnatprj.so.$(GNAT_VERSION)
debian/dh_doclink -p$(p_lgnatprj) $(p_glbase)
- dh_strip -p$(p_lgnatprj) --dbg-package=$(p_lgnatprj_dbg)
+ $(cross_strip) dh_strip -p$(p_lgnatprj) --dbg-package=$(p_lgnatprj_dbg)
dh_fixperms -p$(p_lgnatprj)
$(cross_makeshlibs) dh_makeshlibs -p$(p_lgnatprj) \
-V '$(p_lgnatprj) (>= $(DEB_VERSION))'
@@ -398,7 +398,7 @@
debian/dh_rmemptydirs -p$(p_gnat)
- dh_strip -p$(p_gnat)
+ $(cross_strip) dh_strip -p$(p_gnat)
dh_compress -p$(p_gnat)
dh_fixperms -p$(p_gnat)
find $(d_gnat) -name '*.ali' | xargs chmod 444
@@ -412,7 +412,7 @@
dh_builddeb -p$(p_gnat)
ifeq ($(with_gnatsjlj),yes)
- dh_strip -p$(p_gnatsjlj)
+ $(cross_strip) dh_strip -p$(p_gnatsjlj)
dh_compress -p$(p_gnatsjlj)
dh_fixperms -p$(p_gnatsjlj)
find $(d_gnatsjlj) -name '*.ali' | xargs chmod 444
diff -u gcc-5-5.2.1/debian/rules.d/binary-fortran.mk gcc-5-5.2.1/debian/rules.d/binary-fortran.mk
--- gcc-5-5.2.1/debian/rules.d/binary-fortran.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-fortran.mk
@@ -97,7 +97,7 @@
cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \
fi
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
@@ -137,7 +137,7 @@
debian/dh_doclink -p$(p_l) $(p_lbase)
debian/dh_rmemptydirs -p$(p_l)
- dh_strip -p$(p_l)
+ $(cross_strip) dh_strip -p$(p_l)
dh_compress -p$(p_l)
dh_fixperms -p$(p_l)
$(cross_shlibdeps) dh_shlibdeps -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libasan.mk gcc-5-5.2.1/debian/rules.d/binary-libasan.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libasan.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libasan.mk
@@ -35,7 +35,7 @@
cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \
fi
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libatomic.mk gcc-5-5.2.1/debian/rules.d/binary-libatomic.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libatomic.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libatomic.mk
@@ -30,7 +30,7 @@
debian/dh_doclink -p$(p_l) $(p_lbase)
debian/dh_doclink -p$(p_d) $(p_lbase)
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libcilkrts.mk gcc-5-5.2.1/debian/rules.d/binary-libcilkrts.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libcilkrts.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libcilkrts.mk
@@ -35,7 +35,7 @@
cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \
fi
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libgcc.mk gcc-5-5.2.1/debian/rules.d/binary-libgcc.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libgcc.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libgcc.mk
@@ -161,7 +161,7 @@
debian/dh_doclink -p$(2) $(p_lbase)
debian/dh_rmemptydirs -p$(2)
- dh_strip -p$(2)
+ $(cross_strip) dh_strip -p$(2)
dh_compress -p$(2)
$(cross_shlibdeps) dh_shlibdeps -p$(2)
$(call cross_mangle_substvars,$(2))
@@ -295,7 +295,7 @@
debian/dh_doclink -p$(p_d) $(if $(3),$(3),$(p_lbase))
debian/dh_rmemptydirs -p$(p_l)
debian/dh_rmemptydirs -p$(p_d)
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
# see Debian #533843 for the __aeabi symbol handling; this construct is
# just to include the symbols for dpkg versions older than 1.15.3 which
diff -u gcc-5-5.2.1/debian/rules.d/binary-libgccjit.mk gcc-5-5.2.1/debian/rules.d/binary-libgccjit.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libgccjit.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libgccjit.mk
@@ -42,7 +42,7 @@
debian/dh_doclink -p$(p_jitdev) $(p_base)
debian/dh_doclink -p$(p_jitdbg) $(p_base)
- dh_strip -p$(p_jitlib) --dbg-package=$(p_jitdbg)
+ $(cross_strip) dh_strip -p$(p_jitlib) --dbg-package=$(p_jitdbg)
dh_compress -p$(p_jitlib) -p$(p_jitdev) -p$(p_jitdbg)
dh_fixperms -p$(p_jitlib) -p$(p_jitdev) -p$(p_jitdbg)
$(cross_makeshlibs) dh_makeshlibs -p$(p_jitlib)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libgomp.mk gcc-5-5.2.1/debian/rules.d/binary-libgomp.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libgomp.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libgomp.mk
@@ -30,7 +30,7 @@
debian/dh_doclink -p$(p_l) $(p_lbase)
debian/dh_doclink -p$(p_d) $(p_lbase)
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libitm.mk gcc-5-5.2.1/debian/rules.d/binary-libitm.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libitm.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libitm.mk
@@ -30,7 +30,7 @@
debian/dh_doclink -p$(p_l) $(p_lbase)
debian/dh_doclink -p$(p_d) $(p_lbase)
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-liblsan.mk gcc-5-5.2.1/debian/rules.d/binary-liblsan.mk
--- gcc-5-5.2.1/debian/rules.d/binary-liblsan.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-liblsan.mk
@@ -35,7 +35,7 @@
cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \
fi
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libmpx.mk gcc-5-5.2.1/debian/rules.d/binary-libmpx.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libmpx.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libmpx.mk
@@ -37,7 +37,7 @@
cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \
fi
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libobjc.mk gcc-5-5.2.1/debian/rules.d/binary-libobjc.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libobjc.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libobjc.mk
@@ -65,7 +65,7 @@
debian/dh_doclink -p$(p_l) $(p_lbase)
debian/dh_doclink -p$(p_d) $(p_lbase)
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l) -Xlibobjc_gc.so
diff -u gcc-5-5.2.1/debian/rules.d/binary-libquadmath.mk gcc-5-5.2.1/debian/rules.d/binary-libquadmath.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libquadmath.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libquadmath.mk
@@ -30,7 +30,7 @@
debian/dh_doclink -p$(p_l) $(p_lbase)
debian/dh_doclink -p$(p_d) $(p_lbase)
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libstdcxx.mk gcc-5-5.2.1/debian/rules.d/binary-libstdcxx.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libstdcxx.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libstdcxx.mk
@@ -207,7 +207,7 @@
debian/dh_doclink -p$(p_l) $(p_lbase)
debian/dh_rmemptydirs -p$(p_l)
- dh_strip -p$(p_l) $(if $(filter rtlibs,$(DEB_STAGE)),,--dbg-package=$(1)-$(BASE_VERSION)-dbg$(cross_lib_arch))
+ $(cross_strip) dh_strip -p$(p_l) $(if $(filter rtlibs,$(DEB_STAGE)),,--dbg-package=$(1)-$(BASE_VERSION)-dbg$(cross_lib_arch))
dh_compress -p$(p_l)
dh_fixperms -p$(p_l)
@@ -244,7 +244,7 @@
$(if $(filter yes,$(with_lib$(2)cxx)),
cp -a $(d)/$(usr_lib$(2))/libstdc++.so.*[0-9] \
$(d_d)/$(usr_lib$(2))/.;
- dh_strip -p$(p_d) --keep-debug;
+ $(cross_strip) dh_strip -p$(p_d) --keep-debug;
$(if $(filter yes,$(with_common_libs)),, # if !with_common_libs
# remove the debug symbols for libstdc++
# built by a newer version of GCC
@@ -299,7 +299,7 @@
debian/dh_doclink -p$(p_l) $(p_lbase)
debian/dh_rmemptydirs -p$(p_l)
- dh_strip -p$(p_l)
+ $(cross_strip) dh_strip -p$(p_l)
dh_compress -p$(p_l)
dh_fixperms -p$(p_l)
dh_shlibdeps -p$(p_l) \
@@ -451,16 +451,16 @@
ifeq ($(with_libcxx),yes)
cp -a $(d)/$(usr_lib)/libstdc++.so.*[0-9] \
$(d_dbg)/$(usr_lib)/
- dh_strip -p$(p_dbg) --keep-debug
+ $(cross_strip) dh_strip -p$(p_dbg) --keep-debug
rm -f $(d_dbg)/$(usr_lib)/libstdc++.so.*[0-9]
endif
- dh_strip -p$(p_dev) --dbg-package=$(p_dbg)
+ $(cross_strip) dh_strip -p$(p_dev) --dbg-package=$(p_dbg)
ifneq ($(with_common_libs),yes)
: # remove the debug symbols for libstdc++ built by a newer version of GCC
rm -rf $(d_dbg)/usr/lib/debug/$(PF)
endif
- dh_strip -p$(p_pic)
+ $(cross_strip) dh_strip -p$(p_pic)
ifeq ($(with_cxxdev),yes)
debian/dh_rmemptydirs -p$(p_dev)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libtsan.mk gcc-5-5.2.1/debian/rules.d/binary-libtsan.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libtsan.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libtsan.mk
@@ -37,7 +37,7 @@
cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \
fi
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libubsan.mk gcc-5-5.2.1/debian/rules.d/binary-libubsan.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libubsan.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libubsan.mk
@@ -35,7 +35,7 @@
cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \
fi
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.d/binary-libvtv.mk gcc-5-5.2.1/debian/rules.d/binary-libvtv.mk
--- gcc-5-5.2.1/debian/rules.d/binary-libvtv.mk
+++ gcc-5-5.2.1/debian/rules.d/binary-libvtv.mk
@@ -35,7 +35,7 @@
cp debian/$(p_l).overrides debian/$(p_l)/usr/share/lintian/overrides/$(p_l); \
fi
- dh_strip -p$(p_l) --dbg-package=$(p_d)
+ $(cross_strip) dh_strip -p$(p_l) --dbg-package=$(p_d)
dh_compress -p$(p_l) -p$(p_d)
dh_fixperms -p$(p_l) -p$(p_d)
$(cross_makeshlibs) dh_makeshlibs -p$(p_l)
diff -u gcc-5-5.2.1/debian/rules.defs gcc-5-5.2.1/debian/rules.defs
--- gcc-5-5.2.1/debian/rules.defs
+++ gcc-5-5.2.1/debian/rules.defs
@@ -212,6 +212,7 @@
cross_gencontrol = DEB_HOST_ARCH=$(TARGET)
cross_makeshlibs = DEB_HOST_ARCH=$(TARGET)
cross_clean = DEB_HOST_ARCH=$(TARGET)
+ cross_strip = DEB_HOST_GNU_TYPE=$(DEB_TARGET_GNU_TYPE)
else
TARGET_ALIAS := $(DEB_TARGET_GNU_TYPE)
@@ -240,6 +241,7 @@
cross_gencontrol :=
cross_makeshlibs :=
cross_clean :=
+ cross_strip :=
endif
printarch:
diff -u gcc-5-5.2.1/debian/rules.conf gcc-5-5.2.1/debian/rules.conf
--- gcc-5-5.2.1/debian/rules.conf
+++ gcc-5-5.2.1/debian/rules.conf
@@ -213,7 +213,7 @@
endif
endif
ifeq ($(DEB_CROSS),yes)
- BINUTILS_BUILD_DEP = binutils$(TS) (>= $(BINUTILSBDV)), binutils-multiarch (>= $(BINUTILSBDV))
+ BINUTILS_BUILD_DEP = binutils$(TS) (>= $(BINUTILSBDV))
BINUTILSV := $(shell dpkg -l binutils$(TS) \
| awk '/^ii/{print $$3;exit}' | sed 's/-.*//')
else
Reply to: