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.villem...@prevas.dk>
> Reviewed-by: Simon Glass <s...@chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to