David Daney wrote:
Has anyone else noticed that the mipsel-linux-gnu target is generating bad .eh_frame data lately?

I am running mipsel-linux-gcc (GCC) 4.2.0 20060914 (experimental) which is svn r116953

I also notice that

http://gcc.gnu.org/ml/gcc-testresults/2006-09/msg00922.html

Shows similar results.  So I don't think it is just my problem.

A month ago everything was working well, so I don't know what happened.

I have tracked the problem down to the fact that GCC is generating unwind data with absolute addressing, but when ld links the runtime libraries, it is trying to convert to PC relative addressing and screwing up the .eh_frame data in the process.

I posted a message to the binutils list showing the problem:

 http://sourceware.org/ml/binutils/2006-09/msg00131.html

In the next few days I may try to track down the offending patches, but if anyone has any pointers they are of course welcome.


svn r116604 is the culprit:

2006-08-31  Roger Sayle  <[EMAIL PROTECTED]>

        PR other/22313
        * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
        NULL, otherwise use an advance_loc4 to adjust relative to the
        current label.
        (output_cfi) <DW_CFA_set_loc>: Update the current label.
        (dwarf2out_switch_text_section): Reset the current label to avoid
        using advance_loc4 over section boundaries.


I just posted a reply to Roger on gcc-patches.

David Daney.

Reply via email to