PATCH: Fix debug relocation for ia64

H. J. Lu hjl@lucon.org
Thu Jul 10 00:01:00 GMT 2003


On Thu, Jul 10, 2003 at 09:17:50AM +0930, Alan Modra wrote:
> On Wed, Jul 09, 2003 at 03:44:33PM -0700, H. J. Lu wrote:
> > It turned out that it was an ia64 bug. The problem is ia64 relocations
> > define src_mask and dst_mask to be 0. It is not a problem for normal
> > ia64 relocations since src_mask and dst_mask are not used. But
> > src_mask and dst_mask are used in bfd_perform_relocation to relocate
> > debug sections. I set them to -1LL. I think it should work with
> > relocations in debug sections for both LP64 and ILP32.
> 
> Please see the comment in reloc.c describing src_mask.  You want zero
> for src_mask.
> 

I see. IA64 uses RELA. Here is the new one.


H.J.
-------------- next part --------------
2003-07-07  H.J. Lu <hongjiu.lu@intel.com>

	* elfxx-ia64.c (IA64_HOWTO): Set dst_mask to -1LL.

--- bfd/elfxx-ia64.c.reloc	2003-07-09 08:12:27.000000000 -0700
+++ bfd/elfxx-ia64.c	2003-07-09 16:58:17.000000000 -0700
@@ -368,7 +368,7 @@ elfNN_ia64_reloc (abfd, reloc, sym, data
 
 #define IA64_HOWTO(TYPE, NAME, SIZE, PCREL, IN)			\
   HOWTO (TYPE, 0, SIZE, 0, PCREL, 0, complain_overflow_signed,	\
-	 elfNN_ia64_reloc, NAME, FALSE, 0, 0, IN)
+	 elfNN_ia64_reloc, NAME, FALSE, 0, -1LL, IN)
 
 /* This table has to be sorted according to increasing number of the
    TYPE field.  */


More information about the Binutils mailing list