[openwrt/openwrt] at91: fix image building with CONFIG_TARGET_MULTI_PROFILE

LEDE Commits lede-commits at lists.infradead.org
Wed Feb 14 06:47:58 PST 2018


jow pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/b9aca834e812efc9d0bb2701eab8c78f2efb0367

commit b9aca834e812efc9d0bb2701eab8c78f2efb0367
Author: Jo-Philipp Wich <jo at mein.io>
AuthorDate: Tue Feb 13 16:12:08 2018 +0100

    at91: fix image building with CONFIG_TARGET_MULTI_PROFILE
    
    The current image build code has a number of race conditions and interface
    contract violations in the custom image build steps:
    
     - Build/install-zImage, solely used by at91, relies on $(PROFILE_SANITIZED)
       which is not available when building with CONFIG_TARGET_MULTI_PROFILE
    
     - Build/at91-sdcard, which may run concurrently, creates scratch files at
       fixed locations and manipulates target files directly which can lead
       to file corruption and other unexpected failures
    
    Rename the install-zImage macro to at91-install-zImage and move it to the
    at91 image Makefile since this target is the sole user. Also utilize "$@"
    as output file name and switch the usage of $(PROFILE_SANITIZED) to
    $(DEVICE_NAME) in order to fix naming under multi profile builds.
    
    Fix the at91-sdcard macro to construct scratch file paths relative to "$@",
    which is guaranteed to be unique and store the final artifact output in "$@"
    as well, instead of inside $(BIN_DIR). The generic image build code takes
    care of moving a build steps "$@" output to the final destination in a
    concurrency-safe manner.
    
    Finally remove the broken install-zImage from the generic image-commands
    Makefile.
    
    Fixes: d7a679a036 ("at91: Install zImage.")
    Signed-off-by: Jo-Philipp Wich <jo at mein.io>
---
 include/image-commands.mk        |  5 -----
 target/linux/at91/image/Makefile |  6 +++++-
 target/linux/at91/image/sama5.mk | 15 +++++----------
 3 files changed, 10 insertions(+), 16 deletions(-)

diff --git a/include/image-commands.mk b/include/image-commands.mk
index adef8f2..555a9e5 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -113,11 +113,6 @@ define Build/install-dtb
 	)
 endef
 
-define Build/install-zImage
-    $(CP) $(KDIR)/zImage \
-      $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
-endef
-
 define Build/fit
 	$(TOPDIR)/scripts/mkits.sh \
 		-D $(DEVICE_NAME) -o $@.its -k $@ \
diff --git a/target/linux/at91/image/Makefile b/target/linux/at91/image/Makefile
index 1260707..ccaeebe 100644
--- a/target/linux/at91/image/Makefile
+++ b/target/linux/at91/image/Makefile
@@ -9,6 +9,10 @@ include $(INCLUDE_DIR)/image.mk
 
 KERNEL_LOADADDR := 0x20008000
 
+define Build/at91-install-zImage
+    $(CP) $(KDIR)/zImage $@
+endef
+
 ifeq ($(SUBTARGET),legacy)
 include ./legacy.mk
 endif
@@ -40,7 +44,7 @@ endef
 
 define Device/evaluation-zImage
   IMAGES += zImage
-  IMAGE/zImage := install-zImage
+  IMAGE/zImage := at91-install-zImage
 endef
 
 define Device/evaluation-dtb
diff --git a/target/linux/at91/image/sama5.mk b/target/linux/at91/image/sama5.mk
index b251d71..e51a0bc 100644
--- a/target/linux/at91/image/sama5.mk
+++ b/target/linux/at91/image/sama5.mk
@@ -16,24 +16,19 @@ define Build/at91-sdcard
         $(BIN_DIR)/u-boot-$(dts:at91-%=%)_mmc/u-boot.bin \
             ::u-boot.bin; \
      $(CP) $(BIN_DIR)/at91bootstrap-$(dts:at91-%=%)sd_uboot*/*.bin \
-         $(BIN_DIR)/BOOT.bin; \
-     mcopy -i $@.boot $(BIN_DIR)/BOOT.bin ::BOOT.bin;)
+         $@.BOOT.bin; \
+     mcopy -i $@.boot $@.BOOT.bin ::BOOT.bin;)
 
   ./gen_at91_sdcard_img.sh \
-      $(dir $@)$(IMG_PREFIX)-$(DEVICE_NAME)-sdcard.img \
+      $@.img \
       $@.boot \
       $(KDIR)/root.ext4 \
       $(AT91_SD_BOOT_PARTSIZE) \
       $(CONFIG_TARGET_ROOTFS_PARTSIZE)
 
-  gzip -nc9 $(dir $@)$(IMG_PREFIX)-$(DEVICE_NAME)-sdcard.img \
-         > $(dir $@)$(IMG_PREFIX)-$(DEVICE_NAME)-sdcard.img.gz
+  gzip -nc9 $@.img > $@
 
-  $(CP) $(dir $@)$(IMG_PREFIX)-$(DEVICE_NAME)-sdcard.img.gz \
-        $(BIN_DIR)/
-
-  rm -f $(BIN_DIR)/BOOT.bin
-  rm -f $@.boot
+  rm -f $@.img $@.boot $@.BOOT.bin
 endef
 
 define Device/evaluation-sdimage



More information about the lede-commits mailing list