Date: Wed, 12 Dec 2012 20:52:52 +0200 From: Kimmo Paasiala <kpaasial@gmail.com> To: Ian Lepore <freebsd@damnhippie.dyndns.org> Cc: freebsd-current@freebsd.org, freebsd-stable@freebsd.org Subject: Re: /usr/src/sys/conf/newvers.sh, SYSDIR set to wrong directory. Message-ID: <CA%2B7WWSfJSRG9_CT7b605_3h7CVR-uWBU0Ejxc5PvEDJaDOvX%2BQ@mail.gmail.com> In-Reply-To: <1355331231.87661.461.camel@revolution.hippie.lan> References: <CA%2B7WWSew50m%2Bq20EJXZuhJZDnM%2B--tudetESRE2y9RN5-8fwHw@mail.gmail.com> <1355331231.87661.461.camel@revolution.hippie.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Dec 12, 2012 at 6:53 PM, Ian Lepore <freebsd@damnhippie.dyndns.org> wrote: > On Wed, 2012-12-12 at 18:14 +0200, Kimmo Paasiala wrote: >> Hello, >> >> My 9-STABLE buildworld broke in a very inexplicable way, I was >> getting an error on /usr/src/include/osreldate.h that I couldn't >> figure out until I started looking at the sys/conf/newvers.sh and what >> it does. It turned out that the thing that broke my buildworld was >> having .git directory at the root directory of the system because I >> recently started using GIT to track the configuration files. >> >> I added some debug echos to the newvers.sh and I found out it's >> setting SYSDIR to /bin/.. which in turn causes the newvers.sh to set >> the gitdir to /.git and that seems to break the logic in newvers.sh. >> >> Isn't SYSDIR supposed to be set to the sys -subdirectory of the source >> tree (/usr/src/sys default)? >> >> I'm guessing the reason the SYSDIR gets set to /bin/.. is the line in >> newvers.sh: >> >> SYSDIR=$(dirname $0)/.. >> >> $0 is actually /bin/sh and not the path to newver.sh because the >> newvers.sh is sourced by the Makefile in /usr/src/include instead of >> executing it: >> >> osreldate.h: ${.CURDIR}/../sys/conf/newvers.sh ${.CURDIR}/../sys/sys/param.h \ >> ${.CURDIR}/Makefile >> @${ECHO} creating osreldate.h from newvers.sh >> @MAKE=${MAKE}; \ >> PARAMFILE=${.CURDIR}/../sys/sys/param.h; \ >> . ${.CURDIR}/../sys/conf/newvers.sh; \ >> >> Now the question is how to fix this? >> >> -Kimmo > > Perhaps it could be handled similar to PARAMFILE, something like this in > the makefile: > > PARAMFILE=${.CURDIR}/../sys/sys/param.h; \ > SYSDIR=${.CURDIR}/../sys; \ > . ${.CURDIR}/../sys/conf/newvers.sh; \ > > I'm not sure if newvers.sh needs to work in ways that don't involve > being invoked from that makefile rule, so to be safe it could have > default handling, something like: > > : ${SYSDIR:=$(dirname $0)/..} > > -- Ian > > Thanks, that works. Should I file a PR about this? -Kimmo
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2B7WWSfJSRG9_CT7b605_3h7CVR-uWBU0Ejxc5PvEDJaDOvX%2BQ>