← Back to team overview

cross-toolchain-base-devs team mailing list archive

Bug#1059786: cross-toolchain-base: Migrating linux-libc-dev

 

Control: tags -1 + patch

Hi Matthias,

On Mon, Jan 01, 2024 at 11:21:29AM +0100, Bastian Blank wrote:
> Since Linux 6.6, the linux-libc-dev package in Debian is arch-all and
> includes headers in the appropriate multiarch include paths for all
> actually existing Debian architectures.  Ubuntu also plans or already
> did that change as well.
> 
> To finish this transition (which actually does not include any file
> conflicts), I intend to make changes to linux-libc-dev and
> - add Provides to any linux-libc-dev-*-cross in 6.7,
> - add Breaks to any linux-libc-dev-*-cross in 6.8.
> 
> So after Linux 6.7 is in Trixie, you can remove building the
> linux-libc-dev-*-cross packages.

I looked into implementing this change for c-t-b and there was one major
question from my point of view: Should libc6-$arch-cross continue to
depend on linux-libc-dev-$arch-cross or should it be changed to
linux-libc-dev?

Keep:
 * No further changes necessary
 * linux-libc-dev being M-A:foreign technically is a lie. It doesn't
   actually provide kernel headers for all architectures, but only for
   some. For instance, ia64 support was recently removed and still
   linux-libc-dev is satisfied on ia64. The provides are more accurate.

Change:
 * linux-libc-dev could eventually get rid of those Provides.

I note that the Provides also help with architecture bootstrap. One can
rather immediately tell whether a given linux-libc-dev supports a
particular architecture by looking at these Provides. Hence I agreed
with Bastian that they should be kept.

And with that, the patch mostly becomes an exercise in deleting a bunch
of code.

Helmut
diff --minimal -Nru cross-toolchain-base-68/debian/control cross-toolchain-base-69/debian/control
--- cross-toolchain-base-68/debian/control
+++ cross-toolchain-base-69/debian/control
@@ -11,7 +11,7 @@
   binutils-source (>= 2.41-6~),
   glibc-source (>= 2.37-3~),
   gcc-12-source (>= 12.3.0-11~), g++-12 (>= 12.3.0-11~),
-  linux-source-6.5 (>= 6.5.8), linux-libc-dev (>= 6.5.8),
+  linux-libc-dev (>= 6.5.8),
   autoconf (>= 2.69), autoconf2.69, autogen,
   automake, bison (>= 1:2.3), chrpath, debhelper-compat (= 13),
   dpkg-dev (>= 1.15.3.1), fakeroot, file, flex,
@@ -27,105 +27,9 @@
   libjansson-dev, pkg-config,
 Build-Conflicts: dpkg-cross, libdebian-dpkgcross-perl,
   binutils-x86-64-linux-gnu [!amd64], binutils-i686-linux-gnu [!i386], binutils-s390x-linux-gnu [!s390x], binutils-powerpc64le-linux-gnu [!ppc64el], binutils-aarch64-linux-gnu [!arm64], binutils-arm-linux-gnueabihf [!armhf], binutils-arm-linux-gnueabi [!armel], binutils-riscv64-linux-gnu [!riscv64],
-  libc6-amd64-cross, linux-libc-dev-amd64-cross, libc6-i386-cross, linux-libc-dev-i386-cross, libc6-s390x-cross, linux-libc-dev-s390x-cross, libc6-ppc64el-cross, linux-libc-dev-ppc64el-cross, libc6-arm64-cross, linux-libc-dev-arm64-cross, libc6-armhf-cross, linux-libc-dev-armhf-cross, libc6-armel-cross, linux-libc-dev-armel-cross, libc6-riscv64-cross, linux-libc-dev-riscv64-cross,
+  libc6-amd64-cross, libc6-i386-cross, libc6-s390x-cross, libc6-ppc64el-cross, libc6-arm64-cross, libc6-armhf-cross, libc6-armel-cross, libc6-riscv64-cross,
   libc6-amd64 [i386 x32], libc6-i386 [amd64 x32], libc6-x32 [amd64 i386]
 
