dlopen(), atexit() crash on FreeBSD (testcase included)

Julian Elischer 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.

> regards,
> Markus

More information about the freebsd-hackers mailing list