http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48323
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |jakub at gcc dot gnu.org Resolution| |INVALID --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-28 20:55:38 UTC --- It has nothing to do with __cxa_atexit. The dynamic linker sets if (map->l_type == lt_loaded) /* Make sure we don't unload this object by setting the appropriate flag. */ map->l_flags_1 |= DF_1_NODELETE; whenever doing successful symbol lookup of a STB_GNU_UNIQUE symbol, so that that symbol will always be found at that point afterwards.