Compiling stdc++ with strong symbol versioning
Ian Lance Taylor
iant@google.com
Wed May 20 00:13:00 GMT 2009
Michael Dehmlow <dehmlowm@gmail.com> writes:
> Hello I'm relatively new to gcc development and I'm having trouble with
> different versions of libstdc++.so being used at runtime. Basically I'm
> creating an api which is used by a third party application (labview) which
> uses libstdc++.so.5 my api needs to be compiled with libstdc++.so.6.
As you've discovered, it generally does not work to mix versions of
libstdc++.so.
> This issue is detailed in the following gcc bug:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21405
> The resolution appears to be detailed in
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24660
>
> As far as I can tell (PLEASE tell me if I'm mistaken) I need to recompile
> either my gcc compiler (version 4.1.2) or the stdlibc++.so.6 with the
> --enable-symvers=gnu-versioned-namespaces flag then recompile my application
> with the new compiler/ stdc++ library.
That seems worth trying but I don't know whether it will work.
> So my question is how do I do this? Do I need to recompile just my stdc++
> library or my entire gcc compiler is this documented some where.
You need to rebuild the whole compiler. http://gcc.gnu.org/install/ .
Pass the --enable-symvers option to the top level configure script.
Your other option is to use an older version of gcc which uses
libstdc++.so.5.
Ian
More information about the Gcc-help
mailing list