ar71xx: fix legacy image building

After the conversion from legacy device profiles to the newer profile
information embedded in the image building code, the legacy recipes got
triggered twice with different eval depths, leading to shell syntax errors
when processing certain images.

The double processing was caused by the remaining Image/Build macro in
legacy.mk which serves as main entry point for the new style image build code
in conjunction with the newly introduced LegacyDevice/* macros which caused
the legacy image build fallback code to kick in.

In order to fix the issue, rework all legacy macros to work under the legacy
image build wrapper and remove the Image/Build macro of legacy.mk to prevent
legacy profiles getting executed in the context of the new build code.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
lede-17.01
Jo-Philipp Wich 2016-06-24 13:32:22 +02:00
parent 819cf75c40
commit 59e98b27c9
1 changed files with 14 additions and 20 deletions

View File

@ -146,16 +146,16 @@ endif
# $(6): padding size. # $(6): padding size.
define CatFiles define CatFiles
if [ $(2) -eq 0 ]; then \ if [ $(2) -eq 0 ]; then \
filename="$(3)"; fstype=$$$${filename##*\.}; \ filename="$(3)"; fstype=$${filename##*\.}; \
case "$$$${fstype}" in \ case "$${fstype}" in \
"jffs2-64k") bs=65536;; \ "jffs2-64k") bs=65536;; \
"jffs2-128k") bs=131072;; \ "jffs2-128k") bs=131072;; \
"jffs2-256k") bs=262144;; \ "jffs2-256k") bs=262144;; \
*) bs=`stat -c%s $(1)`;; \ *) bs=`stat -c%s $(1)`;; \
esac; \ esac; \
( dd if=$(1) bs=$$$${bs} conv=sync; cat $(3) ) > $(5); \ ( dd if=$(1) bs=$${bs} conv=sync; cat $(3) ) > $(5); \
if [ -n "$(6)" ]; then \ if [ -n "$(6)" ]; then \
case "$$$${fstype}" in \ case "$${fstype}" in \
squashfs*) \ squashfs*) \
padjffs2 $(5) $(6); \ padjffs2 $(5) $(6); \
;; \ ;; \
@ -357,7 +357,7 @@ endef
define Image/Build/CameoAP94 define Image/Build/CameoAP94
$(eval fwsize=$(call mtdpartsize,firmware,$(4))) $(eval fwsize=$(call mtdpartsize,firmware,$(4)))
$(eval fwsize_fat=$(call mtdpartsize,firmware,$(5))) $(eval fwsize_fat=$(call mtdpartsize,firmware,$(5)))
$(call Sysupgrade/KRuImage,$(1),$(2),0,$$$$(($(fwsize)-4*64*1024)),64) $(call Sysupgrade/KRuImage,$(1),$(2),0,$$(($(fwsize)-4*64*1024)),64)
if [ -e "$(call sysupname,$(1),$(2))" ]; then \ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
( \ ( \
dd if=$(call sysupname,$(1),$(2)); \ dd if=$(call sysupname,$(1),$(2)); \
@ -372,7 +372,7 @@ define Image/Build/CameoAP94
) > $(call factoryname,$(1),$(2)); \ ) > $(call factoryname,$(1),$(2)); \
fi; \ fi; \
fi fi
$(call CatFiles,$(KDIR_TMP)/vmlinux-$(2)-fat.uImage,0,$(KDIR)/root.$(1),$$$$(($(fwsize_fat)-4*64*1024)),$(KDIR_TMP)/$(2)-fat.bin,64) $(call CatFiles,$(KDIR_TMP)/vmlinux-$(2)-fat.uImage,0,$(KDIR)/root.$(1),$$(($(fwsize_fat)-4*64*1024)),$(KDIR_TMP)/$(2)-fat.bin,64)
if [ -e "$(KDIR_TMP)/$(2)-fat.bin" ]; then \ if [ -e "$(KDIR_TMP)/$(2)-fat.bin" ]; then \
echo -n "" > $(KDIR_TMP)/$(2)-fat.dummy; \ echo -n "" > $(KDIR_TMP)/$(2)-fat.dummy; \
sh $(TOPDIR)/scripts/combined-image.sh \ sh $(TOPDIR)/scripts/combined-image.sh \
@ -383,7 +383,7 @@ define Image/Build/CameoAP94
endef endef
define Image/Build/WZRHP define Image/Build/WZRHP
$(call Sysupgrade/KRuImage,$(1),$(2),0,$$$$(($(3)-4*$(4)*1024)),$(4)) $(call Sysupgrade/KRuImage,$(1),$(2),0,$$(($(3)-4*$(4)*1024)),$(4))
if [ -e "$(call sysupname,$(1),$(2))" ]; then \ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
( \ ( \
echo -n -e "# Airstation Public Fmt1\x00\x00\x00\x00\x00\x00\x00\x00"; \ echo -n -e "# Airstation Public Fmt1\x00\x00\x00\x00\x00\x00\x00\x00"; \
@ -413,7 +413,7 @@ Image/Build/WHRHPG300N/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(4))
define Image/Build/WHRHPG300N define Image/Build/WHRHPG300N
$(eval fwsize=$(call mtdpartsize,firmware,$(4))) $(eval fwsize=$(call mtdpartsize,firmware,$(4)))
$(call Sysupgrade/KRuImage,$(1),$(2),0,$$$$(($(fwsize)-4*64*1024)),64) $(call Sysupgrade/KRuImage,$(1),$(2),0,$$(($(fwsize)-4*64*1024)),64)
if [ -e "$(call sysupname,$(1),$(2))" ]; then \ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
( \ ( \
echo -n -e "# Airstation Public Fmt1\x00\x00\x00\x00\x00\x00\x00\x00"; \ echo -n -e "# Airstation Public Fmt1\x00\x00\x00\x00\x00\x00\x00\x00"; \
@ -432,11 +432,11 @@ endef
define Image/Build/Cameo define Image/Build/Cameo
$(eval fwsize=$(call mtdpartsize,firmware,$(4))) $(eval fwsize=$(call mtdpartsize,firmware,$(4)))
$(call Sysupgrade/KRuImage,$(1),$(2),0,$$$$(($(fwsize)-4*64*1024)),64) $(call Sysupgrade/KRuImage,$(1),$(2),0,$$(($(fwsize)-4*64*1024)),64)
if [ -e "$(call sysupname,$(1),$(2))" ]; then \ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
factory_size=$$$$(($(fwsize) - $(6))); \ factory_size=$$(($(fwsize) - $(6))); \
( \ ( \
dd if=$(call sysupname,$(1),$(2)) bs=$$$${factory_size} conv=sync; \ dd if=$(call sysupname,$(1),$(2)) bs=$${factory_size} conv=sync; \
echo -n $(5); \ echo -n $(5); \
) > $(call factoryname,$(1),$(2)); \ ) > $(call factoryname,$(1),$(2)); \
fi fi
@ -472,7 +472,7 @@ Image/Build/CameoDB120_8M/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(ca
define Image/Build/CameoHornet define Image/Build/CameoHornet
$(eval fwsize=$(call mtdpartsize,firmware,$(4))) $(eval fwsize=$(call mtdpartsize,firmware,$(4)))
$(call Sysupgrade/KRuImage,$(1),$(2),0,$$$$(($(fwsize)-4*64*1024)),64) $(call Sysupgrade/KRuImage,$(1),$(2),0,$$(($(fwsize)-4*64*1024)),64)
if [ -e "$(call sysupname,$(1),$(2))" ]; then \ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
for r in $(7); do \ for r in $(7); do \
[ -n "$$$$r" ] && dashr="-$$$$r" || dashr=; \ [ -n "$$$$r" ] && dashr="-$$$$r" || dashr=; \
@ -624,7 +624,7 @@ endef
define Image/Build/Planex define Image/Build/Planex
$(eval fwsize=$(call mtdpartsize,firmware,$(planex_mtdlayout))) $(eval fwsize=$(call mtdpartsize,firmware,$(planex_mtdlayout)))
$(call Sysupgrade/KRuImage,$(1),$(2),0,$$$$(($(fwsize)-4*64*1024)),64) $(call Sysupgrade/KRuImage,$(1),$(2),0,$$(($(fwsize)-4*64*1024)),64)
if [ -e "$(call sysupname,$(1),$(2))" ]; then \ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
$(STAGING_DIR_HOST)/bin/mkplanexfw \ $(STAGING_DIR_HOST)/bin/mkplanexfw \
-B $(2) \ -B $(2) \
@ -661,7 +661,7 @@ define Image/Build/Seama
[ -e "$(KDIR)/loader-$(2).bin" ] [ -e "$(KDIR)/loader-$(2).bin" ]
$(call CompressLzma,$(KDIR)/loader-$(2).bin,$(KDIR_TMP)/loader-$(2).bin.lzma) $(call CompressLzma,$(KDIR)/loader-$(2).bin,$(KDIR_TMP)/loader-$(2).bin.lzma)
-rm -f $(KDIR_TMP)/image-$(2).tmp -rm -f $(KDIR_TMP)/image-$(2).tmp
$(call CatFiles,$(KDIR_TMP)/loader-$(2).bin.lzma,$$$$(($(6) - 64)),$(KDIR)/root.$(1),$(7),$(KDIR_TMP)/image-$(2).tmp) $(call CatFiles,$(KDIR_TMP)/loader-$(2).bin.lzma,$$(($(6) - 64)),$(KDIR)/root.$(1),$(7),$(KDIR_TMP)/image-$(2).tmp)
[ -e "$(KDIR_TMP)/image-$(2).tmp" ] && { \ [ -e "$(KDIR_TMP)/image-$(2).tmp" ] && { \
head -c -4 "$(KDIR_TMP)/image-$(2).tmp" > "$(KDIR_TMP)/image-$(2).no-jffs2mark.tmp"; \ head -c -4 "$(KDIR_TMP)/image-$(2).tmp" > "$(KDIR_TMP)/image-$(2).no-jffs2mark.tmp"; \
$(STAGING_DIR_HOST)/bin/seama \ $(STAGING_DIR_HOST)/bin/seama \
@ -1205,9 +1205,3 @@ define Image/Build/Profile
$(call Image/Build/Profile/$(1),buildkernel) $(call Image/Build/Profile/$(1),buildkernel)
$(call Image/Build/Profile/$(1),$(2)) $(call Image/Build/Profile/$(1),$(2))
endef endef
# $(1): filesystem type.
define Image/Build
$(call Image/Build/$(call rootfs_type,$(1)),$(1))
$(call Image/Build/Profile/$(IMAGE_PROFILE),$(1))
endef