mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-21 09:42:09 +00:00
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@mein.io>
This commit is contained in:
parent
7762c07c88
commit
b9aca834e8
@ -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 $@ \
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user