From owner-freebsd-current Tue Sep 4 1:25:11 2001 Delivered-To: freebsd-current@freebsd.org Received: from whale.sunbay.crimea.ua (whale.sunbay.crimea.ua [212.110.138.65]) by hub.freebsd.org (Postfix) with ESMTP id 6C5AA37B408; Tue, 4 Sep 2001 01:24:57 -0700 (PDT) Received: (from ru@localhost) by whale.sunbay.crimea.ua (8.11.2/8.11.2) id f848OTO43787; Tue, 4 Sep 2001 11:24:29 +0300 (EEST) (envelope-from ru) Date: Tue, 4 Sep 2001 11:24:29 +0300 From: Ruslan Ermilov To: Bruce Evans Cc: Jordan Hubbard , current@FreeBSD.ORG Subject: Re: Build problem in -current Message-ID: <20010904112429.A32825@sunbay.com> References: <20010902115310W.jkh@freebsd.org> <20010903210756.V7393-100000@alphplex.bde.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20010903210756.V7393-100000@alphplex.bde.org>; from bde@zeta.org.au on Mon, Sep 03, 2001 at 09:36:46PM +1000 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Mon, Sep 03, 2001 at 09:36:46PM +1000, Bruce Evans wrote: > On Sun, 2 Sep 2001, Jordan Hubbard wrote: > > > cd /usr/src/usr.bin/xinstall; make _EXTRADEPEND > > echo xinstall: /usr/obj/usr/src/i386/usr/lib/libc.a >> .depend > > cc -O -pipe -I/usr/obj/usr/src/i386/usr/include -c /usr/src/usr.bin/xinstall > > /xinstall.c > > cc -O -pipe -I/usr/obj/usr/src/i386/usr/include -static -o xinstall xinstal > > l.o > > xinstall.o: In function `main': > > xinstall.o(.text+0x83): undefined reference to `strtofflags' > > *** Error code 1 > > > > This is from a relatively old -current coming up to a new (today's) > > -current. I suspect somebody added a call for install yet forgot to > > alter the bootstrap tools target accordingly (or did but in the wrong > > place). Thanks. > > Index: Makefile > =================================================================== > RCS file: /home/ncvs/src/usr.bin/xinstall/Makefile,v > retrieving revision 1.15 > diff -u -2 -r1.15 Makefile > --- Makefile 2 Apr 2001 11:54:59 -0000 1.15 > +++ Makefile 3 Sep 2001 11:18:33 -0000 > @@ -2,6 +2,9 @@ > # $FreeBSD: src/usr.bin/xinstall/Makefile,v 1.15 2001/04/02 11:54:59 ru Exp $ > > +.PATH: ${.CURDIR}/../../lib/libc/gen > + > PROG= xinstall > PROGNAME= install > +SRCS= strtofflags.c xinstall.c > MAN= install.1 > I don't like this, as it unconditionally compiles in strtofflags.c, even if the host has libc support for it. This also breaks single-module-checkout compilation. How about this instead? The strtofflags() interface has been added to HEAD in unistd.h,v 1.36, on 2000/06/17, and to RELENG_4 in unistd.h,v 1.35.2.1, on 2000/07/03. This change has not been reflected by the __FreeBSD_version bump. The nearest (by date) version bumps are as follows: CURRENT, param.h,v 1.72, 500007 RELENG_4, param.h,v 1.61.2.6: 400021 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 I also think that the ${OSVERSION} stuff should be in sys.mk. > Unfixed bugs: this will have to be fixed better before turning on WARNS. > strtofflags() won't be declared in the host includes if the host libraries > don't have it. Similarly in mtree (where I obtained this fix from) and > in any other tools that use strtofflags(). All these bugs were missing in > the old versions that used ls's version of strtofflags. > This could be solved similarly from within xinstall.c. I.e., we could prototype strtofflags() and fflagstostr() manually if __FreeBSD_version checks fail. > Nearby bugs: mtree/Makefile uses !defined(WORLD) to avoid depending on > the host having libmd, but someone removed the definition of WORLD from > src/Makefile.inc1. > The correct fix would be: Index: Makefile =================================================================== RCS file: /home/ncvs/src/usr.sbin/mtree/Makefile,v retrieving revision 1.21 diff -u -r1.21 Makefile --- Makefile 2001/07/20 06:20:02 1.21 +++ Makefile 2001/09/04 08:22:19 @@ -8,10 +8,10 @@ SRCS= compare.c crc.c create.c excludes.c misc.c mtree.c spec.c verify.c \ strtofflags.c -.if !defined(WORLD) +.include + +.if defined(LIBMD) && exists(${LIBMD}) CFLAGS+= -DMD5 -DSHA1 -DRMD160 DPADD= ${LIBMD} LDADD= -lmd .endif - -.include 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