This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Varying filesize of libstdc++.so.6.0.19
On 24/05/18 21:58 +0100, Mohan Ganesalingam wrote:
Thanks very much for the quick reply!
We think we have figured out some things about portability (of a library
that links with libstdc++ *and no other libraries*) by testing – could I
ask and see if they are reliably true?
1. If the library dynamically links with, say, libstdc++.so.6.0.19, then it
can be compiled on one distro/version and used on another so long as
libstdc++.so.6.0.19 or newer (and the requisite glibc) is present.
2. A compiled libstdc++.so.6.0.19 from one distro/version can be used on
another distro/version. This means that if the library is statically linked
against libstdc++ 6.0.19 on one distro/version, it will again work on
other distro/versions
as long as the right glibc is present.
These seem to hold across (some version of) CentOS, Ubuntu, Fedora.
NB. The library doesn't do anything that would explicitly make it OS
-dependent – so it doesn't try to open system files, call 'system', access
specific devices, etc..
Is there a table somewhere that lists what minimum version of libc is
required for each version of libstdc++? (Similar to the tables in
https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html )
There is no minimum libc required for each version of libstdc++.
Anything newer than glibc 2.3 can be used, but an older glibc might
result in some features in libstdc++ being disabled.
The dependencies on glibc come from the glibc version that libstdc++
was built against. In other words the dependency depends how libstdc++
was built, not on the version of libstdc++ you use. That can vary
between OS distros, because two distros might use the same GCC release
but built against different glibc releases. That would mean their
libstdc++.so libraries have different dependencies on glibc.