libctf linking against different libbfd builds, but using the same soname

Alan Modra amodra@gmail.com
Fri Nov 22 23:37:00 GMT 2019


On Fri, Nov 22, 2019 at 09:36:14PM +0000, Nick Alcock wrote:
> On 22 Nov 2019, Alan Modra said:
> 
> > On Fri, Nov 22, 2019 at 05:58:00PM +0000, Nick Alcock wrote:
> >> The only thing we use libbfd for in libctf is to read .ctf sections out
> >> of BFD-readable objects, and tie them up with likely-relevant string and
> >> symbol tables in the enclosing object. As long as the native BFD can
> >> read the relevant objects, nothing bad would happen if you used the
> >> native one rather than the cross one.
> >
> > The thing to keep in mind is that we make no promise to keep the
> > libbfd ABI stable from one day to the next.  It's also quite easy to
> > break compatibility between builds using the same source, just by
> > configuring a little differently, although BFD_INIT_MAGIC helps with
> > that.
> 
> True -- but in that case, the libbfd soname does change (because it
> changes constantly). Unless someone is quite unlucky and installs libctf
> and a libbfd from a different, incompatible binutils built on the *same
> day*... I mean, yes, it's possible, but is it really plausible?
> 
> I mean I *could* fix this by linking libctf with libbfd.a:

No, no, there isn't any need for that.  I'm just saying, keep in mind
that the libbfd ABI can change.  I made my comment in response to you
saying "nothing bad would happen if you used the native one rather
than the cross one".  Famous last words.  :)

> since we
> don't export any of its symbols this would work fine, but it would be a
> bit bloated. (OK, probably very bloated). Doing that feels... wrong. But
> maybe it's better than the alternative?

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list