[Bug bootstrap/49680] New: [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases
ro at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 8 19:03:00 GMT 2011
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: unassigned@gcc.gnu.org
ReportedBy: ro@gcc.gnu.org
CC: rth@gcc.gnu.org, rdsandiford@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.
More information about the Gcc-bugs
mailing list