Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Sep 2002 11:51:12 -0700
From:      Peter Wemm <peter@wemm.org>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        "David O'Brien" <obrien@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src Makefile src/usr.bin/make Makefile 
Message-ID:  <20020902185112.1016F2A896@canning.wemm.org>
In-Reply-To: <20020903011057.W3883-100000@gamplex.bde.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans wrote:
> On Mon, 2 Sep 2002, Peter Wemm wrote:
> 
> > "David O'Brien" wrote:
> > > On Sat, Aug 31, 2002 at 12:18:40AM -0700, Peter Wemm wrote:
> > > [about -DBOOTSTRAPPING and newer warts]
> 
> > > I thought we were going to impliment these warts with some form of
> > > __FreeBSD_version test -- so they don't impact source bases that don't
> > > need them, and more importantly so it is documented the time range they
> > > cover so we know when to remove them.
> >
> > Go for your life.  Personally, I think that this sort of stuff should be
> > removed from critical bootstrap tools with extreme prejudice.
> 
> I hope you mean including the __FreeBSD_version wart.

Actually, the __FreeBSD_version tests might be pretty complicated now.
Especially since it comes from different headers.  <osreldate.h> on older
systems, <sys/param.h> on newer ones.  I'd rather we just reset make back
to use __RCSID (since that is in all BSD sys/cdefs.h) or plain static const
char rcsid[] = "string"; since that works on everything.  But *definately*
not __FBSDID here, the #if's and crud needed to make this work would be worse
than any percieved cosmetic gain from using __FBSDID().

> > Next problem:  make has got /bin/sh hardcoded by absolute path.  This burns
> > us during an 4.x->5.x upgrade when /bin/sh is replaced before make has
> > finished running things and the freshly installed /bin/sh gets a SIGSYS on
> > eaccess(2).  If that is solved, then we can avoid one reboot.
> 
> I have used a hacked test/test.c with a function named eaccess() since this
> problem first bit me.  I sometimes boot old kernels that don't have eaccess(2
    ).
> Current kernels from 2 years ago still mostly work with current userlands
> apart from this.  (Many sysctls and things like ps don't work.  More
> interestingly, soft updates causes panics when a file is removed.)

Or, if we want to get really evil, we could set a SIGSYS handler the first
time we try and call eaccess() and revert to plain access() if the syscall
isn't present. :-)

> Bruce

Cheers,
-Peter
--
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020902185112.1016F2A896>