Date: Thu, 9 Aug 2001 12:30:57 +0300 From: Ruslan Ermilov <ru@FreeBSD.ORG> To: "David O'Brien" <obrien@FreeBSD.ORG> Cc: current@FreeBSD.ORG Subject: Cross builds and upgrade path from 4.x are broken in usr.bin/file Message-ID: <20010809123057.A2745@sunbay.com>
next in thread | raw e-mail | index | archive | help
--1yeeQ81UyVL57Vl7 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline David! As you have been warned, revisions 1.19 and 1.20 to file/Makefile broke cross builds and upgrade path from 4.x to 5.0. This is due to the use of just built ./file binary to produce magic.mgc and magic.mime.mgc files. In the case of 4.x->5.0 upgrade, buildworld bombs with ./file -C -m magic /usr/libexec/ld-elf.so.1: Shared object "libc.so.5" not found *** Error code 1 when trying to compile the "magic" file. In the cross build case, the "./file" binary is targetted for a different platform. The attached patch adds `build-tools' target to usr.bin/file that build "xfile" binary on the host platform, and that is used to compile magic and magic.mime file. (This is done similar to how it's done in usr.bin/sysinstall, in case you wonder.) Simply adding usr.bin/file to bootstrap-tools did not work because the "all" target in file/Makefile depends on .mgc files, and this requires -C flag to be available at "make all" in usr.bin/file when running through `bootstrap-tools' stage of Makefile.inc1. Actually, we can still bootstrap the file(1), and use it later at `buildworld' time, but this is somewhat tricky. We would: 1) Add usr.bin/file to bootstrap-tools 2) Add -DBOOTSTRAPPING flag to ${BMAKE} 3) Check this flag from within file/Makefile If this flag is set, we could skip building/installing .mgc files. But by concept, this should be a build-tool anyway. It just appears to be the first precedence where a tool is also a build tool. (Compare with sysinstall.) 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 --1yeeQ81UyVL57Vl7 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/09 09:21:15 @@ -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/09 09:21:15 @@ -34,23 +34,28 @@ 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+= xfile 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: xfile + +xfile: ${SRCS} + ${CC} ${CFLAGS} -o ${.TARGET} ${.ALLSRC} + magic: ${MAGFILES} cat ${.ALLSRC} > ${.TARGET} magic.mgc: file magic - ./${PROG} -C -m magic + ./xfile -C -m magic magic.mime.mgc: file magic.mime ln -sf ${SRCDIR}/magic.mime magic.mime.PITA - ./${PROG} -C -m magic.mime.PITA + ./xfile -C -m magic.mime.PITA mv magic.mime.PITA.mgc magic.mime.mgc CLEANFILES+= print-hacked.c --1yeeQ81UyVL57Vl7-- 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?20010809123057.A2745>