https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100062
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Since you say this happens on a DSO level why is this not achieved via some additional object at link-time (like crt*.o)? It sounds like you place the CDTOR in each object file instead and want to merge them in the linker via comdat?