https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64535
--- Comment #24 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to rguent...@suse.de from comment #23) > Is there a non-zeroed .bss section? No. > I think using dynamically allocated > memory might be cheaper. I very much doubt it. > > That way "freeing" that would be handled in most cases. And I assume you > > really can't dlclose libstdc++ while other threads are handling exceptions, > > because then those libraries should use libstdc++ entry points and either > > would > > need to be dlclosed too, or libstdc++ wouldn't be really unmapped. > > Ok, so what's the real issue then with the destructor? Don't we destroy > the global IO and locale stuff as well? IO destruction is a huge can of worms, just look at some of the interesting glibc bugs. It is an area which is essentially unsolvable. Most other stuff isn't destructed by glibc at all, there is __libc_freeres exactly to make valgrind/mtrace etc. happy, but still not free otherwise.