dlopen(), atexit() crash on FreeBSD (testcase included)
julian at elischer.org
Mon Dec 31 14:20:41 PST 2007
Markus Hoenicka wrote:
> Alexander Kabaev writes:
> > As designed. atexit should not be used by shared objects that do not
> > expect themselves to live until actual exit() happens. ELF provides
> > proper _init/_fini sections to support shared object
> > initialization/destruction.
> That is, the only real solution to this problem is to convince the
> Firebird folks to remove their atexit() calls from the client
> libraries? I'll try, but I'm not very confident this is going to
> work. Also, I'm wondering how other OSes handle this. I don't see this
> code crash on Linux, contrary to its design as you say.
> Thanks anyway to you, and to Jason Evans, for your replies.
Not sure but I'd guess that each library calls its at_exit entrypoints
as part of its unload handling.
More information about the freebsd-hackers