https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100486
--- Comment #29 from Óscar Fuentes <gcc_bugzilla at axeitado dot com> --- (In reply to Eric Botcazou from comment #28) > OK, I know what's wrong in the libstdc++.dll of GCC 11, now let's try to > figure out why this is so... Can you run 'nm' on one of the occurrences of > crtend.o in the build tree (there are two copies of it)? On my machine it > yields: > > 00000000 b .bss > 00000000 d .ctors.65535 > 00000000 d .data > 00000000 d .eh_frame > 00000000 r .rdata$zzz > 00000000 t .text > 00000000 t .text.startup > 00000000 d ___FRAME_END__ > U ___gcc_register_frame > 00000000 t _register_frame_ctor 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 ./build-i686-w64-mingw32/i686-w64-mingw32/libgcc/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 ./build-i686-w64-mingw32/prev-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 ./build-i686-w64-mingw32/prev-i686-w64-mingw32/libgcc/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 ./build-i686-w64-mingw32/stage1-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 ./build-i686-w64-mingw32/stage1-i686-w64-mingw32/libgcc/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 These are the crtend.o from the installed gcc 10.3 (which works fine): $ for f in `find /mingw32 -name crtend.o` ; do echo $f && nm $f ; done /mingw32/i686-w64-mingw32/lib/crtend.o 00000000 b .bss 00000000 d .data 00000000 r .rdata$zzz 00000000 t .text /mingw32/lib/gcc/i686-w64-mingw32/10.3.0/crtend.o 00000000 b .bss 00000000 d .ctors.65535 00000000 d .data 00000000 r .eh_frame 00000000 r .rdata$zzz 00000000 t .text 00000000 t .text.startup 00000000 r ___FRAME_END__ U ___gcc_register_frame 00000000 t _register_frame_ctor