[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