-Package: linux-libc-dev-amd64-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-amd64-cross, linux-libc-dev-amd64-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
-
-Package: linux-libc-dev-arm64-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-arm64-cross, linux-libc-dev-arm64-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
-
-Package: linux-libc-dev-armel-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-armel-cross, linux-libc-dev-armel-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
-
-Package: linux-libc-dev-armhf-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-armhf-cross, linux-libc-dev-armhf-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
-
-Package: linux-libc-dev-i386-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-i386-cross, linux-libc-dev-i386-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
-
-Package: linux-libc-dev-ppc64el-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-ppc64el-cross, linux-libc-dev-ppc64el-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
-
-Package: linux-libc-dev-riscv64-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-riscv64-cross, linux-libc-dev-riscv64-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
-
-Package: linux-libc-dev-s390x-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-s390x-cross, linux-libc-dev-s390x-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
-
 Package: libc6-amd64-cross
 Architecture: all
 Multi-Arch: foreign
diff --minimal -Nru cross-toolchain-base-68/debian/control.linux-libc-dev.in cross-toolchain-base-69/debian/control.linux-libc-dev.in
--- cross-toolchain-base-68/debian/control.linux-libc-dev.in
+++ cross-toolchain-base-69/debian/control.linux-libc-dev.in
@@ -1,12 +0,0 @@
-
-Package: linux-libc-dev-CROSS_ARCH-cross
-Architecture: all
-Multi-Arch: foreign
-Depends: ${misc:Depends}
-Provides: linux-kernel-headers-CROSS_ARCH-cross, linux-libc-dev-CROSS_ARCH-dcv1
-Built-Using: ${bu:linux}
-Description: Linux Kernel Headers for development (for cross-compiling)
- This package provides headers from the Linux kernel.  These headers
- are used by the installed headers for GNU glibc and other system
- libraries. They are NOT meant to be used to build third-party modules for
- your kernel. Use linux-headers-* packages for that.
diff --minimal -Nru cross-toolchain-base-68/debian/control.source.in cross-toolchain-base-69/debian/control.source.in
--- cross-toolchain-base-68/debian/control.source.in
+++ cross-toolchain-base-69/debian/control.source.in
@@ -11,7 +11,7 @@
   binutils-source (>= MIN_VER_BINUTILS),
   glibc-source (>= MIN_VER_GLIBC),
   gcc-VER_GCC_BASE-source (>= MIN_VER_GCC), g++-VER_GCC_BASE (>= MIN_VER_GCC),
-  linux-source-VER_LINUX (>= MIN_VER_LINUX), linux-libc-dev (>= MIN_VER_LINUX),
+  linux-libc-dev (>= MIN_VER_LINUX),
   autoconf (>= 2.69), autoconf2.69, autogen,
   automake, bison (>= 1:2.3), chrpath, debhelper-compat (= 13),
   dpkg-dev (>= 1.15.3.1), fakeroot, file, flex,
diff --minimal -Nru cross-toolchain-base-68/debian/new_cross_version.sh cross-toolchain-base-69/debian/new_cross_version.sh
--- cross-toolchain-base-68/debian/new_cross_version.sh
+++ cross-toolchain-base-69/debian/new_cross_version.sh
@@ -11,26 +11,10 @@
 cross=c
 cross=cross
 
-v_deb_linux=$(apt-cache policy linux-libc-dev | awk '/^ \*\*\*/ {print $2}')
 v_deb_glibc=$(dpkg-parsechangelog -l/usr/src/glibc/debian/changelog | egrep '^Version:' | cut -f 2 -d ' ')
 
-v_deb_linux_cross=$(apt-cache show --no-all-versions linux-libc-dev-$arch-cross 2>/dev/null | awk '/^Version:/ {print $2}')
-v_deb_glibc_cross=$(apt-cache show --no-all-versions libc6-$arch-cross 2>/dev/null | awk '/^Version/ {print $2}')
-
-echo >&2 "linux: $v_deb_linux / $v_deb_linux_cross"
 echo >&2 "glibc: $v_deb_glibc / $v_deb_glibc_cross"
 
