This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: portability of shared libraries


On 5 Apr 2005, Grigory Zagorodnev mused:
> So the possible solution for you is to hide libstdc++ symbols from
> run-time dynamic linking by means of a version script. Script like this
> will hide all symbols except those you define as global-visible:
>  
>      FOO {
>          global:
>                  <your symbols>; 
>          local: 
>                  *; 
>      }; 
> 
> Use "-Wl,--version-script,script.name" to feed script to the linker.

The danger is that if you then pass instances of libstdc++ classes
between routines that rely on different libstdc++ instances, things will
go *very* wrong, even if the ABIs and class layouts are compatible (the
allocators will get rightly confused).

-- 
This is like system("/usr/funky/bin/perl -e 'exec sleep 1'");
   --- Peter da Silva


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]