Re: libstdc++ : shared lib names

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

 



On 18 April 2012 00:42, Oleg Smolsky wrote:
> Hey all, I have a question about running multiple compilers concurrently on
> a single OS. Here is what I do:
>  - configure gcc 4.7.0 with --prefix=/work/tools/gcc47
>  - build and install
>  - reference /work/tools/gcc47/lib64 in /etc/ld.so.conf.d/gcc47-x86_64.conf
>
> This, however, forces the new version of libstdc++.so onto binaries that are
> built with the system compiler. Normally that works, but we have just hit an
> issue where std::stringstream::tellg() returns a different value after
> extracting an "int". (the system compiler is  4.4.5 20110214 (Red Hat
> 4.4.5-6))

That's a bug in the old version's stringstream that was fixed.

If you recompiled the old binaries with -D_GLIBCXX_EXTERN_TEMPLATE=0
then the instantiation in libstdc++.so wouldn't be used, but that's
not a very practical solution.

> So, is there a way to build gcc and force a bump in the .so version? This
> way I could keep environments completely distinct when using shared libs
> (the issue goes away when statically linking the runtime)

Using --enable-symvers=gnu-versioned-namespace will bump the soname
(as well as moving all entities in namespace std to the inline
namespace std::__v7)



[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