From owner-freebsd-current Fri Aug 10 7:45:24 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 895CE37B405; Fri, 10 Aug 2001 07:41:17 -0700 (PDT) (envelope-from ru@whale.sunbay.crimea.ua) Received: (from ru@localhost) by whale.sunbay.crimea.ua (8.11.2/8.11.2) id f7AEbpO64365; Fri, 10 Aug 2001 17:37:51 +0300 (EEST) (envelope-from ru) Date: Fri, 10 Aug 2001 17:37:51 +0300 From: Ruslan Ermilov To: Bruce Evans Cc: Warner Losh , "David O'Brien" , current@FreeBSD.ORG Subject: Re: Cross builds and upgrade path from 4.x are broken in usr.bin/file Message-ID: <20010810173751.B60193@sunbay.com> Mail-Followup-To: Bruce Evans , Warner Losh , David O'Brien , current@FreeBSD.ORG References: <20010810110151.B7988@sunbay.com> <20010810235643.Y23367-100000@besplex.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: <20010810235643.Y23367-100000@besplex.bde.org>; from bde@zeta.org.au on Sat, Aug 11, 2001 at 12:17:24AM +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 Sat, Aug 11, 2001 at 12:17:24AM +1000, Bruce Evans wrote: > On Fri, 10 Aug 2001, Ruslan Ermilov wrote: > > > On Fri, Aug 10, 2001 at 01:28:31AM -0600, Warner Losh wrote: > > > In message <20010809123057.A2745@sunbay.com> Ruslan Ermilov writes: > > > : As you have been warned, revisions 1.19 and 1.20 to file/Makefile > > > > > > This looks like it should work. I'm starting a build before I head to > > > bed with the changes to see if they really do work or not. It is a > > > little ugly, but not so ugly that I'd object overmuch. > > > > > Not uglier than, say, in usr.sbin/sysinstall/Makefile. Imagine that > > the -C functionality has been moved into its own utility. Then > > things become much more obvious. And yes, it worked for me last night > > on a fresh 5.0 `make world' run on a 4.3-STABLE box. > > Mark Peek noticed the cross-building problem and sent a little less ugly > fix to a few (?) people a couple of days ago. His version just runs > "./file -C" at install time. This is ugly but avoids depending on file(1) > working as a cross-tool, provided "make install" is run on the target. > I can't believe I hear that from you, Bruce. :-) Generation at install time is a damn bad idea, please see below. [...] > > I am going to commit my patch tomorrow, unless I hear any better > > ideas of how to fix this. > > I hope you have heard better ideas :-). Here is the latest version of > Mark's patch that I have. > > --- > Index: Makefile > =================================================================== > RCS file: /home/ncvs/src/usr.bin/file/Makefile,v > retrieving revision 1.21 > diff -u -r1.21 Makefile > --- Makefile 2001/08/08 16:19:30 1.21 > +++ Makefile 2001/08/08 16:59:22 > @@ -34,32 +34,25 @@ > CFLAGS+= -DMAGIC='"${MAGICPATH}/magic"' -DBUILTIN_ELF -DELFCORE -DHAVE_CONFIG_H > CFLAGS+= -I${.CURDIR} -I${SRCDIR} > > -CLEANFILES+= magic magic.mgc magic.mime.mgc magic.mime.PITA > +CLEANFILES+= magic > > MAGFILES= ${SRCDIR}/Header\ > ${SRCDIR}/Localstuff\ > ${SRCDIR}/Magdir/[a-z]* > > -all: file magic magic.mgc magic.mime.mgc > +all: file magic > > magic: ${MAGFILES} > cat ${.ALLSRC} > ${.TARGET} > > -magic.mgc: file magic > - ./${PROG} -C -m magic > - > -magic.mime.mgc: file magic.mime > - ln -sf ${SRCDIR}/magic.mime magic.mime.PITA > - ./${PROG} -C -m magic.mime.PITA > - mv magic.mime.PITA.mgc magic.mime.mgc > - > CLEANFILES+= print-hacked.c > print-hacked.c: print.c > sed -e 's|daylight|0/*daylight*/|g' ${.ALLSRC} > ${.TARGET} > > beforeinstall: > ${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m ${MAGICMODE} \ > - magic magic.mgc ${SRCDIR}/magic.mime magic.mime.mgc \ > - ${DESTDIR}${MAGICPATH} > + magic ${SRCDIR}/magic.mime ${DESTDIR}${MAGICPATH} > + ./file -C -m ${DESTDIR}${MAGICPATH}/magic > + ./file -C -m ${DESTDIR}${MAGICPATH}/magic.mime > > .include > --- 1. This won't work for cross-platform installworld, since ./file is targetted for a different platform. (My version builds the xfile build-tool for the build platform and compiles .mgc files in ${.OBJDIR}.) 2. .mgc files get wrong ownership and file modes. (My version installs them with correct ownership and modes.) 3. usr.bin/file still needs to be bootstrapped, because -C is a new option. (My version doesn't need bootstrapping file, because it is only used as a `build-tool'.) 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