how to generate non-section-symbol related format of local labels for linker relaxation

Nick Clifton nickc@redhat.com
Mon Mar 1 16:49:00 GMT 2010


Hi He,

> Hi, all. I'm recently porting binutils 2-17

Just a quick note - 2.17 is quite old now.  You would be better off 
using the 2.20 release or else the mainline development sources.


> OFFSET   TYPE              VALUE
> 00000010 R_TOP_RUI19_2     .rodata+0x00000030
>
> And it now comes to the function tc_fix_adjustable. I set the value to
> zero, but the result is somewhat ridiculous:
>
> OFFSET   TYPE              VALUE
> 00000010 R_TOP_RUI19_2     .LC1+0x00000030

Hmm, it sounds as though you might need to look at your code in the 
md_convert_frag and tc_gen_reloc functions in your gas backend sources.

> BTW, could it refer to the string merging, as .LC1 represents a
> const string?

I doubt it.  Of course without examining the actual code I cannot be 
sure, but I suspect that the problem is in how the fixup is being 
converted to a frag.  My best advice would be to have a look at the code 
in an already working port that is similar to your architecture.  I 
would recommend the MN10300 port, since that supports linker relaxation, 
and it seems to work quite well.

Cheers
   Nick




More information about the Binutils mailing list