Date: Mon, 17 Sep 2001 10:13:03 +0300 From: Ruslan Ermilov <ru@FreeBSD.ORG> To: Bruce Evans <bde@zeta.org.au> Cc: Jordan Hubbard <jkh@FreeBSD.ORG>, current@FreeBSD.ORG Subject: Re: Build problem in -current Message-ID: <20010917101303.C48120@sunbay.com> In-Reply-To: <20010915032356.M20847-100000@delplex.bde.org>; from bde@zeta.org.au on Sat, Sep 15, 2001 at 03:57:26AM %2B1000 References: <20010905181810.V96906@sunbay.com> <20010915032356.M20847-100000@delplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Sep 15, 2001 at 03:57:26AM +1000, Bruce Evans wrote: > On Wed, 5 Sep 2001, Ruslan Ermilov wrote: > > > On Wed, Sep 05, 2001 at 09:44:05PM +1000, Bruce Evans wrote: > > [...] > > > > Index: Makefile > > > > =================================================================== > > > > RCS file: /home/ncvs/src/usr.bin/xinstall/Makefile,v > > > > retrieving revision 1.15 > > > > diff -u -r1.15 Makefile > > > > --- Makefile 2001/04/02 11:54:59 1.15 > > > > +++ Makefile 2001/09/04 08:11:52 > > > > @@ -3,6 +3,22 @@ > > > > > > > > PROG= xinstall > > > > PROGNAME= install > > > > +SRCS= xinstall.c > > > > MAN= install.1 > > > > + > > > > +# Get __FreeBSD_version > > > > +.if !defined(OSVERSION) > > > > +.if exists(/sbin/sysctl) > > > > +OSVERSION!= /sbin/sysctl -n kern.osreldate > > > > +.else > > > > +OSVERSION!= /usr/sbin/sysctl -n kern.osreldate > > > > +.endif > > > > +.endif > > > > + > > > > +.if ${OSVERSION} < 400021 || \ > > > > + ${OSVERSION} >= 500000 && ${OSVERSION} < 500007 > > > > +.PATH: ${.CURDIR}/../../lib/libc/gen > > > > +SRCS+= strtofflags.c > > > > +.endif > > > > > > > > .include <bsd.prog.mk> > > > > > > Ugh. This is even worse than using __FreeBSD_version. It is broken > > > for non-FreeBSD hosts. Hmm, this case is broken in my version too. > > > Non-FreeBSD hosts might not have have FreeBSD file flags, so they might > > > not have the definitions of the magic numbers necessary for strtofflags.c > > > to compile; they might not even have the necessary headers. > > > > > What do I hear?! Are we required to support non-FreeBSD hosts at the > > Makefile level? That would be too conservative, and is already broken > > in many other ways. > > > > > It is unreasonable to expect the target source strtofflags.c to be > > > compilable in the host environment. > > > > > But we can at least try (with high probability of success) -- this is > > better than the current breakage Jordan observes. > > I think it's easier to make a fairly general case work than fix special > cases as they turn up. > But we only need to "fix" these special (bootstrapping) cases. > > > The correct fix is to not support file flags in the bootstrap > > > version of install. > > > > > But we now always bootstrap install(1). Not including support for > > file flags here would mean "no support for file flags during the > > installworld". > > That's certainly a problem. I still don't see the point of the runtime > test to avoid using strtofflags.c. strttofflags.c is just as portable as > the xinstall sources (modulo the dependency on <unistd.h> declaring the > things in it, if WARNS is turned on). > Probably because you build your world static? :-) In a non-static case (like for the normal ``make buildworld''), strtofflags.c is the version that is getting compiled into, if used unconditionally. If there would be a way to distinguish before bootstrapping and normal builds, I would definitely agree. Something as simple as this might work as well: Index: Makefile.inc1 =================================================================== RCS file: /home/ncvs/src/Makefile.inc1,v retrieving revision 1.215 diff -u -r1.215 Makefile.inc1 --- Makefile.inc1 2001/08/29 09:11:03 1.215 +++ Makefile.inc1 2001/09/17 07:13:50 @@ -180,7 +180,7 @@ # bootstrap-tool stage BMAKEENV= ${BOOTSTRAPENV} BMAKE= ${BMAKEENV} ${MAKE} -f Makefile.inc1 -DNOHTML -DNOINFO \ - -DNOMAN -DNOPIC -DNOPROFILE -DNOSHARED + -DNOMAN -DNOPIC -DNOPROFILE -DNOSHARED -DBOOTSTRAPPING # build-tool stage TMAKEENV= MAKEOBJDIRPREFIX=${OBJTREE} \ Index: usr.bin/xinstall/Makefile =================================================================== RCS file: /home/ncvs/src/usr.bin/xinstall/Makefile,v retrieving revision 1.15 diff -u -r1.15 Makefile --- usr.bin/xinstall/Makefile 2001/04/02 11:54:59 1.15 +++ usr.bin/xinstall/Makefile 2001/09/17 07:13:50 @@ -3,6 +3,12 @@ PROG= xinstall PROGNAME= install +SRCS= xinstall.c MAN= install.1 + +.if defined(BOOTSTRAPPING) +.PATH: ${.CURDIR}/../../lib/libc/gen +SRCS+= strtofflags.c +.endif .include <bsd.prog.mk> Cheers, -- Ruslan Ermilov Oracle Developer/DBA, ru@sunbay.com Sunbay Software AG, ru@FreeBSD.org FreeBSD committer, +380.652.512.251 Simferopol, Ukraine http://www.FreeBSD.org The Power To Serve http://www.oracle.com Enabling The Information Age To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010917101303.C48120>