[PATCH] Makefile: make u-boot-initial-env target depend explicitly on scripts_basic
Tom Rini
trini at konsulko.com
Wed Oct 11 20:38:20 CEST 2023
On Tue, Oct 03, 2023 at 12:02:17PM +0200, Rasmus Villemoes wrote:
> We're seeing sporadic errors like
>
> ENVC include/generated/env.txt
> HOSTCC scripts/basic/fixdep
> ENVP include/generated/env.in
> ENVT include/generated/environment.h
> HOSTCC tools/printinitialenv
> /bin/sh: 1: scripts/basic/fixdep: not found
> make[1]: *** [scripts/Makefile.host:95: tools/printinitialenv] Error 127
> make[1]: *** Deleting file 'tools/printinitialenv'
> make: *** [Makefile:2446: u-boot-initial-env] Error 2
> make: *** Waiting for unfinished jobs....
>
> where sometimes the "fixdep: not found" is instead "fixdep: Permission
> denied" and the Error 127 becomes 126.
>
> This smells like a race condition, and indeed it is: Currently,
> u-boot-initial-env is a prerequisite of the envtools target, which
> also lists scripts_basic as a prerequisite:
>
> envtools: u-boot-initial-env scripts_basic $(version_h) $(timestamp_h) tools/version.h
> $(Q)$(MAKE) $(build)=tools/env
>
> However, the u-boot-initial-env rule involves building the
> printinitialenv helper, which in turn is built using an if_changed_dep
> rule. That means we must ensure scripts/basic/fixdep is built and
> ready before trying to build printinitialenv, i.e. the
> u-boot-initial-env rule itself must depend on the phony scripts_basic
> target.
>
> Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
> Reviewed-by: Simon Glass <sjg at chromium.org>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20231011/1b4a4161/attachment.sig>
More information about the U-Boot
mailing list