This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFH: MIPS ld breaking .eh_frame data ...


On Fri, Sep 15, 2006 at 05:56:38PM -0700, David Daney wrote:
> The FDE data is unchanged, however its interpretation has changed due to 
>  the added PC relative augmentation data in the CIE.  Note that the 
> DW_CFA_set_loc in the first instruction pushes the PC out of the range 
> of the function so that the unwinder completly ignores the rest of the 
> FDE program causing a crash at runtime.
> 
> I used to be able to build (and run) libgcj with slightly older versions 
> of binutils, and gcc.
> 
> Does this seem like a problem with ld?  Or is gcc creating something 
> inconsistent here?

I think that:
 - What GCC is doing is legitimate.
 - The linker is at fault for ignoring that some operations would
   need to be changed.
 - You can restore GCC to a less broken state by supressing this
   change for the very first instruction in an FDE, and then the
   linker bug will only trigger with hot/cold sections.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]