[Unstable][PATCH v2 3/3] UBUNTU: [Packaging] rules: Convert install-arch-headers to a stamped target

Juerg Haefliger juerg.haefliger at canonical.com
Mon Dec 16 11:03:31 UTC 2024


Currently, subsequent calls of the build-% target result in a rebuild of
the kernel. That is not good and also causes issues with DKMS modules
builds.

I.e., currently:

$ debian/rules build-generic | grep ^Debug
Debug: install-arch-headers
Debug: debian/stamps/stamp-prepare-indep
Debug: debian/stamps/stamp-install-headers
Debug: debian/stamps/stamp-prepare-perarch
Debug: debian/stamps/stamp-build-perarch
Debug: debian/stamps/stamp-prepare-tree-generic
Debug: config-prepare-check-generic
Debug: debian/stamps/stamp-prepare-generic
Debug: debian/stamps/stamp-build-generic
Debug: debian/stamps/stamp-install-generic
Debug: build-generic
$
$ debian/rules build-generic | grep ^Debug
Debug: install-arch-headers
Debug: debian/stamps/stamp-build-perarch
Debug: debian/stamps/stamp-build-generic
Debug: debian/stamps/stamp-install-generic
Debug: build-generic

This is because the dependency chain constains the phony
install-arch-headers target. To fix that, convert it to a stamped target
which runs only once. With this change, we get:

$ debian/rules build-generic | grep ^Debug
Debug: install-arch-headers
Debug: debian/stamps/stamp-prepare-indep
Debug: debian/stamps/stamp-install-headers
Debug: debian/stamps/stamp-prepare-perarch
Debug: debian/stamps/stamp-build-perarch
Debug: debian/stamps/stamp-prepare-tree-generic
Debug: config-prepare-check-generic
Debug: debian/stamps/stamp-prepare-generic
Debug: debian/stamps/stamp-build-generic
Debug: debian/stamps/stamp-install-generic
Debug: build-generic
$
$ debian/rules build-generic | grep ^Debug
Debug: build-generic

While at it, make headers_tmp a 'local' variable.

Signed-off-by: Juerg Haefliger <juerg.haefliger at canonical.com>
---
 debian/rules.d/2-binary-arch.mk | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index 4bc46a8b4066..5d487de0df91 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -501,11 +501,10 @@ ifneq ($(do_full_build),false)
 endif
 	$(stamp)
 
-headers_tmp := $(CURDIR)/debian/tmp-headers
 headers_dir := $(CURDIR)/debian/linux-libc-dev
 
-.PHONY: install-arch-headers
-install-arch-headers:
+$(stampdir)/stamp-install-arch-headers: headers_tmp = $(CURDIR)/debian/tmp-headers
+$(stampdir)/stamp-install-arch-headers:
 	@echo Debug: $@
 	dh_testdir
 	dh_testroot
@@ -515,6 +514,7 @@ install-arch-headers:
 	mkdir $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)
 	mv $(headers_dir)/usr/include/asm $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)/
 	rm -rf $(headers_tmp)
+	$(stamp)
 
 define dh_all
 	dh_installchangelogs -p$(1)
@@ -539,7 +539,7 @@ define dh_all_inline
 endef
 
 .PHONY: binary-arch-headers
-binary-arch-headers: install-arch-headers
+binary-arch-headers: $(stampdir)/stamp-install-arch-headers
 	@echo Debug: $@
 	dh_testdir
 	dh_testroot
@@ -642,7 +642,7 @@ ifeq ($(do_any_tools),true)
 endif
 	$(stamp)
 
-$(stampdir)/stamp-build-perarch: install-arch-headers $(stampdir)/stamp-prepare-perarch
+$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-install-arch-headers $(stampdir)/stamp-prepare-perarch
 	@echo Debug: $@
 ifeq ($(do_linux_tools),true)
 ifeq ($(do_tools_usbip),true)
-- 
2.43.0




More information about the kernel-team mailing list