archs38: only calculate entry point address when necessary

$(eval) runs even during prereq check, which can cause bogus error
messages

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2017-02-16 07:51:42 +01:00
parent f77a1aac0b
commit f66a0c93b3

View file

@ -10,9 +10,7 @@ include $(INCLUDE_DIR)/image.mk
# On ARC initramfs is put before entry point and so entry point moves # On ARC initramfs is put before entry point and so entry point moves
# in memory from build to built. Thus we need to extract EP from vmlinux # in memory from build to built. Thus we need to extract EP from vmlinux
# every time before generation of uImage. # every time before generation of uImage.
define Build/calculate-ep kernel_ep = `$(KERNEL_CROSS)readelf -h $(1) | grep "Entry point address" | grep -o 0x.*`
$(eval KERNEL_ENTRY=$(shell $(KERNEL_CROSS)readelf -h $(1) | grep "Entry point address" | grep -o 0x.*))
endef
define Build/patch-dtb define Build/patch-dtb
$(STAGING_DIR_HOST)/bin/patch-dtb $@ $(DTS_DIR)/$(DEVICE_DTS).dtb $(STAGING_DIR_HOST)/bin/patch-dtb $@ $(DTS_DIR)/$(DEVICE_DTS).dtb
@ -69,9 +67,8 @@ endef
define Image/BuildKernel define Image/BuildKernel
# Build unified uImage # Build unified uImage
$(call Build/calculate-ep, $(KDIR)/vmlinux.elf)
$(call Image/BuildKernel/MkuImage, \ $(call Image/BuildKernel/MkuImage, \
none, $(KERNEL_LOADADDR), $(KERNEL_ENTRY), \ none, $(KERNEL_LOADADDR),$(call kernel_ep,$(KDIR)/vmlinux.elf) , \
$(KDIR)/vmlinux, \ $(KDIR)/vmlinux, \
$(BIN_DIR)/$(IMG_PREFIX)-uImage \ $(BIN_DIR)/$(IMG_PREFIX)-uImage \
) )