On Thu, May 27, 2010 at 11:12:57PM +0900, Izumi Tsutsui wrote: > > Introduce .WAIT into the cleandir rule for blasting the > > libsa/libkern/etc. trees, because it can race with the > > libsa/libkern/etc. makefiles' own cleandir rules. I think I've > > found all of the uses of the offending idiom... Closes PR 43360. > > Does it really affect all these ports?
Yes. > Isn't it i386/stand/bootxx specific issue? No. > I think the problem is that i386/stand/bootxx shares > one common LIBOBJ among multiple bootxx_foo subdirectories, > and most ports build libsa/libkern/libz per each directory, > or enter a directory for common libs before other boot programs. > (though landisk might have the same problem as i386) No. The problem happens in a single directory, and arises because there are two cleandir rules (one the one I patched, one in libkern/Makefile.inc or similar) with no ordering constraint that blow up if run simultaneously. The reason it blows up is that obj/lib/libkern (or libsa or whatever) gets removed by one while the other one is trying to chdir into it to make clean. The constraint I put in requires that the chdir-based rules finish before obj/lib can be rm -r'd. -- David A. Holland dholl...@netbsd.org