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 ...


Daniel Jacobowitz wrote:
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.


Thanks Daniel,


Is is sufficient to just prevent the linker from converting to the PC relative augmentation? If so I may prepare a patch to do that.


Or would that cause some other problems?


David Daney


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