[openwrt/openwrt] image: make images and artifacts dependent of initramfs

LEDE Commits lede-commits at lists.infradead.org
Mon Jul 8 04:23:29 PDT 2024


ansuel pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/cc6a0abcabf718df872c0f6876d1121d3dd09953

commit cc6a0abcabf718df872c0f6876d1121d3dd09953
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Mon Jul 8 13:10:52 2024 +0200

    image: make images and artifacts dependent of initramfs
    
    There is currently a BIG bug in how the images dependency is handled and
    recent Per Device Rootfs made this more clear and less statistical.
    
    There is currently no dependency between images/artifacts build with
    initramfs build. This cause whatever additional image that depends on an
    initramfs image to fail as it might happen that image and initramfs
    build are called at the same time and the additional image is called
    before initramfs build has finished.
    
    Each image-command assume the source image to be taken from the /bin
    directory but that is only copied from the /tmp directory only at the
    end of the process.
    
    Artifacts currently depends on image with the use of the
    BOARD-NAME-images Makefile target, but this is not the case for
    initramfs that also define a -images Makefile target but that is not
    accounted in images (that might depend on some initramfs images)
    
    To actually fix this, introduce a new Makefile target, -initramfs-images
    and make image and artifacts build to depend on this. Since initramfs
    images are optional, this dependency is actived only when initramfs
    image are built.
    
    With this change we correctly enforce the build order:
    - Initramfs Images (optional)
    - Images
    - Artifacts
    
    Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
---
 include/image.mk | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/image.mk b/include/image.mk
index be0682c44e..60bb01b9cb 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -538,7 +538,7 @@ define Device/Build/initramfs
     $(KDIR)/$$(KERNEL_INITRAMFS_NAME).$$(ROOTFS_ID/$(1)):: image_prepare target-dir-$$(ROOTFS_ID/$(1))
 	$(call Kernel/CompileImage/Initramfs,$(KDIR)/target-dir-$$(ROOTFS_ID/$(1)),.$$(ROOTFS_ID/$(1)))
   endif
-  $(1)-images: $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE))
+  $(1)-initramfs-images: $$(if $$(KERNEL_INITRAMFS),$(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE))
   $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
 	cp $$^ $$@
 
@@ -671,7 +671,7 @@ define Device/Build/image
   ifndef IB
     $$(ROOTFS/$(1)/$(3)): $(if $(TARGET_PER_DEVICE_ROOTFS),target-dir-$$(ROOTFS_ID/$(3)))
   endif
-  $(KDIR)/tmp/$(call DEVICE_IMG_NAME,$(1),$(2)): $$(KDIR_KERNEL_IMAGE) $$(ROOTFS/$(1)/$(3))
+  $(KDIR)/tmp/$(call DEVICE_IMG_NAME,$(1),$(2)): $$(KDIR_KERNEL_IMAGE) $$(ROOTFS/$(1)/$(3)) $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(3)-initramfs-images)
 	@rm -f $$@
 	[ -f $$(word 1,$$^) -a -f $$(word 2,$$^) ]
 	$$(call concat_cmd,$(if $(IMAGE/$(2)/$(1)),$(IMAGE/$(2)/$(1)),$(IMAGE/$(2))))
@@ -730,7 +730,7 @@ define Device/Build/artifact
 	  $(BUILD_DIR)/json_info_files/$(DEVICE_IMG_PREFIX)-$(1).json, \
 	  $(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1))
   $(eval $(call Device/Export,$(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1)))
-  $(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE) $(2)-images
+  $(KDIR)/tmp/$(DEVICE_IMG_PREFIX)-$(1): $$(KDIR_KERNEL_IMAGE) $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(2)-initramfs-images) $(2)-images
 	@rm -f $$@
 	$$(call concat_cmd,$(ARTIFACT/$(1)))
 




More information about the lede-commits mailing list