[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