[LEDE-DEV] [RFC] at91: fix build of legacy target

Mathias Kresin dev at kresin.me
Mon Oct 16 01:03:10 PDT 2017


16.10.2017 00:44, Hauke Mehrtens:
> Changing the order of the devices fixes the build problem seen by the
> build bot. I do not understand why this is making any difference at all,
> this is probably only hiding a different bug.
> 
> Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
> ---
> 
> Without this patch I am getting the following error message:
> 
> cat /home/hauke/openwrt/lede/build_dir/target-arm_arm926ej-s_musl_eabi/linux-at91_legacy/tmp/lede-at91-legacy-tny_a9260-squashfs-factory.bin.dtb >> /home/hauke/openwrt/lede/build_dir/target-arm_arm926ej-s_musl_eabi/linux-at91_legacy/tmp/lede-at91-legacy-tny_a9260-squashfs-factory.bin
> dd if=/home/hauke/openwrt/lede/build_dir/target-arm_arm926ej-s_musl_eabi/linux-at91_legacy/tmp/lede-at91-legacy-tny_a9260-squashfs-factory.bin of=/home/hauke/openwrt/lede/build_dir/target-arm_arm926ej-s_musl_eabi/linux-at91_legacy/tmp/lede-at91-legacy-tny_a9260-squashfs-factory.bin.new bs= conv=sync
> dd: invalid number: ''
> Makefile:74: recipe for target '/home/hauke/openwrt/lede/build_dir/target-arm_arm926ej-s_musl_eabi/linux-at91_legacy/tmp/lede-at91-legacy-tny_a9260-squashfs-factory.bin' failed
> make[5]: *** [/home/hauke/openwrt/lede/build_dir/target-arm_arm926ej-s_musl_eabi/linux-at91_legacy/tmp/lede-at91-legacy-tny_a9260-squashfs-factory.bin] Error 1
> make[5]: Leaving directory '/home/hauke/openwrt/lede/target/linux/at91/image'
> Makefile:24: recipe for target 'install' failed

Hey Hauke,

your issue is:

define Device/Default
   DTB_SIZE :=
endef

define Device/production-dtb
   $(Device/production)
   $(Device/dtb)
   DTB_SIZE := 128k
   IMAGE/factory.bin := append-dtb | pad-to $$$$(DTB_SIZE) \
	  | append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
endef

The pad-to $$$$(DTB_SIZE) references the DTB_SIZE variable from 
Device/Default instead of Device/production-dtb.

The best would be to move DTB_SIZE := 128k to Device/Default (which is 
safe since we don't have different DTB_SIZE values). Another way to fix 
the issue is to change the pad-to parameter to pad-to $$(DTB_SIZE).

But I've to admit, I fail to see why it works as intended if you change 
the order of the build code and it's most likely the reason why I didn't 
noticed the issue at the time I merged 
c2f052acaeb480e89d3ce39c47f49ad16b3464ac.

Mathias



More information about the Lede-dev mailing list