[debhelper-devel] Bug#671032: Bug#631427: gcc-4.6: FTBFS with GCC_TARGET

YunQiang Su wzssyqa at gmail.com
Fri Sep 12 02:34:48 UTC 2014


Control: reassign -1 gcc-4.9

On Tue, 01 May 2012 14:01:19 +0200 Matthias Klose <doko at debian.org> wrote:
> clone 631427 -1
> reassign -1 debhelper
> retitle -1 dh_strip should handle both host and target objects
> thanks
>
> On 23.06.2011 21:17, Adam Borowski wrote:
> > Package: src:gcc-4.6
> > Version: 4.6.0-14
> > Severity: normal
> >
> > Hi!
> >
> > When building a cross compiler, there are two problems:
> >
> > 1. hardcoded use of gcc-4.4 without a declared build-dependency.
>
> now uses gcc. You can't always rely on newer gcc versions for non primary or non
> secondary architectures.
>
> > 2. dh_strip is used both on objects for the build and host arch.  This does
> > not work.  You'd need to either:
> > a) call either native or cross strip appropriately
> > b) build-depend on binutils-multiarch
> > c) Loic Minier suggested there is some way to force dh_strip to do a),
> >    although for whatever reason it doesn't work in current unstable
>
> these packages can contain both code for the host and the target. dh_strip
> should either provide a way to handle these automatically, or accept an option
> for the strip binary to use (and then -X could be used to not strip some objects).
>
>

dh_strip can do it now with setting DEB_HOST_GNU_TYPE
The attached patch can fix this bug.

>
-------------- next part --------------
diff -u gcc-4.9-4.9.1/debian/rules.d/binary-d.mk gcc-4.9-4.9.1/debian/rules.d/binary-d.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-d.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-d.mk
@@ -117,7 +117,7 @@
 	debian/dh_doclink -p$(p_libphobos) $(p_base)
 endif
 
-	dh_strip -p$(p_libphobos)
+	$(cross_strip) dh_strip -p$(p_libphobos)
 	dh_compress -p$(p_libphobos)
 	dh_fixperms -p$(p_libphobos)
 	dh_shlibdeps -p$(p_libphobos)
diff -u gcc-4.9-4.9.1/debian/rules.d/binary-fortran.mk gcc-4.9-4.9.1/debian/rules.d/binary-fortran.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-fortran.mk
+++ gcc-4.9-4.9.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_base)
 	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-4.9-4.9.1/debian/rules.d/binary-go.mk gcc-4.9-4.9.1/debian/rules.d/binary-go.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-go.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-go.mk
@@ -101,7 +101,7 @@
 	debian/dh_doclink -p$(p_l) $(p_base)
 	debian/dh_doclink -p$(p_d) $(p_base)
 
-	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-4.9-4.9.1/debian/rules.d/binary-libasan.mk gcc-4.9-4.9.1/debian/rules.d/binary-libasan.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libasan.mk
+++ gcc-4.9-4.9.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-4.9-4.9.1/debian/rules.d/binary-libatomic.mk gcc-4.9-4.9.1/debian/rules.d/binary-libatomic.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libatomic.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-libatomic.mk
@@ -30,7 +30,7 @@
 	debian/dh_doclink -p$(p_l) $(p_base)
 	debian/dh_doclink -p$(p_d) $(p_base)
 
-	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-4.9-4.9.1/debian/rules.d/binary-libcilkrts.mk gcc-4.9-4.9.1/debian/rules.d/binary-libcilkrts.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libcilkrts.mk
+++ gcc-4.9-4.9.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-4.9-4.9.1/debian/rules.d/binary-libgcc.mk gcc-4.9-4.9.1/debian/rules.d/binary-libgcc.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libgcc.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-libgcc.mk
@@ -157,7 +157,7 @@
 	debian/dh_doclink -p$(2) $(p_base)
 	debian/dh_rmemptydirs -p$(2)
 
-	dh_strip -p$(2)
+	$(cross_strip) $(cross_strip) dh_strip -p$(2)
 	dh_compress -p$(2)
 	$(cross_shlibdeps) dh_shlibdeps -p$(2)
 	$(call cross_mangle_substvars,$(2))
