Re: libstdc++.so.5 vs libstdc++.so.6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



danny payton <dannyx.payton@xxxxxxxxx> writes:

> Okay. So I need to keep multiple Linux build boxes. That's fine.

You don't necessary need multiple build boxes.  You can build and
install several different versions of gcc using a different --prefix
option when you run configure.  However, the glibc symbol versions
will be included in your build, so you will want to do this on a
system which runs the oldest version of glibc that you care to
support.

> Is there perhaps a way to bundle multiple versions of the code
> into the ELF output file, tagged with different versions, so that
> we can at least distribute only 1 file to the user (rather than asking
> the users to check their Linux library version number for stdc++,
> libm, libgcc... which is just asking them too much)?

I don't see any way to do this short of accessing all symbols via
dlopen and dlsym.

Note that libm and libgcc have not changed major version numbers in
many years.  For them, what matters is the version of the symbol.  The
symbol version which you link against will have to be available on the
system where the executable is run.  For that matter, libstdc++ also
uses symbol versions.

So in practice, for these basic system libraries, there is only one
relevant distinction: libstdc++.so.5 vs. libstdc++.so.6.  The latter
has been in use for over five years.

The situation is certainly not ideal.  While having a single library
provide both the libstdc++.so.5 and libstd++.so.6 symbols is
technically feasible, making it actually work in practice would
require a significant amount of tedious work.

Ian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux