Re: custom libgcc, libstdc++ namespaces and .so names

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

 



2011/9/10 Paweł Sikora <pluto@xxxxxxxx>:
> Hi,
>
> we're developing a large c++ application which is compiled with 4.6 and deployed
> to client's enterprise systems with various and ancient gcc runtime libs.
>
> basically there's no problem with running such application on an old system
> (we can provide fresh gcc runtime + use rpath $origin) but there's a major problem
> when application's plugins (with c-style interface and internal c++ implementation)
> are dlopen by 3-rd party software.
>
> during dlopen the system loader injects (due to weak binding) old libgcc/libstdc++
> symbols from 3-rd party software (e.g. eda simulator) into the plugin.
> this usually ends with undefined references to new gcc symbols, mixed symbols
> or weird crashes in random places.
>
> to avoid such interoperablity problems we currently linking static libgcc/libstdc++
> versions (./configured --with-pic) into shared application plugins. moreover we use
> a linker .lds script to hide implementation details and export only c-style interface.
> such software isolation generally works but has a limitation - it complicates
> the build system horribly.
LDFLAGS += -Wl,-z,nodlopen

If they can't play nice in the same sandbox, don't play with them.

Jeff



[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