Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Jul 2006 17:18:07 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Peter Jeremy <peterjeremy@optushome.com.au>, freebsd-current@freebsd.org, Mikhail Teterin <mi+kde@aldan.algebra.com>
Subject:   Re: weird limitation on the system's binutils
Message-ID:  <20060705171517.H18236@fledge.watson.org>
In-Reply-To: <200607051142.28352.jhb@freebsd.org>
References:  <200607010009.09231@aldan> <20060701115508.GC8447@turion.vk2pj.dyndns.org> <200607011508.27920@aldan> <200607051142.28352.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Wed, 5 Jul 2006, John Baldwin wrote:

>>> libbdf.a is built by /usr/src/gnu/usr.bin/binutils/libbfd/Makefile. That 
>>> should be a fairly simple change to arrange for it to build and install 
>>> the .so as well.
>>
>> Installing both libbfd-s certainly would be a good start... As things 
>> stand, every port needing it -- including various different compilers -- 
>> builds it own version. This is, largely, explained by the GNU's stupidity 
>> of bundling a different version with each tool (gdb, compiler), but the 
>> bundled bfds are not THAT incompatible, and the system-installed version 
>> can include the compatible superset...
>
> Actually, in the past this has proven quite difficult, hence the current 
> arrangment of various tools linking statically against their own private 
> copy.

My recollection is that we got to where we are today precisely because the 
various GNU tools (gdb, gcc, etc) relied on versions of bfd "as cut" at the 
point where the tool revisions were released.  This meant that they could not 
share bfd versions between tools, since tools were often released at different 
dates, and the versions of bfd with different tools were incompatible.  The 
conclusion was that by statically linking the specific compatible versions 
into the binaries, and by not shipping a specific bfd as part of the base 
system, we avoided numerous compatibility issues, as well as avoided 
committing consumers of the system to a particular bfd revision that might be 
incompatible with what they want to run in the way of their own cross tools, 
etc.  Perhaps the world has changed since that time, but those sound like 
pretty good reasons to me.  So these are my recollections, but since I'm not 
an expert in our toolchain bits, I could be off in the woods somewhere.

Robert N M Watson
Computer Laboratory
University of Cambridge



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060705171517.H18236>