-if [ -n "$v_deb_linux_cross" ]; then
-    v_deb_linux_cross_v=$(echo $v_deb_linux_cross | sed 's/\(.*\)c[ros]*.*/\1/')
-    v_deb_linux_cross_c=$(echo $v_deb_linux_cross | sed 's/.*c[ros]*\(.*\)/\1/')
-    case "$v_deb_linux_cross_c=" in
-	*.*) v_deb_linux_cross_c=$(echo $v_deb_linux_cross_c | awk -F. '{print $1}')
-    esac				
-else
-    v_deb_linux_cross_v=$v_deb_linux
-    v_deb_linux_cross_c=0
-fi
-
 if [ -n "$v_deb_glibc_cross" ]; then
     v_deb_glibc_cross_v=$(echo $v_deb_glibc_cross | sed 's/\(.*\)c[ros].*/\1/')
     v_deb_glibc_cross_c=$(echo $v_deb_glibc_cross | sed 's/.*c[ros]*\(.*\)/\1/')
@@ -43,29 +27,15 @@
 fi
 
 echo >&2 ""
-echo >&2 "old linux version: $v_deb_linux_cross_v / $v_deb_linux_cross_c"
 echo >&2 "old glibc version: $v_deb_glibc_cross_v / $v_deb_glibc_cross_c"
 
-if dpkg --compare-versions $v_deb_linux gt $v_deb_linux_cross_v; then
-    v_linux_new_c=1
-else
-    v_linux_new_c=$(expr $v_deb_linux_cross_c + 1)
-fi
-
 if dpkg --compare-versions $v_deb_glibc gt $v_deb_glibc_cross_v; then
     v_glibc_new_c=1
 else
     v_glibc_new_c=$(expr $v_deb_glibc_cross_c + 1)
 fi
 
-if dpkg --compare-versions $v_linux_new_c gt $v_glibc_new_c; then
-    v_new_c=$v_linux_new_c
-else
-    v_new_c=$v_glibc_new_c
-fi
-
 echo >&2 ""
-echo >&2 "new linux version: ${v_deb_linux}${cross}${v_new_c}"
 echo >&2 "new glibc version: ${v_deb_glibc}${cross}${v_new_c}"
 
 echo $v_new_c
diff --minimal -Nru cross-toolchain-base-68/debian/rules cross-toolchain-base-69/debian/rules
--- cross-toolchain-base-68/debian/rules
+++ cross-toolchain-base-69/debian/rules
@@ -62,13 +62,12 @@
 CROSS_PKG_GNU_TYPE = $(subst _,-,$(call _gnu_type,${CROSS_ARCH}))
 
 MIN_VER_GLIBC		:= 2.37-3~
-MIN_VER_LINUX		:= 6.5.8
+MIN_VER_LINUX		:= 6.6.4
 MIN_VER_GCC		:= 12.3.0-11~
 MIN_VER_BINUTILS	:= 2.41-6~
 VER_GCC_BASE		:= 12
 libgcc_base		:= gcc-s
 
-DEB_VER_LINUX  := $(shell apt-cache policy linux-libc-dev | awk '/^ \*\*\*/ {print $$2}')
 ifeq ($(vendor),Ubuntu)
   MIN_VER_GLIBC	:= 2.38-0~
   MIN_VER_LINUX	:= 6.5.0
@@ -91,12 +90,9 @@
 VER_GLIBC        := $(shell dpkg-parsechangelog -SVersion -l/usr/src/glibc/debian/changelog | cut -f 1 -d '-')
 DEB_VER_GLIBC    := $(shell dpkg-parsechangelog -SVersion -l/usr/src/glibc/debian/changelog)
 
-LINUX_BUILT_USING := linux (= $(shell echo $(DEB_VER_LINUX) | sed 's/+.*$$//'))
-GLIBC_BUILT_USING := binutils (= $(DEB_VER_BINUTILS)), linux (= $(shell echo $(DEB_VER_LINUX) | sed 's/+.*$$//')), gcc-$(VER_GCC_BASE) (= $(DEB_VER_GCC)), glibc (= $(DEB_VER_GLIBC))
-
-control_vars = '-Vbu:linux=$(LINUX_BUILT_USING)' '-Vbu:glibc=$(GLIBC_BUILT_USING)'
+GLIBC_BUILT_USING := binutils (= $(DEB_VER_BINUTILS)), gcc-$(VER_GCC_BASE) (= $(DEB_VER_GCC)), glibc (= $(DEB_VER_GLIBC))
 
