libnl linker versioning is off

Thomas Haller thaller at redhat.com
Sun Jan 4 11:16:22 PST 2015


On Sun, 2015-01-04 at 18:41 +0100, Jan Engelhardt wrote:
> On Sunday 2015-01-04 17:35, Thomas Haller wrote:
> >Hey,
> >I send a few patches to the mailing list to fix the version scripts:
> >http://lists.infradead.org/pipermail/libnl/2015-January/001794.html
> >
> >They hide some symbols that were previously exported (but not in public
> >header files).
> 
> JFYI, __bss_start, _edata, _end, _fini, _init, _exit are not symbols
> from libnl, but symbols related to the dynamic linking infrastructure
> and are (largely) implementation-specific. In addition, "libnl_3" is
> the prior symvers symbol, also not a C function/variable. Don't just
> take everything `nm` outputs at face value :)
> 
> You never need to fumble with the visibility of these, or list them
> in any symbol file. As such, removing them from the .sym files does
> not constitute an ABI change.


Thank you for the information.

I want the commit
  "build: explicitly list exported symbols in linker scripts"
be without manual intervention and have no visible changes (ABI).
Hence the explicit exports of __bss_start, et al.

The last patch then does change the visibility of __bss_start, et al.
from:
  B __bss_start
to
  b __bss_start


However I will change the generated patch not to include
  0000000000000000 A libnl_3
by doing instead:
    nm "$SO" | sed -n 's/^[a-fA-F0-9]\+ [BDRT] \(.*\)/\t\1;/p' | LANG=C sort


Thomas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/libnl/attachments/20150104/7d9a5f61/attachment.sig>


More information about the libnl mailing list