@@ -285,7 +285,7 @@
 	debian/dh_doclink -p$(p_d) $(if $(3),$(3),$(p_base))
 	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-4.9-4.9.1/debian/rules.d/binary-libgomp.mk gcc-4.9-4.9.1/debian/rules.d/binary-libgomp.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libgomp.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-libgomp.mk
@@ -30,7 +30,7 @@
 	debian/dh_doclink -p$(p_l) $(p_base)
 	debian/dh_doclink -p$(p_d) $(p_base)
 
-	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-4.9-4.9.1/debian/rules.d/binary-libitm.mk gcc-4.9-4.9.1/debian/rules.d/binary-libitm.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libitm.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-libitm.mk
@@ -30,7 +30,7 @@
 	debian/dh_doclink -p$(p_l) $(p_base)
 	debian/dh_doclink -p$(p_d) $(p_base)
 
-	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-4.9-4.9.1/debian/rules.d/binary-liblsan.mk gcc-4.9-4.9.1/debian/rules.d/binary-liblsan.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-liblsan.mk
+++ gcc-4.9-4.9.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-4.9-4.9.1/debian/rules.d/binary-libobjc.mk gcc-4.9-4.9.1/debian/rules.d/binary-libobjc.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libobjc.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-libobjc.mk
@@ -65,7 +65,7 @@
 	debian/dh_doclink -p$(p_l) $(p_base)
 	debian/dh_doclink -p$(p_d) $(p_base)
 
-	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-4.9-4.9.1/debian/rules.d/binary-libquadmath.mk gcc-4.9-4.9.1/debian/rules.d/binary-libquadmath.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libquadmath.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-libquadmath.mk
@@ -30,7 +30,7 @@
 	debian/dh_doclink -p$(p_l) $(p_base)
 	debian/dh_doclink -p$(p_d) $(p_base)
 
-	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-4.9-4.9.1/debian/rules.d/binary-libstdcxx.mk gcc-4.9-4.9.1/debian/rules.d/binary-libstdcxx.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libstdcxx.mk
+++ gcc-4.9-4.9.1/debian/rules.d/binary-libstdcxx.mk
@@ -200,7 +200,7 @@
 	debian/dh_doclink -p$(p_l) $(p_base)
 	debian/dh_rmemptydirs -p$(p_l)
 
-	dh_strip -p$(p_l) --dbg-package=$(1)-$(BASE_VERSION)-dbg$(cross_lib_arch)
+	$(cross_strip) dh_strip -p$(p_l) --dbg-package=$(1)-$(BASE_VERSION)-dbg$(cross_lib_arch)
 	dh_compress -p$(p_l)
 	dh_fixperms -p$(p_l)
 
@@ -237,7 +237,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
@@ -291,7 +291,7 @@
 	debian/dh_doclink -p$(p_l) $(p_base)
 	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)
@@ -436,7 +436,7 @@
 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
 
diff -u gcc-4.9-4.9.1/debian/rules.d/binary-libtsan.mk gcc-4.9-4.9.1/debian/rules.d/binary-libtsan.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libtsan.mk
+++ gcc-4.9-4.9.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-4.9-4.9.1/debian/rules.d/binary-libubsan.mk gcc-4.9-4.9.1/debian/rules.d/binary-libubsan.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libubsan.mk
+++ gcc-4.9-4.9.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-4.9-4.9.1/debian/rules.d/binary-libvtv.mk gcc-4.9-4.9.1/debian/rules.d/binary-libvtv.mk
--- gcc-4.9-4.9.1/debian/rules.d/binary-libvtv.mk
+++ gcc-4.9-4.9.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-4.9-4.9.1/debian/rules.defs gcc-4.9-4.9.1/debian/rules.defs
--- gcc-4.9-4.9.1/debian/rules.defs
+++ gcc-4.9-4.9.1/debian/rules.defs
@@ -199,6 +199,7 @@
 
   lib_binaries := indep_binaries
   cross_shlibdeps =  DEB_HOST_ARCH=$(TARGET) ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something"
+  cross_strip = DEB_HOST_GNU_TYPE=$(DEB_TARGET_GNU_TYPE)
   cross_gencontrol = DEB_HOST_ARCH=$(TARGET)
   cross_makeshlibs = DEB_HOST_ARCH=$(TARGET)
   cross_clean = DEB_HOST_ARCH=$(TARGET)


More information about the debhelper-devel mailing list