matthew green | 1 May 2008 19:44
Picon
Favicon

re: build.sh: set creation is serialized


   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


Gmane