This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: RFH: MIPS ld breaking .eh_frame data ...
- From: Daniel Jacobowitz <drow at false dot org>
- To: binutils at sourceware dot org
- Date: Mon, 18 Sep 2006 16:38:22 -0400
- Subject: Re: RFH: MIPS ld breaking .eh_frame data ...
- References: <450B4BC6.9040801@avtrex.com>
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