https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117630
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- The remaining global destructors are: src/c++98/ios_base_init.h:12 src/c++11/compatibility-c++0x.cc:218 src/c++11/compatibility-c++0x.cc:218 src/c++11/future.cc:77 src/c++11/ios_errcat.cc:72 src/c++11/system_error.cc:149 src/c++11/system_error.cc:149 src/c++17/memory_resource.cc:95 src/c++17/memory_resource.cc:95 src/c++17/memory_resource.cc:95 src/c++20/tzdb.cc:185 The two in compatibility-c++0x.cc are only needed for backward compat with gcc 4.x, if you're compiling for embedded targets using newlib you probably don't care about those.