[U-Boot-Users] [PATCH] Use `ln -sf` rather than `rm -f && ln -s`

Wolfgang Denk wd at denx.de
Thu Feb 14 01:18:48 CET 2008


In message <20080128231125.GA27063 at sig21.net> you wrote:
> On Mon, Jan 28, 2008 at 06:38:58AM -0500, Mike Frysinger wrote:
> > The -f option to `ln` should give the same behavior as the -f option to the
> > `rm` command.  It is better to do this in one shot so as to avoid race
> > conditions when building in parallel.  I build on a quad G5 and without this
> > change, it isn't uncommon for the build to fail when using -j8 due to this
> > small window where the files don't actually exist.
> 
> Since there is a clear dependency of environment.o on environment.c
> there is no way for make to run the rm/ln and $(CC) commands
> in parallel, so there should be no race condition.
> For illustrative purposes: you should be able to put a sleep
> between the rm and the ln -s, and it should still build.
> 
> It seems the real problem is one level above, the commands
> were run twice in parallel, once for "depend" and once
> for the SUBDIRS "all". Please test the patch below.
> 
> The
> 
>   $(obj)u-boot:		depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
> 
> line tells make it can run commands to update each dependency
> in parallel, unless there are further dependencies which restrict this.

Applied, thanks.

> 
> Thanks,
> Johannes
> 
> ---
> Add dependencies to avoid race conditions with parallel make.
> 
> Signed-off-by: Johannes Stezenbach <js at sig21.net>

Note that these 3 lines belong *above* the "---" line.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
There are three ways to get something  done:  do  it  yourself,  hire
someone, or forbid your kids to do it.




More information about the U-Boot mailing list