http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57680
gee <jojelino at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|deregister_frame_fn is set |[META-BUG][target]deregiste |to invalid address in |r_frame_fn is set to |cygming-crtbegin.c:__gcc_de |invalid address in |register_frame due to |cygming-crtbegin.c:__gcc_de |unknown reason. |register_frame due to | |unknown reason. --- Comment #1 from gee <jojelino at gmail dot com> --- bootstrap failed with faulting libgcc static library. Dump of assembler code for function __gcc_deregister_frame: 0x00401160 <+0>: push %ebp 0x00401161 <+1>: mov %esp,%ebp 0x00401163 <+3>: sub $0x18,%esp 0x00401166 <+6>: movl $0x475000,(%esp) 0x0040116d <+13>: call *0x5a0480 0x00401173 <+19>: mov $0x46e010,%edx => 0x00401178 <+24>: sub $0x4,%esp 0x0040117b <+27>: test %eax,%eax 0x0040117d <+29>: je 0x401195 <__gcc_deregister_frame+53> 0x0040117f <+31>: movl $0x475047,0x4(%esp) 0x00401187 <+39>: mov %eax,(%esp) 0x0040118a <+42>: call *0x5a0484 0x00401190 <+48>: sub $0x8,%esp 0x00401193 <+51>: mov %eax,%edx 0x00401195 <+53>: test %edx,%edx 0x00401197 <+55>: je 0x4011a2 <__gcc_deregister_frame+66> 0x00401199 <+57>: movl $0x591000,(%esp) 0x004011a0 <+64>: call *%edx 0x004011a2 <+66>: leave 0x004011a3 <+67>: ret (gdb) i li *0x46e010 Line 185 of "../.././libgcc/unwind-dw2-fde.c" starts at address 0x46e00f <__deregister_frame_info_bases+159> and ends at 0x46e020 <__deregister_frame_info>. why cygming-crtbegin.c:154 set invalid function pointer address??? it should be __deregister_frame_info (gdb) x/i __deregister_frame_info 0x46e020 <__deregister_frame_info>: jmp 0x46df70 <__deregister_frame_info_bases> i think gcc is corrupted in calculating function pointer address. and the failed bootstrap was using gcc with following version. Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-cygwin/4.9.0/lto-wrapper.exe Target: i686-pc-cygwin Configured with: ./configure --config-cache --prefix=/usr --disable-win32-registry --enable-threads=single --enable-languages=c,c++,lto,fortran --with-win32-nlsapi=unicode --enable-tls --disable-bootstrap --enable-shared --disable-sjlj-exceptions --enable-gomp --enable-cloog-backend=isl LTLDFLAGS=-no-undefined lt_cv_deplibs_check_method=pass_all : (reconfigured) ./configure --config-cache --prefix=/usr --disable-win32-registry --enable-threads=win32 --with-win32-nlsapi=unicode --enable-tls --disable-bootstrap --enable-shared --disable-sjlj-exceptions --enable-gomp --enable-cloog-backend=isl LTLDFLAGS=-no-undefined lt_cv_deplibs_check_method=pass_all --enable-languages=c,c++,fortran,lto --no-create --no-recursion Thread model: single gcc version 4.9.0 20130516 (experimental) (GCC)