[lsb-discuss] Using LSB 3.1 or 4.0 shared libraries in an LSB 5.0 link?

Dallman, John john.dallman at siemens.com
Mon Apr 25 10:53:54 UTC 2016


Mats wrote:

> First off, yes... everything you see above is "as expected". The LSB libraries in /opt/lsb
> are link-time only libraries; you would expect that your target system's run-time copies
> would contain the multiple versions. It is by this very trick (only one symbol version in
> LSB stubs) that building to "a specific LSB version" is made to request the appropriate
> symbol versions for that binary.

OK, but it seems I have been suffering from a significant misunderstanding of LSB inter-version compatibility. LSB 3.x applications are supported on LSB 4.x, 5.x and 6.x (when it happens) systems. However, linking this example LSB-3.1-built DSO into an LSB 5.0 application does not work, because the linker checks for all the symbols used by the DSO and fails to find one of them in the LSB 5.0 link-time-only libraries.

Are there meant to be any promises about DSOs built with older LSB versions being usable in later ones? Or are the promises all in terms of complete applications? I'm used to development tool suppliers not considering this kind of situation.

> For browsing the story about symbol versioning and inclusion in LSB versions, use the LSB
> Navigator, https://linuxbase.org/navigator

I think you've misunderstood me. I'm looking for an introduction to how Linux symbol versioning works, and in particular, what the difference between "@" and "@@" means, for "memcpy at GLIBC_2.2.5" and "memcpy@@GLIBC_2.2.5"

> There's another issue to explore: I don't actually expect to see this problem unless your
> shared library is explicitly linked against libc, as otherwise it should not have symbol
> versions bound into it; but I don't have time to pursue that just now.

I'll experiment with that.

thanks,

--
John Dallman


-----------------
Siemens Industry Software Limited is a limited company registered in England and Wales.
Registered number: 3476850.
Registered office: Faraday House, Sir William Siemens Square, Frimley, Surrey, GU16 8QD.


More information about the lsb-discuss mailing list