From owner-freebsd-hackers Tue Feb 13 21:21:42 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id VAA08498 for hackers-outgoing; Tue, 13 Feb 1996 21:21:42 -0800 (PST) Received: from rocky.sri.MT.net (rocky.sri.MT.net [204.182.243.10]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id VAA08453 for ; Tue, 13 Feb 1996 21:21:36 -0800 (PST) Received: (from nate@localhost) by rocky.sri.MT.net (8.6.12/8.6.12) id WAA25320; Tue, 13 Feb 1996 22:20:11 -0700 Date: Tue, 13 Feb 1996 22:20:11 -0700 From: Nate Williams Message-Id: <199602140520.WAA25320@rocky.sri.MT.net> To: Peter Dufault Cc: nate@sri.MT.net (Nate Williams), hackers@freebsd.org Subject: Re: Q: Somebody working on more recent binutils ? In-Reply-To: <199602140209.VAA23082@hda.com> References: <199602132328.QAA24481@rocky.sri.MT.net> <199602140209.VAA23082@hda.com> Sender: owner-hackers@freebsd.org Precedence: bulk Peter Dufault writes: > > > > > I'd like to know if someone is porting gas/ld 2.6 or 2.5.x ? > > > > Gas works already, ld is not going to happen anytime soon, if at all. > > > > > To have a more recent gas/ld than the ones coming with the > > > distribution is absolutely necessary for running g++ 2.7.2 > > > andd libg++2.7.1 because g++ needs the .weak symbols in > > > some circumstances to produce the 'right' code. > > > > Are you absolutely *sure*? According to recent reports posted to this > > list (today or yesterday) it isn't necessary. All that's required is to > > remove the creation of .weak symbols by gcc2.7.2. > > All I really know so far is that Ptolemy builds and at least some > demos run without the .weak symbol support. I was just going to test > things some more. I'd sure like the definitive > answer on .weak symbols and the need in g++. The funny thing about the weak symbol support is that I remember bringing in changes were the NetBSD logs purported to support weak symbols. revision 1.24 date: 1995/03/04 17:46:05; author: nate; state: Exp; lines: +242 -138 Weak symbol support from NetBSD. This should bring us in sync with the NetBSD ld code except for local changes for dlopen() and friends and the hashing on the minor value of the shlibs. We should be binary compatible now with all their libraries. It may be that the linker is not generating them in a manner that FreeBSD expects. Looking at the NetBSD stuff would be a good way to find out. > > The version of ld in FreeBSD is a *very* old version (1.X). It has been > > *heavily* hacked to support shared libraries. The current binutils is > > at version 2, which is *radically* different from version 1, so it's not > > a simple matter of 'updating' the bits. > > > > There are folks who are good at this who have already looked at the code > > and went *YUCK*, so I suspect you won't find anyone willing to do the > > work unless you've got $$ to pony-up for the project. (And, you still > > might not find anyone willing.) > > I don't know, Nate. I think the need to run the new g++ will outweigh > any "yuckiness" in the job if we really need to hack in .weak support. > I don't know what a weak symbol is - but it probably isn't that bad > to hack weak support into our linker if we have to. Adding weak support is something completely different to updating the ld souces to the version in the newest binutils. The former is doable and less painful, the latter is very painful and I suspect won't be done. Nate