http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680
Summary: [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: r...@gcc.gnu.org, rdsandif...@googlemail.com Host: mips-sgi-irix6.5 Target: mips-sgi-irix6.5 Build: mips-sgi-irix6.5 Between 20110704 (r175811) and 20110708 (r176045), IRIX 6.5 bootstrap got broken. A trivial a.out SEGVs in __register_frame_info_bases: Program received signal SIGSEGV, Segmentation fault. __register_frame_info_bases (begin=0x10004604, ob=0x10000000, tbase=0x0, dbase=0x0) at /vol/gcc/src/hg/trunk/irix/libgcc/unwind-dw2-fde.c:80 80 ob->pc_begin = (void *)-1; (gdb) where #0 __register_frame_info_bases (begin=0x10004604, ob=0x10000000, tbase=0x0, dbase=0x0) at /vol/gcc/src/hg/trunk/irix/libgcc/unwind-dw2-fde.c:80 #1 0x100014a0 in ?? () #2 0x100014a0 in ?? () Backtrace stopped: frame did not save the PC I could trace this down to some change to crtbegin.o. I found that a couple of .set macro/.set reorder and .set noreorder/.set .nomacro pairs got lost, which causes gas warnings: crtstuff.s: Assembler messages: crtstuff.s:114: Warning: Macro instruction expanded into multiple instructions crtstuff.s:115: Warning: Macro instruction expanded into multiple instructions crtstuff.s:171: Warning: Macro instruction expanded into multiple instructions crtstuff.s:172: Warning: Macro instruction expanded into multiple instructions Also, a block of EH info was removed: - .byte 0x4 # DW_CFA_advance_loc4 - .4byte .LCFI4-.LCFI2 - .byte 0x90 # DW_CFA_offset, column 0x10 - .uleb128 0x8 - .byte 0x5 # DW_CFA_offset_extended - .uleb128 0x40 - .uleb128 0x2 Thus, one of rth's dwarf2cfi patches might be a candidate. I'm attaching the preprocessed input and good/bad assembler output.