Date: Mon, 08 Mar 2010 09:06:59 -0700 (MST) From: "M. Warner Losh" <imp@bsdimp.com> To: obrien@freebsd.org Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r204824 - head/sys/conf Message-ID: <20100308.090659.460114267457255328.imp@bsdimp.com> In-Reply-To: <20100308010125.GA6387@dragon.NUXI.org> References: <201003071008.o27A80wC014578@svn.freebsd.org> <20100307.143619.510313205755027975.imp@bsdimp.com> <20100308010125.GA6387@dragon.NUXI.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20100308010125.GA6387@dragon.NUXI.org> "David O'Brien" <obrien@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100308.090659.460114267457255328.imp>