-CTB_LIBC_DEV_DEPENDS = linux-libc-dev (>= $(DEB_VER_LINUX))
+control_vars = '-Vbu:glibc=$(GLIBC_BUILT_USING)'
 
 BINUTILS_DIR  := /usr/src/binutils
 GLIBC_DIR     := /usr/src/glibc
@@ -110,7 +106,7 @@
 
 # FIXME: No conflict for the host == cross case ...
 BINUTILS_BUILD_CONFLICTS = $(foreach a,$(CROSS_ARCHS),binutils-$(subst _,-,$(call _gnu_type,$(a))) [!$(a)]$(,))
-GLIBC_BUILD_CONFLICTS = $(foreach a,$(CROSS_ARCHS),libc6-$(a)-cross$(,) linux-libc-dev-$(a)-cross$(,))
+GLIBC_BUILD_CONFLICTS = $(foreach a,$(CROSS_ARCHS),libc6-$(a)-cross$(,))
 
 # taken from gcc packaging
 define unpack_tarball
@@ -121,7 +117,7 @@
 	@echo "Binutils version:         ${VER_BINUTILS}	${DEB_VER_BINUTILS}	${PKG_VER_BINUTILS}"
 	@echo "GCC version:              ${VER_GCC}       	${DEB_VER_GCC}          ${VER_GCC_BASE}"
 	@echo "Glibc version:            ${VER_GLIBC}  		${DEB_VER_GLIBC}"
-	@echo "Linux version:            ${VER_LINUX}   	${DEB_VER_LINUX}"
+	@echo "Linux version:            ${VER_LINUX}"
 	@echo
 	@echo "Target architecture:      ${CROSS_ARCH}"
 	@echo "Target GNU type:          ${CROSS_GNU_TYPE}"
@@ -129,7 +125,6 @@
 	@echo "Host GNU type:            ${HOST_GNU_TYPE}"
 	@echo
 	@echo "Built using information:"
-	@echo '  linux: $(LINUX_BUILT_USING)'
 	@echo '  glibc: $(GLIBC_BUILT_USING)'
 	@echo
 	@echo "New versions: $(DEB_LINUX_GLIBC)$(CROSS_EXT) / $(DEB_VER_GLIBC)$(CROSS_EXT)"
@@ -139,50 +134,7 @@
 	mkdir -p $(foreach arch,$(CROSS_ARCHS),debian/tmp.$(arch))
 	touch $@
 
