
Hi,
On 05/27/2018 11:28 PM, Heinrich Schuchardt wrote:
When building .efi targets a race condition was observed:
If %_efi.so is not yet built before trying to build %.efi and error *** No rule to make target '%.efi' occurs. By explicitly adding %_efi.so to the targets this is avoided.
Reported-by: Tuomas Tynkkynen tuomas.tynkkynen@iki.fi Signed-off-by: Heinrich Schuchardt xypron.glpk@gmx.de
Hello Tuomas,
please, test if this resolves your problem.
Best regards
Heinrich
lib/efi_loader/Makefile | 4 +++- lib/efi_selftest/Makefile | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile index c6046e36d26..d31393c7a28 100644 --- a/lib/efi_loader/Makefile +++ b/lib/efi_loader/Makefile @@ -10,7 +10,9 @@ CFLAGS_helloworld.o := $(CFLAGS_EFI) -Os -ffreestanding CFLAGS_REMOVE_helloworld.o := $(CFLAGS_NON_EFI) -Os
ifneq ($(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),) -always += helloworld.efi +always-y += \ +helloworld_efi.so \ +helloworld.efi endif
The always-y variable isn't processed by Kbuild. So effectively this hunk makes helloworld.efi to be never built at all.
If I do s/always-y/always/ on that line, that just changes the eventual error message to:
make[3]: *** No rule to make target 'lib/efi_loader/helloworld_efi.so', needed by '__build'. Stop.
Thanks, Tuomas