This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

alpha srel relocation bug


Apparently no one's tried to use these relocations before,
though gcc 3.0 will want to do so.  We weren't taking into
account the relocation's offset in the input section.

Applied to mainline and 2.11 branch.


r~


        * elf64-alpha.c (SREL16, SREL32, SREL64): Set pcrel_offset true.

Index: elf64-alpha.c
===================================================================
RCS file: /cvs/src/src/bfd/elf64-alpha.c,v
retrieving revision 1.24
diff -c -p -d -r1.24 elf64-alpha.c
*** elf64-alpha.c	2001/05/03 04:46:27	1.24
--- elf64-alpha.c	2001/05/04 23:20:44
*************** static reloc_howto_type elf64_alpha_howt
*** 566,572 ****
  	 false,			/* partial_inplace */
  	 0xffff,		/* src_mask */
  	 0xffff,		/* dst_mask */
! 	 false),		/* pcrel_offset */
  
    /* 32 bit PC relative offset.  */
    HOWTO (R_ALPHA_SREL32,	/* type */
--- 566,572 ----
  	 false,			/* partial_inplace */
  	 0xffff,		/* src_mask */
  	 0xffff,		/* dst_mask */
! 	 true),			/* pcrel_offset */
  
    /* 32 bit PC relative offset.  */
    HOWTO (R_ALPHA_SREL32,	/* type */
*************** static reloc_howto_type elf64_alpha_howt
*** 581,587 ****
  	 false,			/* partial_inplace */
  	 0xffffffff,		/* src_mask */
  	 0xffffffff,		/* dst_mask */
! 	 false),		/* pcrel_offset */
  
    /* A 64 bit PC relative offset.  */
    HOWTO (R_ALPHA_SREL64,	/* type */
--- 581,587 ----
  	 false,			/* partial_inplace */
  	 0xffffffff,		/* src_mask */
  	 0xffffffff,		/* dst_mask */
! 	 true),			/* pcrel_offset */
  
    /* A 64 bit PC relative offset.  */
    HOWTO (R_ALPHA_SREL64,	/* type */
*************** static reloc_howto_type elf64_alpha_howt
*** 596,602 ****
  	 false,			/* partial_inplace */
  	 MINUS_ONE,		/* src_mask */
  	 MINUS_ONE,		/* dst_mask */
! 	 false),		/* pcrel_offset */
  
    /* Push a value on the reloc evaluation stack.  */
    /* Not implemented -- it's dumb.  */
--- 596,602 ----
  	 false,			/* partial_inplace */
  	 MINUS_ONE,		/* src_mask */
  	 MINUS_ONE,		/* dst_mask */
! 	 true),			/* pcrel_offset */
  
    /* Push a value on the reloc evaluation stack.  */
    /* Not implemented -- it's dumb.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]