svn commit: r204824 - head/sys/conf

M. Warner Losh imp at bsdimp.com
Mon Mar 8 16:07:21 UTC 2010


In message: <20100308010125.GA6387 at dragon.NUXI.org>
            "David O'Brien" <obrien at FreeBSD.org> writes:
: On Sun, Mar 07, 2010 at 02:36:19PM -0700, M. Warner Losh wrote:
: > Please back out this change.  It is unwise, I think.
: 
: Instead I'd rather fix it for the use case you mention.

I'd still rather you back it out because it introduces a significant
regression in speed, see below...

: ---->%---->%---->%---->%---->%---->%---->%---->%---->%---->%---->%---->%----
: Index: newvers.sh
: ===================================================================
: --- newvers.sh	(revision 204851)
: +++ newvers.sh	(working copy)
: @@ -87,13 +87,11 @@ touch version
:  v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
:  i=`${MAKE:-make} -V KERN_IDENT`
:  
: +# Are we doing a kernel build?  Look for "/sys/" in pwd for 'make kernel',
: +# and "/compile/" for tradiational within-tree kernel build.
:  case "$d" in
: -*/compile/*)
: -	SRCDIR=${d##*obj}
: -	if [ -n "$MACHINE" ]; then
: -		SRCDIR=${SRCDIR##/$MACHINE}
: -	fi
: -	SRCDIR=$(cd ${SRCDIR%%/compile/*}/.. && pwd)
: +*/sys/*|*/compile/*)
: +	SRCDIR=$(realpath $(dirname $0)/..)
:  
:  	for dir in /bin /usr/bin /usr/local/bin; do
:  		if [ -d "${SRCDIR}/.svn" -a -x "${dir}/svnversion" ] ; then
: ---->%---->%---->%---->%---->%---->%---->%---->%---->%---->%---->%---->%----
: 
: 
: Do you get the subversion revision in your vers.c file with this patch?

Well, except that you get the revision for the whole tree, instead of
just for the kernel.  And this takes a *LOT* longer to compute.  The
whole reason we did the sys hack was to make build times not suck...

 	for dir in /bin /usr/bin /usr/local/bin; do
-		if [ -d "${SRCDIR}/sys/.svn" -a -x "${dir}/svnversion" ] ; then
+		if [ -d "${SRCDIR}/.svn" -a -x "${dir}/svnversion" ] ; then
 			svnversion=${dir}/svnversion
 			break
 		fi
@@ -107,7 +107,7 @@ case "$d" in
 	done
 
 	if [ -n "$svnversion" ] ; then
-		svn=" r`cd ${SRCDIR}/sys && $svnversion`"
+		svn=" r`cd ${SRCDIR} && $svnversion`"
 	fi
 	if [ -n "$git_cmd" ] ; then
 		git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null`

Again, like Doug said: "my kernel doesn't live in sys" isn't a problem
that is worth solving at the cost of "I have to run svnversion over
all of /usr/src every time I build a kernel."

Please, back this out.  If you *MUST* support != sys, then do so in a
way that doesn't screw everybody else with long build times.  And
*PLEASE* talk to people before doing a drive-by commit?  This bit of
code has way too much loaded history behind it for just random
tweaking.

Warner


More information about the svn-src-all mailing list