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,
[EMAIL PROTECTED] Sunbay Software AG,
[EMAIL PROTECTED] 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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message