
Hi Heinrich,
Thanks for taking a look.
On 05/27/2018 08:11 PM, Heinrich Schuchardt wrote:
On 11/07/2017 04:57 PM, Tuomas Tynkkynen wrote:
Hi,
Every now and then I see parallel builds failing, e.g. with Linksprite_pcDuino3_Nano_defconfig:
CC lib/efi_loader/efi_bootmgr.o CC lib/efi_loader/efi_disk.o CC lib/efi_loader/efi_net.o make[2]: *** No rule to make target 'lib/efi_loader/helloworld.efi', needed by '__build'. Stop. make[2]: *** Waiting for unfinished jobs.... CC lib/efi_loader/efi_smbios.o make[1]: *** [scripts/Makefile.build:425: lib/efi_loader] Error 2 make: *** [Makefile:1279: lib] Error 2
This has been going for a while now (since ~2017.03 or so). Anybody have ideas on how to express the dependency properly?
Hello Tuomas,
the build dependencies for *.efi files are described in ./scripts/Makefile.lib:
EFI_LDS_PATH = $(srctree)/arch/$(ARCH)/lib/$(EFI_LDS)
cmd_efi_ld = $(LD) -nostdlib -znocombreloc -T $(EFI_LDS_PATH) -shared \ -Bsymbolic $^ -o $@
$(obj)/%_efi.so: $(obj)/%.o arch/$(ARCH)/lib/$(EFI_CRT0) \ arch/$(ARCH)/lib/$(EFI_RELOC) $(call cmd,efi_ld)
$(obj)/%.efi: $(obj)/%_efi.so $(call cmd,efi_objcopy)
Right, but...
The target is selected in lib/efi_loader/Makefile:
ifneq ($(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),) always += helloworld.efi endif
... as I've described in
https://lists.denx.de/pipermail/u-boot/2018-March/323624.html
, the problem is that when recursive make is building lib/efi_loader, arch/$(ARCH)/lib/$(EFI_CRT0) might not exist yet and the rule for building it is only known by the recursive make responsible for building arch/arm/lib.
obj-$(CONFIG_CMD_BOOTEFI_HELLO) += helloworld_efi.o obj-y += efi_image_loader.o efi_boottime.o efi_runtim
Does the problem ever occur if you run mrproper beforehand?
It doesn't matter if it's a clean or incremental build. By increasing the race window with this hacky patch (the ':=' -> '=' change is important):
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile index 655727f431..fb569f57f2 100644 --- a/arch/arm/lib/Makefile +++ b/arch/arm/lib/Makefile @@ -99,10 +99,10 @@ endif endif
# For building EFI apps -CFLAGS_$(EFI_CRT0) := $(CFLAGS_EFI) +CFLAGS_$(EFI_CRT0) = $(CFLAGS_EFI) $(shell echo sleeping >&2 && sleep 60) CFLAGS_REMOVE_$(EFI_CRT0) := $(CFLAGS_NON_EFI)
-CFLAGS_$(EFI_RELOC) := $(CFLAGS_EFI) +CFLAGS_$(EFI_RELOC) = $(CFLAGS_EFI) $(shell echo sleeping >&2 && sleep 60) CFLAGS_REMOVE_$(EFI_RELOC) := $(CFLAGS_NON_EFI)
extra-$(CONFIG_CMD_BOOTEFI_HELLO_COMPILE) += $(EFI_CRT0) $(EFI_RELOC)
and running:
export CROSS_COMPILE=arm-linux-gnueabihf- rm -rf build-qemu_arm make O=build-qemu_arm qemu_arm_defconfig make O=build-qemu_arm all -j4
... I can reproduce the problem 100% of the time, even in incremental builds. For example:
$ make O=build-qemu_arm all -j4 V=1
make -C /home/tmtynkky/opt/u-boot/build-qemu_arm KBUILD_SRC=/home/tmtynkky/opt/u-boot \ -f /home/tmtynkky/opt/u-boot/Makefile all make[1]: Entering directory '/home/tmtynkky/opt/u-boot/build-qemu_arm' set -e; : ' CHK include/config/uboot.release'; mkdir -p include/config/; echo "2018.05$(/bin/sh ../scripts/setlocalversion ..)" < include/config/auto.conf > include/config/uboot.release.tmp; if [ -r include/config/uboot.release ] && cmp -s include/config/uboot.release include/config/uboot.release.tmp; then rm -f include/config/uboot.release.tmp; else : ' UPD include/config/uboot.release'; mv -f include/config/uboot.release.tmp include/config/uboot.release; fi ln -fsn .. source set -e; : ' CHK include/generated/timestamp_autogenerated.h'; mkdir -p include/generated/; (if test -n "${SOURCE_DATE_EPOCH}"; then SOURCE_DATE="@${SOURCE_DATE_EPOCH}"; DATE=""; for date in gdate date.gnu date; do ${date} -u -d "${SOURCE_DATE}" >/dev/null 2>&1 && DATE="${date}"; done; if test -n "${DATE}"; then LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_BUILD_DATE 0x%Y%m%d'; else return 42; fi; else LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; LC_ALL=C date +'#define U_BOOT_TIME "%T"'; LC_ALL=C date +'#define U_BOOT_TZ "%z"'; LC_ALL=C date +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; LC_ALL=C date +'#define U_BOOT_BUILD_DATE 0x%Y%m%d'; fi) < ../Makefile > include/generated/timestamp_autogenerated.h.tmp; if [ -r include/generated/timestamp_autogenerated.h ] && cmp -s include/generated/timestamp_autogenerated.h include/generated/timestamp_autogenerated.h.tmp; then rm -f include/generated/timestamp_autogenerated.h.tmp; else : ' UPD include/generated/timestamp_autogenerated.h'; mv -f include/generated/timestamp_autogenerated.h.tmp include/generated/timestamp_autogenerated.h; fi /bin/sh ../scripts/mkmakefile \ .. . 2018 05 make -f ../scripts/Makefile.build obj=scripts/basic GEN ./Makefile make -f ../scripts/Makefile.autoconf u-boot.cfg rm -f .tmp_quiet_recordmcount make -f ../scripts/Makefile.build obj=scripts make -f ../scripts/Makefile.build obj=scripts/dtc if [ -f ../.config -o -d ../include/config ]; then \ echo >&2 " .. is not clean, please run 'make mrproper'"; \ echo >&2 " in the '..' directory.";\ /bin/false; \ fi; set -e; : ' CHK include/generated/version_autogenerated.h'; mkdir -p include/generated/; (echo #define PLAIN_VERSION "2018.05""-00424-g2a8e80dfce-dirty"; echo #define U_BOOT_VERSION "U-Boot " PLAIN_VERSION; echo #define CC_VERSION_STRING "$(LC_ALL=C arm-linux-gnueabihf-gcc --version | head -n 1)"; echo #define LD_VERSION_STRING "$(LC_ALL=C arm-linux-gnueabihf-ld.bfd --version | head -n 1)"; ) < include/config/uboot.release > include/generated/version_autogenerated.h.tmp; if [ -r include/generated/version_autogenerated.h ] && cmp -s include/generated/version_autogenerated.h include/generated/version_autogenerated.h.tmp; then rm -f include/generated/version_autogenerated.h.tmp; else : ' UPD include/generated/version_autogenerated.h'; mv -f include/generated/version_autogenerated.h.tmp include/generated/version_autogenerated.h; fi make -f ../scripts/Makefile.build obj=. mkdir -p lib/ mkdir -p arch/arm/lib/ set -e; : ' CHK include/generated/generic-asm-offsets.h'; mkdir -p include/generated/; (set -e; echo "#ifndef __GENERIC_ASM_OFFSETS_H__"; echo "#define __GENERIC_ASM_OFFSETS_H__"; echo "/*"; echo " * DO NOT MODIFY."; echo " *"; echo " * This file was generated by Kbuild"; echo " */"; echo ""; sed -ne "s:[[:space:]]*.ascii[[:space:]]*"(.*)":\1:; /^->/{s:->#(.*):/* \1 */:; s:^->([^ ]*) [$#]*([-0-9]*) (.*):#define \1 \2 /* \3 */:; s:^->([^ ]*) [$#]*([^ ]*) (.*):#define \1 \2 /* \3 */:; s:->::; p;}"; echo ""; echo "#endif" ) < lib/asm-offsets.s > include/generated/generic-asm-offsets.h.tmp; if [ -r include/generated/generic-asm-offsets.h ] && cmp -s include/generated/generic-asm-offsets.h include/generated/generic-asm-offsets.h.tmp; then rm -f include/generated/generic-asm-offsets.h.tmp; else : ' UPD include/generated/generic-asm-offsets.h'; mv -f include/generated/generic-asm-offsets.h.tmp include/generated/generic-asm-offsets.h; fi set -e; : ' CHK include/generated/asm-offsets.h'; mkdir -p include/generated/; (set -e; echo "#ifndef __ASM_OFFSETS_H__"; echo "#define __ASM_OFFSETS_H__"; echo "/*"; echo " * DO NOT MODIFY."; echo " *"; echo " * This file was generated by Kbuild"; echo " */"; echo ""; sed -ne "s:[[:space:]]*.ascii[[:space:]]*"(.*)":\1:; /^->/{s:->#(.*):/* \1 */:; s:^->([^ ]*) [$#]*([-0-9]*) (.*):#define \1 \2 /* \3 */:; s:^->([^ ]*) [$#]*([^ ]*) (.*):#define \1 \2 /* \3 */:; s:->::; p;}"; echo ""; echo "#endif" ) < arch/arm/lib/asm-offsets.s > include/generated/asm-offsets.h.tmp; if [ -r include/generated/asm-offsets.h ] && cmp -s include/generated/asm-offsets.h include/generated/asm-offsets.h.tmp; then rm -f include/generated/asm-offsets.h.tmp; else : ' UPD include/generated/asm-offsets.h'; mv -f include/generated/asm-offsets.h.tmp include/generated/asm-offsets.h; fi make -f ../scripts/Makefile.build obj=tools cc -Wp,-MD,tools/.mkenvimage.o.d -Itools -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer --std=gnu11 -include ../include/compiler.h -idirafterinclude -idirafter../include -idirafter../arch/arm/include -I../../scripts/dtc/libfdt -I../scripts/dtc/libfdt -I../../tools -I../tools -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -c -o tools/mkenvimage.o ../tools/mkenvimage.c cc -Wp,-MD,tools/.fit_image.o.d -Itools -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer --std=gnu11 -include ../include/compiler.h -idirafterinclude -idirafter../include -idirafter../arch/arm/include -I../../scripts/dtc/libfdt -I../scripts/dtc/libfdt -I../../tools -I../tools -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -DMKIMAGE_DTC=""dtc"" -c -o tools/fit_image.o ../tools/fit_image.c cc -Wp,-MD,tools/.image-host.o.d -Itools -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer --std=gnu11 -include ../include/compiler.h -idirafterinclude -idirafter../include -idirafter../arch/arm/include -I../../scripts/dtc/libfdt -I../scripts/dtc/libfdt -I../../tools -I../tools -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -c -o tools/image-host.o ../tools/image-host.c cc -Wp,-MD,tools/.dumpimage.o.d -Itools -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer --std=gnu11 -include ../include/compiler.h -idirafterinclude -idirafter../include -idirafter../arch/arm/include -I../../scripts/dtc/libfdt -I../scripts/dtc/libfdt -I../../tools -I../tools -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -c -o tools/dumpimage.o ../tools/dumpimage.c cc -Wp,-MD,tools/.mkimage.o.d -Itools -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer --std=gnu11 -include ../include/compiler.h -idirafterinclude -idirafter../include -idirafter../arch/arm/include -I../../scripts/dtc/libfdt -I../scripts/dtc/libfdt -I../../tools -I../tools -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -c -o tools/mkimage.o ../tools/mkimage.c mkdir -p include/asm if [ -d /home/tmtynkky/opt/u-boot/arch/arm/mach-/include/mach ]; then \ dest=arch/arm/mach-/include/mach; \ else \ dest=arch/arm/include/asm/arch-armv7; \ fi; \ ln -fsn /home/tmtynkky/opt/u-boot/$dest include/asm/arch set -e; : ' CHK include/config.h'; mkdir -p include/; (echo "/* Automatically generated - do not edit */"; for i in $(echo "" | sed 's/,/ /g'); do echo #define CONFIG_$i | sed '/=/ {s/=/ /;q; } ; { s/$/ 1/; }'; done; echo #define CONFIG_BOARDDIR board/emulation/qemu-arm; echo #include <config_defaults.h>; echo #include <config_uncmd_spl.h>; echo #include <configs/"qemu-arm".h>; echo #include <asm/config.h>; echo #include <linux/kconfig.h>; echo #include <config_fallbacks.h>;) < ../scripts/Makefile.autoconf > include/config.h.tmp; if [ -r include/config.h ] && cmp -s include/config.h include/config.h.tmp; then rm -f include/config.h.tmp; else : ' UPD include/config.h'; mv -f include/config.h.tmp include/config.h; fi arm-linux-gnueabihf-gcc -E -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -fshort-wchar -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__KERNEL__ -D__UBOOT__ -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -Iinclude -I../include -I../arch/arm/include -include ../include/linux/kconfig.h -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/7.2.0/include -DDO_DEPS_ONLY -dM ../include/common.h > u-boot.cfg.tmp && { grep 'define CONFIG_' u-boot.cfg.tmp > u-boot.cfg; rm u-boot.cfg.tmp; } || { rm u-boot.cfg.tmp; false; } cc -o tools/mkenvimage tools/mkenvimage.o tools/os_support.o tools/lib/crc32.o cc -o tools/dumpimage tools/aisimage.o tools/atmelimage.o tools/common/bootm.o tools/lib/crc32.o tools/default_image.o tools/lib/fdtdec_common.o tools/lib/fdtdec.o tools/fit_common.o tools/fit_image.o tools/common/image-fit.o tools/image-host.o tools/common/image.o tools/imagetool.o tools/imximage.o tools/kwbimage.o tools/lib/md5.o tools/lpc32xximage.o tools/mxsimage.o tools/omapimage.o tools/os_support.o tools/pblimage.o tools/pbl_crc32.o tools/vybridimage.o tools/stm32image.o tools/lib/rc4.o tools/rkcommon.o tools/rkimage.o tools/rksd.o tools/rkspi.o tools/socfpgaimage.o tools/lib/sha1.o tools/lib/sha256.o tools/common/hash.o tools/ublimage.o tools/zynqimage.o tools/zynqmpimage.o tools/zynqmpbif.o tools/libfdt/fdt.o tools/libfdt/fdt_wip.o tools/libfdt/fdt_sw.o tools/libfdt/fdt_rw.o tools/libfdt/fdt_strerror.o tools/libfdt/fdt_empty_tree.o tools/libfdt/fdt_addresses.o tools/libfdt/fdt_overlay.o tools/lib/libfdt/fdt_ro.o tools/lib/libfdt/fdt_region.o tools/gpimage.o tools/gpimage-common.o tools/dumpimage.o cc -o tools/mkimage tools/aisimage.o tools/atmelimage.o tools/common/bootm.o tools/lib/crc32.o tools/default_image.o tools/lib/fdtdec_common.o tools/lib/fdtdec.o tools/fit_common.o tools/fit_image.o tools/common/image-fit.o tools/image-host.o tools/common/image.o tools/imagetool.o tools/imximage.o tools/kwbimage.o tools/lib/md5.o tools/lpc32xximage.o tools/mxsimage.o tools/omapimage.o tools/os_support.o tools/pblimage.o tools/pbl_crc32.o tools/vybridimage.o tools/stm32image.o tools/lib/rc4.o tools/rkcommon.o tools/rkimage.o tools/rksd.o tools/rkspi.o tools/socfpgaimage.o tools/lib/sha1.o tools/lib/sha256.o tools/common/hash.o tools/ublimage.o tools/zynqimage.o tools/zynqmpimage.o tools/zynqmpbif.o tools/libfdt/fdt.o tools/libfdt/fdt_wip.o tools/libfdt/fdt_sw.o tools/libfdt/fdt_rw.o tools/libfdt/fdt_strerror.o tools/libfdt/fdt_empty_tree.o tools/libfdt/fdt_addresses.o tools/libfdt/fdt_overlay.o tools/lib/libfdt/fdt_ro.o tools/lib/libfdt/fdt_region.o tools/gpimage.o tools/gpimage-common.o tools/mkimage.o make -f ../scripts/Makefile.build obj=arch/arm/cpu make -f ../scripts/Makefile.build obj=arch/arm/cpu/armv7 make -f ../scripts/Makefile.build obj=arch/arm/lib make -f ../scripts/Makefile.build obj=board/emulation/qemu-arm make -f ../scripts/Makefile.build obj=cmd make -f ../scripts/Makefile.build obj=common make -f ../scripts/Makefile.build obj=disk make -f ../scripts/Makefile.build obj=drivers arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.crt0_arm_efi.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/7.2.0/include -Iinclude -I../include -I../arch/arm/include -include ../include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -D__ASSEMBLY__ -g -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a -D__LINUX_ARM_ARCH__=7 -c -o arch/arm/lib/crt0_arm_efi.o ../arch/arm/lib/crt0_arm_efi.S sleeping make -f ../scripts/Makefile.build obj=common/init make -f ../scripts/Makefile.build obj=drivers/adc arm-linux-gnueabihf-gcc -Wp,-MD,common/.main.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/7.2.0/include -Iinclude -I../include -I../arch/arm/include -include ../include/linux/kconfig.h -I../common -Icommon -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -fshort-wchar -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a -D__LINUX_ARM_ARCH__=7 -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(main)" -D"KBUILD_MODNAME=KBUILD_STR(main)" -c -o common/main.o ../common/main.c make -f ../scripts/Makefile.build obj=drivers/ata arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.version.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/7.2.0/include -Iinclude -I../include -I../arch/arm/include -include ../include/linux/kconfig.h -I../cmd -Icmd -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -fshort-wchar -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a -D__LINUX_ARM_ARCH__=7 -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(version)" -D"KBUILD_MODNAME=KBUILD_STR(version)" -c -o cmd/version.o ../cmd/version.c make -f ../scripts/Makefile.build obj=drivers/block make -f ../scripts/Makefile.build obj=drivers/core arm-linux-gnueabihf-ld.bfd -r -o common/built-in.o common/init/built-in.o common/main.o common/exports.o common/hash.o common/cli_hush.o common/autoboot.o common/board_f.o common/board_r.o common/bootm.o common/bootm_os.o common/fdt_support.o common/miiphyutil.o common/usb.o common/usb_hub.o common/splash.o common/menu.o common/cli_readline.o common/cli_simple.o common/console.o common/dlmalloc.o common/malloc_simple.o common/image.o common/image-fdt.o common/memsize.o common/stdio.o common/cli.o common/command.o common/s_record.o common/xyzModem.o make -f ../scripts/Makefile.build obj=drivers/dma arm-linux-gnueabihf-ld.bfd -r -o cmd/built-in.o cmd/boot.o cmd/bootm.o cmd/help.o cmd/version.o cmd/blk_common.o cmd/source.o cmd/bdinfo.o cmd/bootefi.o cmd/bootz.o cmd/console.o cmd/echo.o cmd/elf.o cmd/exit.o cmd/ext4.o cmd/ext2.o cmd/fat.o cmd/fdt.o cmd/flash.o cmd/fs.o cmd/itest.o cmd/load.o cmd/mem.o cmd/mii.o cmd/misc.o cmd/net.o cmd/part.o cmd/pci.o cmd/pcmcia.o cmd/pxe.o cmd/nvme.o cmd/scsi.o cmd/disk.o cmd/setexpr.o cmd/test.o cmd/usb.o cmd/ximg.o cmd/nvedit.o make -f ../scripts/Makefile.build obj=drivers/gpio make -f ../scripts/Makefile.build obj=drivers/crypto make -f ../scripts/Makefile.build obj=drivers/i2c make -f ../scripts/Makefile.build obj=drivers/crypto/fsl make -f ../scripts/Makefile.build obj=drivers/crypto/rsa_mod_exp make -f ../scripts/Makefile.build obj=drivers/mtd make -f ../scripts/Makefile.build obj=drivers/dfu make -f ../scripts/Makefile.build obj=drivers/firmware make -f ../scripts/Makefile.build obj=drivers/input make -f ../scripts/Makefile.build obj=drivers/mtd/onenand make -f ../scripts/Makefile.build obj=drivers/mailbox make -f ../scripts/Makefile.build obj=drivers/memory make -f ../scripts/Makefile.build obj=drivers/mtd/spi make -f ../scripts/Makefile.build obj=drivers/misc make -f ../scripts/Makefile.build obj=drivers/nvme make -f ../scripts/Makefile.build obj=drivers/pcmcia make -f ../scripts/Makefile.build obj=drivers/net make -f ../scripts/Makefile.build obj=drivers/phy/marvell make -f ../scripts/Makefile.build obj=drivers/pwm make -f ../scripts/Makefile.build obj=drivers/net/phy make -f ../scripts/Makefile.build obj=drivers/reset make -f ../scripts/Makefile.build obj=drivers/pci make -f ../scripts/Makefile.build obj=drivers/rtc make -f ../scripts/Makefile.build obj=drivers/power make -f ../scripts/Makefile.build obj=drivers/scsi make -f ../scripts/Makefile.build obj=drivers/power/battery make -f ../scripts/Makefile.build obj=drivers/power/domain make -f ../scripts/Makefile.build obj=drivers/soc make -f ../scripts/Makefile.build obj=drivers/sound make -f ../scripts/Makefile.build obj=drivers/power/fuel_gauge make -f ../scripts/Makefile.build obj=drivers/spmi make -f ../scripts/Makefile.build obj=drivers/sysreset make -f ../scripts/Makefile.build obj=drivers/thermal make -f ../scripts/Makefile.build obj=drivers/tpm make -f ../scripts/Makefile.build obj=drivers/video make -f ../scripts/Makefile.build obj=drivers/power/mfd make -f ../scripts/Makefile.build obj=drivers/watchdog make -f ../scripts/Makefile.build obj=drivers/power/pmic make -f ../scripts/Makefile.build obj=drivers/power/regulator make -f ../scripts/Makefile.build obj=drivers/video/bridge make -f ../scripts/Makefile.build obj=drivers/video/sunxi make -f ../scripts/Makefile.build obj=drivers/serial make -f ../scripts/Makefile.build obj=drivers/spi make -f ../scripts/Makefile.build obj=drivers/usb/common make -f ../scripts/Makefile.build obj=drivers/usb/dwc3 make -f ../scripts/Makefile.build obj=drivers/usb/emul make -f ../scripts/Makefile.build obj=drivers/usb/eth make -f ../scripts/Makefile.build obj=drivers/usb/gadget make -f ../scripts/Makefile.build obj=drivers/usb/gadget/udc make -f ../scripts/Makefile.build obj=drivers/usb/host make -f ../scripts/Makefile.build obj=drivers/usb/musb-new make -f ../scripts/Makefile.build obj=drivers/usb/musb make -f ../scripts/Makefile.build obj=drivers/usb/phy make -f ../scripts/Makefile.build obj=drivers/usb/ulpi make -f ../scripts/Makefile.build obj=env make -f ../scripts/Makefile.build obj=fs make -f ../scripts/Makefile.build obj=fs/ext4 make -f ../scripts/Makefile.build obj=fs/fat make -f ../scripts/Makefile.build obj=lib make -f ../scripts/Makefile.build obj=net make -f ../scripts/Makefile.build obj=test make -f ../scripts/Makefile.build obj=test/dm make -f ../scripts/Makefile.build obj=lib/efi_driver make -f ../scripts/Makefile.build obj=lib/efi_loader make -f ../scripts/Makefile.build obj=lib/efi_selftest make -f ../scripts/Makefile.build obj=lib/libfdt make -f ../scripts/Makefile.build obj=lib/zlib arm-linux-gnueabihf-gcc -Wp,-MD,lib/.smbios.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/7.2.0/include -Iinclude -I../include -I../arch/arm/include -include ../include/linux/kconfig.h -I../lib -Ilib -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -fshort-wchar -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a -D__LINUX_ARM_ARCH__=7 -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(smbios)" -D"KBUILD_MODNAME=KBUILD_STR(smbios)" -c -o lib/smbios.o ../lib/smbios.c arm-linux-gnueabihf-gcc -Wp,-MD,lib/.display_options.o.d -nostdinc -isystem /usr/lib/gcc/arm-linux-gnueabihf/7.2.0/include -Iinclude -I../include -I../arch/arm/include -include ../include/linux/kconfig.h -I../lib -Ilib -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -fshort-wchar -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a -D__LINUX_ARM_ARCH__=7 -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(display_options)" -D"KBUILD_MODNAME=KBUILD_STR(display_options)" -c -o lib/display_options.o ../lib/display_options.c make[3]: *** No rule to make target 'lib/efi_loader/helloworld.efi', needed by '__build'. Stop. make[2]: *** [../scripts/Makefile.build:423: lib/efi_loader] Error 2 make[2]: *** Waiting for unfinished jobs....