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