[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