1 May 2008 19:44
re: build.sh: set creation is serialized
matthew green <mrg <at> eterna.com.au>
2008-05-01 17:44:25 GMT
2008-05-01 17:44:25 GMT
I should have been clearer, sorry. I meant querying sysctl for the value of
kern.maxvnodes. If it is above a threshold, then dispense with the .WAIT.
If it's below the threshold or we can't get the value, leave the .WAIT in.
.WAITs for gcc build are for correctness. it might be better to
list explicit subdir depends than use .WAIT but i'm not sure you
can do much here and i'm not sure it's really an issue since make
will find other jobs to do usually.
are you sure you don't mean the src/tools/gcc build? it *is*
serialised and slow... i use this patch, and set GMAKE_J_ARGS
in my mk.conf. it's ugly but speeds up my builds a bunch.
.mrg.
Index: tools/Makefile.gmakehost
===================================================================
RCS file: /cvsroot/src/tools/Makefile.gmakehost,v
retrieving revision 1.2
diff -p -r1.2 Makefile.gmakehost
*** tools/Makefile.gmakehost 12 May 2006 18:00:27 -0000 1.2
--- tools/Makefile.gmakehost 15 Mar 2008 21:03:49 -0000
*************** INSTALL_TARGET?=install
*** 99,105 ****
# fails. it also uses "env -i" to entirely clear out MAKEFLAGS.
.build_done: .configure_done
! <at> (cd build && /usr/bin/env -i ${BUILD_ENV} ${MAKE_ARGS} ${TOOL_GMAKE} -e ${MAKE_ARGS} ${ALL_TARGET})
<at> if [ ! -f $ <at> ] || [ -n "$$(find build -type f -newer .build_done -print)" ]; \
then touch $ <at> ; fi
--- 99,105 ----
# fails. it also uses "env -i" to entirely clear out MAKEFLAGS.
.build_done: .configure_done
! <at> (cd build && /usr/bin/env -i ${BUILD_ENV} ${MAKE_ARGS} ${TOOL_GMAKE} ${GMAKE_J_ARGS} -e
${MAKE_ARGS} ${ALL_TARGET})
<at> if [ ! -f $ <at> ] || [ -n "$$(find build -type f -newer .build_done -print)" ]; \
then touch $ <at> ; fi
RSS Feed