portability of shared libraries

Zagorodnev, Grigory grigory.zagorodnev@intel.com
Wed Apr 6 10:56:00 GMT 2005


>> 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:
>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).

Definitely. Passing pointers to malloc'ed regions between libraries is
dangerous as well. Library implementation must avoid passing objects and
pointers. The approach of hiding non-user stuff may suit in this case.

- Grigory



More information about the Gcc-help mailing list