Date: Tue, 14 Aug 2001 20:30:45 +0300 From: Ruslan Ermilov <ru@FreeBSD.ORG> To: current@FreeBSD.ORG Cc: Mark Peek <mark@whistle.com>, Bruce Evans <bde@zeta.org.au>, Warner Losh <imp@harmony.village.org> Subject: Re: Cross builds and upgrade path from 4.x are broken in usr.bin/file Message-ID: <20010814203045.A60765@sunbay.com> In-Reply-To: <20010814085556.E73693@dragon.nuxi.com>; from obrien@FreeBSD.ORG on Tue, Aug 14, 2001 at 08:55:56AM -0700 References: <20010810110151.B7988@sunbay.com> <20010810235643.Y23367-100000@besplex.bde.org> <20010810173751.B60193@sunbay.com> <p05100300b799a7ab0ef4@[207.76.207.129]> <20010810191407.A73485@sunbay.com> <p05100305b799bb5daf9c@[207.76.207.129]> <20010810202300.A80439@sunbay.com> <20010813133015.A12153@dragon.nuxi.com> <20010814095404.A71466@sunbay.com> <20010814085556.E73693@dragon.nuxi.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Tue, Aug 14, 2001 at 08:55:56AM -0700, David O'Brien wrote:
> On Tue, Aug 14, 2001 at 09:54:04AM +0300, Ruslan Ermilov wrote:
> > > They produce the same output, but in the general case they do not need
> > > to.
> >
> > What I hear? Hell, then my solution (or something similar) should be
> > committed, as it at least unbreaks the 4.x -> 5.0 upgrade path, which
> > I am mostly concerned about (on the same arch).
>
> I never said they weren't the same format nor that it wouldn't be fixed.
> I said I wanted to try some things. NetBSD something simular to the
> patch below in their usr.bin/file/Makefile -- they build the .mgc files
> during build time. The patch to src/Makefile.inc is one way to implement
> the needed hooks.
>
Good.
> >From a correctness stand point, building the .mgc files at install time
> is the correct thing to do... or maybe we should do both -- doing the
> [re]creation of the .mgc files at install time in the cross-[arch-]build
> case.
>
Just to clarify. Nothing should be built in ${.OBJDIR} at install time,
as it may be read-only. The build in ${DESTDIR} is allowed, we, for
example, execute makewhatis(1) at the end of `installworld'. But this
"build" is implicit, i.e., it's not done by make dependencies. And
also note that only bootstrap-tools and utilities copied to the
${TMPPATH} as the first step of `installworld' are allowed during
`installworld'.
> +mkmagic: apprentice.c print-hacked.c
> + ${HOST_CC} -o mkmagic -DHAVE_CONFIG_H -DCOMPILE_ONLY \
> + -I${.CURDIR} -I${SRCDIR} ${.ALLSRC}
>
Whoa, cool!
That's what I wanted from the very beginning (-DCOMPILE_ONLY knob).
It then fits just nicely into the `build-tools' concept. And we
don't need this ugly HOST_CC hack for Makefile.inc1, as ${CC} is
set correctly during the `build-tools' stage. Let's don't reinvent
the wheel, and please try the attached patch instead.
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
--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=p
Index: Makefile.inc1
===================================================================
RCS file: /home/ncvs/src/Makefile.inc1,v
retrieving revision 1.208
diff -u -r1.208 Makefile.inc1
--- Makefile.inc1 2001/08/04 18:25:38 1.208
+++ Makefile.inc1 2001/08/14 17:30:11
@@ -600,7 +600,8 @@
build-tools:
.for _tool in bin/csh bin/sh ${_games} gnu/usr.bin/cc/cc_tools ${_fortran} \
- ${_libroken4} ${_libkrb5} lib/libncurses ${_share} usr.sbin/sysinstall
+ ${_libroken4} ${_libkrb5} lib/libncurses ${_share} usr.bin/file \
+ usr.sbin/sysinstall
cd ${.CURDIR}/${_tool}; ${MAKE} build-tools
.endfor
Index: usr.bin/file/Makefile
===================================================================
RCS file: /home/ncvs/src/usr.bin/file/Makefile,v
retrieving revision 1.21
diff -u -r1.21 Makefile
--- usr.bin/file/Makefile 2001/08/08 16:19:30 1.21
+++ usr.bin/file/Makefile 2001/08/14 17:30:11
@@ -34,23 +34,29 @@
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+= mkmagic magic magic.mgc magic.mime.mgc magic.mime.PITA
MAGFILES= ${SRCDIR}/Header\
${SRCDIR}/Localstuff\
${SRCDIR}/Magdir/[a-z]*
-all: file magic magic.mgc magic.mime.mgc
+all: ${PROG} magic magic.mgc magic.mime.mgc
+build-tools: mkmagic
+
+mkmagic: apprentice.c print-hacked.c
+ ${CC} -DHAVE_CONFIG_H -DCOMPILE_ONLY \
+ -I${.CURDIR} -I${SRCDIR} -o ${.TARGET} ${.ALLSRC}
+
magic: ${MAGFILES}
cat ${.ALLSRC} > ${.TARGET}
-magic.mgc: file magic
- ./${PROG} -C -m magic
+magic.mgc: mkmagic magic
+ ./mkmagic magic
-magic.mime.mgc: file magic.mime
+magic.mime.mgc: mkmagic magic.mime
ln -sf ${SRCDIR}/magic.mime magic.mime.PITA
- ./${PROG} -C -m magic.mime.PITA
+ ./mkmagic magic.mime.PITA
mv magic.mime.PITA.mgc magic.mime.mgc
CLEANFILES+= print-hacked.c
--k+w/mQv8wyuph6w0--
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?20010814203045.A60765>
