CFR, CFT: Fine-grained SUBDIR dependencies for parallel builds
Jia-Shiun Li
jiashiun at gmail.com
Wed May 28 04:59:18 UTC 2014
It failed cleandir at libmb with -j4. Test script attached and log
snippet below.
Tested with:
- HW: i5-3450 CPU w/ 8GB memory
- /usr/obj & src mounted on tmpfs.
src uses ~1GB without .svn dir. /usr/obj uses another ~2GB for
buildworld, not including buildkernel. If memory is not constrained I
think it is easier to use tmpfs to uncover parallel timing/race issues
hidden by slower I/O.
-Jia-shiun.
--- 8< ----------------------------------------
===> cddl/usr.bin/ctfdump (cleandir)
--- bin.cleandir__D ---
--- clean ---
rm -f rcp rcp.o util.o rcp.1.gz rcp.1.cat.gz
--- lib.cleandir__D ---
--- cleanobj ---
--- libexec.cleandir__D ---
--- clean ---
rm -f rpc.sprayd sprayd.o rpc.sprayd.8.gz rpc.sprayd.8.cat.gz
--- bin.cleandir__D ---
--- cleandepend ---
rm -f .depend GPATH GRTAGS GSYMS GTAGS
--- lib.cleandir__D ---
make[3]: make[3]: don't know how to make cleandir_subdir_libmb. Stop
make[3]: stopped in /mnt/src/lib
*** [lib.cleandir__D] Error code 2
make[2]: stopped in /mnt/src
--- libexec.cleandir__D ---
--- cleandepend ---
rm -f .depend GPATH GRTAGS GSYMS GTAGS
--- bin.cleandir__D ---
--- cleanobj ---
A failure has been detected in another branch of the parallel make
make[4]: stopped in /mnt/src/bin/rcp
--- libexec.cleandir__D ---
A failure has been detected in another branch of the parallel make
make[4]: stopped in /mnt/src/libexec/rpc.sprayd
--- bin.cleandir__D ---
*** [cleandir_subdir_rcp] Error code 2
make[3]: stopped in /mnt/src/bin
1 error
make[3]: stopped in /mnt/src/bin
--- libexec.cleandir__D ---
*** [_sub.cleandir] Error code 2
make[3]: stopped in /mnt/src/libexec
1 error
make[3]: stopped in /mnt/src/libexec
*** [libexec.cleandir__D] Error code 2
make[2]: stopped in /mnt/src
--- bin.cleandir__D ---
*** [bin.cleandir__D] Error code 2
make[2]: stopped in /mnt/src
--- cddl.cleandir__D ---
A failure has been detected in another branch of the parallel make
make[5]: stopped in /mnt/src/cddl/usr.bin/ctfdump
*** [_sub.cleandir] Error code 2
make[4]: stopped in /mnt/src/cddl/usr.bin
1 error
make[4]: stopped in /mnt/src/cddl/usr.bin
*** [_sub.cleandir] Error code 2
make[3]: stopped in /mnt/src/cddl
1 error
make[3]: stopped in /mnt/src/cddl
*** [cddl.cleandir__D] Error code 2
make[2]: stopped in /mnt/src
4 errors
make[2]: stopped in /mnt/src
*** [_cleanobj] Error code 2
make[1]: stopped in /mnt/src
1 error
make[1]: stopped in /mnt/src
*** [buildworld] Error code 2
make: stopped in /mnt/src
make: stopped in /mnt/src
-------------- next part --------------
#!/bin/sh
echo ======= >> pcm.log
pcm.x 1 -csv >> pcm.log &
PID=$!
echo pid $PID
date >> build.log
make -j4 buildworld >> build.log &
PPID=$!
echo waiting...
wait $PPID
date >> build.log
kill $PID
echo done
More information about the freebsd-arch
mailing list