This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
Re: Problem with atexit and _dl_fini
Sorry for the spam, but I just thought of an easy fix for the situation,
with this rewording of
http://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic.html#BASELIB---CXA-FINALIZE
```
The implementation shall arrange for__cxa_finalize() to be called during
early shared library unload (e.g. dlclose()) with a handle to the shared
library. The unload should fail, if the termination function list
contains any __cxa_atexit-registered functions.
When the main program calls exit, the implementation shall cause any
remaining __cxa_atexit-registered functions to be called, either by
calling __cxa_finalize(NULL), or by walking the registration list itself.
```
The effect is, that atexit "poisoned" shared objects stay until
termination, all others get unloaded as they are now, which would be IMO
perfect and expected. As a positive side effect it seems like minimal
code change.
Ciao
Nat!