-init: $(stamp)init-linux
-
-$(stamp)init-linux:
-	@echo START $@
-	rm -rf linux-source-[45].*
-	$(call unpack_tarball, $(firstword $(wildcard /usr/src/linux-source-$(VER_LINUX).tar.* /usr/src/linux-source-$(VER_LINUX)/linux-source-$(VER_LINUX).tar.*)))
-	touch $@
-
-$(stamp)build-linux.%: $(stamp)init-linux
-	@echo START $@
-	$(MAKE) -C linux-source-$(VER_LINUX) headers_install \
-	  ARCH=$(KERNEL_ARCH) \
-	  INSTALL_HDR_PATH=$(CURDIR)/debian/tmp.$(CROSS_ARCH)/usr
-	touch $@
-
-p_lld = linux-libc-dev-$(CROSS_ARCH)-cross
-
-$(stamp)install-linux.%: $(stamp)build-linux.% $(stamp)init-dirs
-	@echo START $@
-	rm -rf debian/$(p_lld)
-	dh_installdirs -p$(p_lld) \
-	  usr/share/doc/$(p_lld) \
-	  usr/share/lintian/overrides \
-	  usr/$(CROSS_GNU_TYPE)
-	cp -a debian/tmp.$(CROSS_ARCH)/usr/include \
-	  debian/$(p_lld)/usr/$(CROSS_GNU_TYPE)/.
-	rm -rf debian/$(p_lld)/usr/$(CROSS_GNU_TYPE)/{drm,scsi} ;\
-	rm -f `find debian/$(p_lld)/usr/$(CROSS_GNU_TYPE) -name .install`
-	rm -f `find debian/$(p_lld)/usr/$(CROSS_GNU_TYPE) -name ..install.cmd`
-
-	( \
-	  echo "$(p_lld) binary: non-standard-dir-in-usr"; \
-	  echo "$(p_lld) binary: wrong-name-for-changelog-of-native-package" \
-	) >> debian/$(p_lld)/usr/share/lintian/overrides/linux-libc-dev-${CROSS_ARCH}-cross
-
-	cp -p /usr/share/doc/linux-source-$(VER_LINUX)/copyright \
-	  debian/$(p_lld)/usr/share/doc/$(p_lld)/.
-	zcat /usr/share/doc/linux-source-$(VER_LINUX)/changelog.Debian.gz \
-	  > debian/$(p_lld)/usr/share/doc/$(p_lld)/changelog.Debian.linux
-	gzip -9n debian/$(p_lld)/usr/share/doc/$(p_lld)/changelog.Debian.linux
-	cp debian/changelog debian/$(p_lld)/usr/share/doc/$(p_lld)/changelog.Debian
-	gzip -9n debian/$(p_lld)/usr/share/doc/$(p_lld)/changelog.Debian
-
-	touch $@
+init:
 
 define init_binutils
 	$(call unpack_tarball, ${BINUTILS_DIR}/binutils-${VER_BINUTILS}.tar.xz)
@@ -363,7 +315,7 @@
 #	fi
 	touch $@
 
-$(stamp)build-glibc2.%: $(stamp)init-glibc $(stamp)install-gcc1.% $(stamp)install-linux.%
+$(stamp)build-glibc2.%: $(stamp)init-glibc $(stamp)install-gcc1.%
 	@echo START $@
 # FIXME: why debian/libgcc1-armel-cross?
 	cd glibc-${VER_GLIBC} && \
@@ -377,7 +329,6 @@
 	  PKG_IGNORE_CURRENTLY_BUILDING=1 \
 	  BACKPORT=false \
 	  DEB_BUILD_OPTIONS="$(DEB_BUILD_OPTIONS) nocheck" \
-	  CTB_LIBC_DEV_DEPENDS='$(CTB_LIBC_DEV_DEPENDS)' \
 	  fakeroot dpkg-buildpackage -B -uc -us -a${CROSS_ARCH} -d -Pstage2
 	: # FIXME: a libc6.1-alphaev67 package is built on alpha
 	$(if $(filter $(CROSS_ARCH),alpha),  rm -f libc6.1-alphaev67*.deb)
@@ -409,8 +360,6 @@
 	dh_clean
 
 # using wildcard for DEB_LIST_ALL gave only problems
-DEB_LIST_UNMANGLED = $(foreach a,$(CROSS_ARCHS), \
-	linux-libc-dev-$(a)-cross_${DEB_VER_LINUX}*_all.deb)
 DEB_LIST_MANGLED = $(foreach a,$(CROSS_ARCHS), \
 	libc$(if $(filter $(a),alpha ia64),6.1,6)-$(a)-cross_${VER_GLIBC}-*_all.deb \
 	libc$(if $(filter $(a),alpha ia64),6.1,6)-dev-$(a)-cross_${VER_GLIBC}-*_all.deb)
@@ -554,7 +503,6 @@
 # - I want libgcc1 to contain changelog etc which normally are in gcc-${VER_GCC_BASE}-*-base package
 # - libgcc1(-dbg) should depend on proper version libgcc1 (epoch hardcoded)
 # - libgcc1-dbg needs to have doc symlink to libgcc1
-# - linux-libc-dev gets copyright and changelog
 # - libc6 gets copyright and changelog
 # - libc6 gets dependencies removed (no dependency on libgcc1)
 # - libc6-dev-armhf-cross ships symlink to /usr/arm-linux-gnueabi/lib/hf for multilib cross compiler
