https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100486
--- Comment #30 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > I have quite a few crtend.o files in the build directory. A quick glance > indicates that .text.startup is missing: > > $ for f in `find ./build-i686-w64-mingw32/ -name crtend.o` ; do echo $f && > nm $f ; done > ./build-i686-w64-mingw32/gcc/crtend.o > 00000000 b .bss > 00000000 d .ctors.65535 > 00000000 d .data > 00000000 r .eh_frame > 00000000 r .rdata$zzz > 00000000 t .text > 00000000 r ___FRAME_END__ > U ___gcc_register_frame > 00000000 t _register_frame_ctor Yep, that is suspicious, this might indicate that: static void register_frame_ctor (void) __attribute__ ((constructor (0))); is not considered a static constructor. Could you replay the compilation of this file? In the top level directory, do rm i686-w64-mingw32/libgcc/crtend.o make all-target-libgcc copy the (long) command line, go into the i686-w64-mingw32/libgcc directory and execute it after adding -save-temps to it. You should get a small assembly file named crtend.s and I would be interested in its contents.