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.