[U-Boot] [PATCH 1/1] efi_loader: avoid make race condition
Tuomas Tynkkynen
tuomas.tynkkynen at iki.fi
Tue May 29 09:57:44 UTC 2018
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 at iki.fi>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at 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
More information about the U-Boot
mailing list