libstdc++ recently made an appearance in a glibc bug, which made me
realize that they aren't marked as NODELETE (on GNU ELF platforms).
(The bug in question was purely glibc, though.)

Are these shared objects really expected to be unloaded?  Given that
libstdc++ contains many destructors, I expect that unloading will be
problematic in most cases.  Unloading libgcc_s also seems a bit over the
top to me.

This only matters if any of the shared objects is loaded late via
dlopen.  If the main program is linked against them, they are implicitly
NODELETE anyway.

Thoughts?  Should these shared objects be linked with -z nodelete?

Thanks,
Florian

Reply via email to