From owner-freebsd-current Sun Apr 1 14:36:42 2001 Delivered-To: freebsd-current@freebsd.org Received: from Awfulhak.org (awfulhak.demon.co.uk [194.222.196.252]) by hub.freebsd.org (Postfix) with ESMTP id 2706D37B718; Sun, 1 Apr 2001 14:36:32 -0700 (PDT) (envelope-from brian@Awfulhak.org) Received: from hak.lan.Awfulhak.org (root@hak.lan.Awfulhak.org [172.16.0.12]) by Awfulhak.org (8.11.3/8.11.3) with ESMTP id f31Lal816259; Sun, 1 Apr 2001 22:36:47 +0100 (BST) (envelope-from brian@lan.Awfulhak.org) Received: from hak.lan.Awfulhak.org (brian@localhost [127.0.0.1]) by hak.lan.Awfulhak.org (8.11.3/8.11.3) with ESMTP id f31Lekn79771; Sun, 1 Apr 2001 22:40:46 +0100 (BST) (envelope-from brian@hak.lan.Awfulhak.org) Message-Id: <200104012140.f31Lekn79771@hak.lan.Awfulhak.org> X-Mailer: exmh version 2.3.1 01/18/2001 with nmh-1.0.4 To: John Hay , Brian Somers , Josef Karthauser , current@FreeBSD.ORG Subject: Re: make release broken in telnetd In-Reply-To: Message from Ruslan Ermilov of "Fri, 30 Mar 2001 11:08:31 +0300." <20010330110831.A50935@sunbay.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sun, 01 Apr 2001 22:40:46 +0100 From: Brian Somers Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hi, I'm not convinced that the patch will help. It looks like the error is because it's using the ppp.lo that was built with crypto support but without the mppe bits. Maybe other objects (such as ccp.o in this case - which seems to be built with HAVE_DES and therefore includes MPPEAlgorithm in it's struct ccp_algorithm) aren't being rebuilt ? Maybe the make clean isn't cleaning ccp.o etc ? > Hi! > > This was tricky. Due to the old bug in release/Makefile (it did > not pass -DRELEASE_CRUNCH when building list of object files for > crunched binary), ${OBJS} list for ppp was computed incorrectly, > and ppp/Makefile had a special glue to build empty object files: > > : .if defined(RELEASE_CRUNCH) > : # We must create these objects because crunchgen will link them, > : # and we don't want any unused symbols to spoil the final link. > : CFLAGS+=-DNONAT -DNORADIUS -DNOI4B -DNOSUID > : OBJS+= chap_ms.o mppe.o id.o nat_cmd.o radius.o > : chap_ms.o mppe.o id.o nat_cmd.o radius.o: > : >null_${.PREFIX}.c > : cc -c -o ${.TARGET} null_${.PREFIX}.c > : .endif > > Recall that release/Makefile executes `make subclean all' against > the crunchgen(1) generated .mk file. Previously, `subclean' was > executed with the -DRELEASE_CRUNCH; this removed chap_ms.o, and > subsequent `make all' had a chance to build chap_ms.o from the > stub rule above: > > : # make -n -DRELEASE_CRUNCH chap_ms.o > : >null_chap_ms.c > : cc -c -o chap_ms.o null_chap_ms.c > > Now that -DRELEASE_CRUNCH is moved to crunchgen(1) .conf files > (recall that I needed this so that ${OBJS} are computed correctly > for telnet/Makefile), ppp/Makefile got broken. `subclean' does > not cleans chap_ms.o, and subsequent `make all' considers it > up-to-date. > > The attached patch should fix this. Please let me know... > > Actually, I have just committed a fix to crunchgen(1) so that > it runs `make clean' with the ${BUILDOPTS}, to avoid possible > failures in the future. This fix alone should be enough to > fix the broken `make release', but please test with the attached > patch too. > > : ru 2001/03/30 00:04:25 PST > : > : Modified files: > : usr.sbin/crunch/crunchgen crunchgen.c > : Log: > : `buildopts' may affect the selection of object files. > : Make sure we pass $(BUILDOPTS) to the `clean' target > : so that `make clean' works on the same set of object > : files. Otherwise, we may end up with an incorrectly > : built and up-to-date object file. > : > : Revision Changes Path > : 1.26 +2 -2 src/usr.sbin/crunch/crunchgen/crunchgen.c > > On Thu, Mar 29, 2001 at 07:10:57PM +0200, John Hay wrote: > > Hi Ruslan, > > > > > > > > Could you please try the attached patch and let me know? > > > > > > I had to move -DRELEASE_CRUNCH to *_fixit.conf so that > > > ${OBJS} are computed correctly for usr.bin/telnet. > > > > I have tried it, but now it breaks in boot_crunch: > > > > ########## > > cc -O -pipe -DCRUNCHED_BINARY -c tunefs_stub.c > > ld -dc -r -o tunefs.lo tunefs_stub.o /usr/obj//usr/src/sbin/tunefs/tunefs.o > > crunchide -k _crunched_tunefs_stub tunefs.lo > > cc -static -o boot_crunch boot_crunch.o sh.lo find.lo sed.lo test.lo rm.lo pwd.l > > o ppp.lo sysinstall.lo newfs.lo minigzip.lo cpio.lo fsck.lo ifconfig.lo route.lo > > slattach.lo mount_nfs.lo dhclient.lo arp.lo hostname.lo rtsol.lo pccardc.lo pcc > > ardd.lo usbd.lo usbdevs.lo tunefs.lo -ll -ledit -lutil -lkvm -lmd -lcrypt -lftpi > > o -lz -lnetgraph -ldialog -lncurses -lmytinfo -ldisk -lipx > > ppp.lo: In function `MakeKey': > > ppp.lo(.text+0xfe): undefined reference to `des_set_odd_parity' > > ppp.lo: In function `DesEncrypt': > > ppp.lo(.text+0x142): undefined reference to `des_set_key' > > ppp.lo(.text+0x14f): undefined reference to `des_ecb_encrypt' > > ppp.lo: In function `MPPEKeyChange': > > ppp.lo(.text+0x7b6): undefined reference to `RC4_set_key' > > ppp.lo(.text+0x7ca): undefined reference to `RC4' > > ppp.lo: In function `MPPEOutput': > > ppp.lo(.text+0x85b): undefined reference to `RC4_set_key' > > ppp.lo(.text+0x898): undefined reference to `RC4' > > ppp.lo(.text+0x8bd): undefined reference to `RC4' > > ppp.lo: In function `MPPEInput': > > ppp.lo(.text+0x9f7): undefined reference to `RC4_set_key' > > ppp.lo(.text+0xa18): undefined reference to `RC4' > > ppp.lo(.text+0xa4e): undefined reference to `RC4' > > *** Error code 1 > > > > Stop in /usr/src/release/boot_crunch. > > *** Error code 1 > > ... > > ########### > > -- > 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 -- Brian Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message