From owner-freebsd-current Sat Jun 10 23:43:53 2000 Delivered-To: freebsd-current@freebsd.org Received: from gidora.zeta.org.au (gidora.zeta.org.au [203.26.10.25]) by hub.freebsd.org (Postfix) with SMTP id E328237BF0D for ; Sat, 10 Jun 2000 23:43:48 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: (qmail 24990 invoked from network); 11 Jun 2000 06:43:45 -0000 Received: from unknown (HELO bde.zeta.org.au) (203.2.228.102) by gidora.zeta.org.au with SMTP; 11 Jun 2000 06:43:45 -0000 Date: Sun, 11 Jun 2000 16:43:41 +1000 (EST) From: Bruce Evans X-Sender: bde@besplex.bde.org To: Kris Kennaway Cc: current@FreeBSD.ORG Subject: Re: 4.x buildworlds broken on -current In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Sat, 10 Jun 2000, Kris Kennaway wrote: > Recent compiler changes seem to have broken the ability to do 4.x > buildworlds under -current - I've tested this on beast.freebsd.org and my > own machines and got the same result. The build dies during the compiler > phase with lots of stuff like: > > /morden/usr3/tmp/obj//morden/usr3/tmp/src/i386/morden/usr3/tmp/src/gnu/usr.bin/cc/cc1plus/../cc_int/libcc_int.a(c-decl.o): In > function `finish_function': > c-decl.o(.text+0x8360): multiple definition of `finish_function' > decl.o(.text+0x10880): first defined here > /usr/libexec/elf/ld: Warning: size of symbol `finish_function' changed > from 3003 to 565 in c-decl.o > ... This is a bug in the cc Makefiles in 4.x. It was fixed in -current in: # RCS file: /home/ncvs/src/gnu/usr.bin/cc/cc_int/Makefile,v # Working file: Makefile # head: 1.26 # ... # ---------------------------- # revision 1.26 # date: 2000/05/24 20:02:21; author: obrien; state: Exp; lines: +2 -2 # Move c-decl.c out of the common libcc_int.a into the binary Makefiles # where it is used. c-decl has symbols that conflict with several of the # cc1plus sources. # # GNU `ld' was changed in Dec 1999 to be more be compatable with the way that # other linkers work (specifically in the Solaris linker). The 2.9.1 `ld', # did the Wrong Thing in that if a library contained a common symbol that # matched a definition of that symbol in another (already linked in object) # it would also be linked in, even if there was no other reason to do so. # This is wrong. The library should only be linked in if it contains # non-common, non-weak symbols which are needed by previously linked in # objects. # ---------------------------- etc. This could be fixed by MFC to RELENG_4, but bootstrapping from 4.0, 3.x and 2.x is much harder to fix. Building old kernels under -current is becoming difficult. I build kernels for RELENG_3 and RELENG_4. This causes a lot of new warnings about invalid assembler, but still works, at least a week ago. I left genassym(1) in /usr/bin to avoid breaking the build of RELENG_4 kernels until the genassym changes are MFC'ed. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message