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


>> 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


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