patch for m32r (relocations)

Ian Lance Taylor ian@zembu.com
Thu Feb 10 22:55:00 GMT 2000


   Date: Thu, 10 Feb 2000 16:53:20 -0800 (PST)
   From: Donald Lindsay <dlindsay@cygnus.com>

   The following fixes a problem with the m32r, whereby the reloc for a
   struct member was marked as being relative to the struct, but had an
   offset which was instead relative to the front of the dsect. This change
   causes the reloc to be restamped as dsect-relative (with the offset not
   being changed). Hence the reloc becomes correct.

This isn't the right way to fix this sort of problem.  For most ELF
targets, relocations against global symbols should not be adjusted.
If they were, it would be impossible to override those symbols in a
shared library.

Of course, the m32r probably doesn't have shared libraries, so that
doesn't matter much.

   Sadly, the patch doesn't fix weak symbols, who still have the bug.

The right way to fix it is to fix the relocation handling in
md_apply_fix.  Fixing it there will fix both global and weak symbols.

gas relocation handling is broken, alas.

Ian


More information about the Binutils mailing list