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
signature.asc
Description: PGP signature