[PATCH] MIPS/ld: Calculate DT_RELSZ correctly.

David Daney ddaney@avtrex.com
Mon May 23 21:59:00 GMT 2005


As outlined in this thread:

http://sourceware.org/ml/binutils/2005-05/msg00624.html

The 2.16 ld cannot correctly link the libgcj component of gcc 4.0.0.

The problem is that DT_RELSZ was being calculated before all of the 
relocations had been added to the dynamic relocations section.  This 
resulted in a value of DT_RELSZ that was too small.  The result was that 
  the runtime loader did not do all the relocations that were needed.


2005-05-23  David Daney  <ddaney@avtrex.com>

         * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections):  Move
         calculation of DT_RELSZ to occur after all dynamic relocations
         are created.


Tested on the CVS HEAD mipsel-linux cross running on i686-pc-linux-gnu 
with make -k check showing regressions.

O.K. to commit?  Should this go on the 2.16 branch as well?

David Daney
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ld.p
URL: <https://sourceware.org/pipermail/binutils/attachments/20050523/7d6f51b4/attachment.ksh>


More information about the Binutils mailing list