RFH/RFC: ld generating incorrect Elf DT_RELSZ...

David Daney ddaney@avtrex.com
Mon May 23 20:36:00 GMT 2005


Richard Sandiford wrote:
> David Daney <ddaney@avtrex.com> writes:
> 
>>In theory all relocations that come after RELSZ/RELENT should be 
>>R_MIPS_NONE as they presumable would not be needed.  This should be 
>>361731 - 332723 == 29008 unneeded relocation slots in the end of .rel.dyn.
>>
>>However if I do:
>>[daney@dl2 .libs]$ mipsel-linux-readelf -W -r libgcj.so.6 | tail -n 
>>29008 | more
>>0105414c  00a06903 R_MIPS_REL32           00fc0bc0 
>>_ZN5javax8security4sasl13SaslException6class$E
>>01056428  00a06a03 R_MIPS_REL32           0099fd24 
>>_ZN5javax5swing4text28DefaultEditorKit$PasteActionC1Ev
>>00dfe64c  00a06b03 R_MIPS_REL32           00fe6a50 
>>_ZN3gnu3xml9transform15CurrentFunction6class$E
>>[...]
>>You can see that there are quite a few needed relocations that will not 
>>be done.
> 
> 
> Are there any other R_MIPS_NONE relocations before the cut-off point?
> (Besides the first one, I mean.)  It sounded from your message like you
> might have checked, and that (as expected) there weren't, but I just
> wanted to make sure.

There are none.  The relocations are sorted so they all end up at the 
end.  As I said in the other message:  The problem is that dynamic 
relocations for the non-primary gots are being added after DT_RELSZ is 
calculated.

I am working on a patch.

David Daney



More information about the Binutils mailing list