@@ -738,11 +686,6 @@
 	     $$tmp/usr/share/doc/lib$(libgcc_base)1-$${cross_arch}-cross/changelog.Debian.gcc-${VER_GCC_BASE}.gz; \
 	  gzip -cn9 debian/changelog > $$tmp/usr/share/doc/lib$(libgcc_base)1-$${cross_arch}-cross/changelog.Debian.gz;\
 	fi; \
-	if [ 'linux-libc-dev-$${cross_arch}-cross' = $$pkgname ]; then \
-	  mkdir -p $$tmp/usr/share/doc/$$pkgname; \
-	  cp repackfiles/linux.$${cross_arch}/usr/share/doc/linux-libc-dev/copyright $$tmp/usr/share/doc/$$pkgname; \
-	  cp repackfiles/linux.$${cross_arch}/usr/share/doc/linux-libc-dev/changelog.Debian.gz $$tmp/usr/share/doc/$$pkgname; \
-	fi; \
 	if [ 'libc6-armel-cross' = $$pkgname ]; then \
 	  sed -i -e'/^Depends/d' $$tmp/DEBIAN/control; \
 	fi; \
@@ -786,8 +729,6 @@
 
 $(stamp)repack-debs-indep: $(stamp)dpkg-cross
 	@echo START $@
-#	install -d repackfiles/linux
-#	dpkg-deb -x linux-libc-dev_${DEB_VER_LINUX}_${CROSS_ARCH}.deb repackfiles/linux
 	$(foreach a,$(CROSS_ARCHS), \
 	  install -d repackfiles/glibc.$(a); \
 	  dpkg-deb -x libc$(if $(filter $(a),alpha ia64),6.1,6)_${DEB_VER_GLIBC}_$(a).deb  repackfiles/glibc.$(a);)
@@ -926,18 +867,10 @@
 	touch $@
 
 
-linux_debs = $(foreach arch,$(CROSS_ARCHS), -plinux-libc-dev-${arch}-cross)
-
 binary: binary-arch binary-indep
 binary-arch:  build-arch
 binary-indep: build $(stamp)dpkg-cross $(stamp)mangle-debian-files-indep
 	@echo START $@
-	dh_compress $(linux_debs)
-	dh_fixperms $(linux_debs)
-	dh_installdeb $(linux_debs)
-	dh_gencontrol $(linux_debs) -- -v$(DEB_VER_LINUX)$(CROSS_EXT) $(control_vars)
-	dh_md5sums $(linux_debs)
-	dh_builddeb $(linux_debs)
 
 $(stamp)debian-files-base:
 	@echo START $@
@@ -962,7 +895,7 @@
 	  sed -i -e "/^libc/s/_${arch}.deb/$(CROSS_EXT)_${arch}.deb/g" debian/files;)
 	sed -i -e "/^libc/s/$(CROSS_EXT)$(CROSS_EXT)/$(CROSS_EXT)/g" debian/files
 
-: # glibc packages only, linux-libc-dev doesn't need dpkg-cross
+: # glibc packages only
 $(stamp)dc-%: build
 	@echo START $@
 	@set -e; \
@@ -1012,7 +945,6 @@
 	    -e "s/BINUTILS_BUILD_CONFLICTS/$(BINUTILS_BUILD_CONFLICTS)/g" \
 	    -e "s/GLIBC_BUILD_CONFLICTS/$(GLIBC_BUILD_CONFLICTS)/g" \
 	  debian/control.source.in; \
-	  $(foreach a,$(sort $(CROSS_ARCHS)),sed -e "s/CROSS_ARCH/$(a)/g" debian/control.linux-libc-dev.in;) \
 	  $(foreach a,$(sort $(CROSS_ARCHS)),sed -e "s/CROSS_ARCH/$(a)/g; s/LIBC_VER/$(if $(filter $(a),alpha ia64),6.1,6)/" debian/control.libc.in;) \
 	) > debian/control
 
@@ -1130,9 +1062,6 @@
 
 
 .PRECIOUS: $(stamp)init-dirs \
-	$(stamp)init-linux \
-	$(stamp)build-linux.% \
-	$(stamp)install-linux.% \
 	$(stamp)init-binutils \
 	$(stamp)build-binutils.% \
 	$(stamp)install-binutils.% \

References