ANDROID: arm64: Image.gz-dtb build target depends on Image.gz
While doing parallel builds using "make -j" option, I ran into a build race condition a few times where-in Image.gz-dtb target starts building before Image.gz is even ready, resulting in a corrupt Image.gz-dtb kernel image. How to reproduce --> $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-androidkernel- defconfig menuconfig + CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES="qcom/apq8096-db820c" $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-androidkernel- -j9 <snip> .. SYSMAP System.map OBJCOPY arch/arm64/boot/Image GZIP arch/arm64/boot/Image.gz DTC arch/arm64/boot/dts/qcom/apq8096-db820c.dtb Building modules, stage 2. CAT arch/arm64/boot/Image.gz-dtb GZIP arch/arm64/boot/Image.gz .. <snip> $ du -sh arch/arm64/boot/Image.gz-dtb 28K arch/arm64/boot/Image.gz-dtb When built with this patch --> $ du -sh arch/arm64/boot/Image.gz-dtb 8.9M arch/arm64/boot/Image.gz-dtb Let's make Image.gz-dtb build target depend on Image.gz explicitly. Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
This commit is contained in:
parent
da3bb4c47d
commit
94a2e72490
1 changed files with 4 additions and 1 deletions
|
@ -143,7 +143,10 @@ dtbs: prepare scripts
|
||||||
dtbs_install:
|
dtbs_install:
|
||||||
$(Q)$(MAKE) $(dtbinst)=$(boot)/dts
|
$(Q)$(MAKE) $(dtbinst)=$(boot)/dts
|
||||||
|
|
||||||
Image-dtb Image.gz-dtb: vmlinux scripts dtbs
|
Image-dtb: vmlinux scripts dtbs
|
||||||
|
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||||
|
|
||||||
|
Image.gz-dtb: vmlinux scripts dtbs Image.gz
|
||||||
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
||||||
|
|
||||||
PHONY += vdso_install
|
PHONY += vdso_install
|
||||||
|
|
Loading…
Reference in a new issue