This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
alpha srel relocation bug
- To: binutils at sources dot redhat dot com
- Subject: alpha srel relocation bug
- From: Richard Henderson <rth at redhat dot com>
- Date: Fri, 4 May 2001 16:25:49 -0700
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. */