From a0f2e916a7d963dce042f27c920a37d09d9c95a1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Sun, 4 Feb 2001 22:14:19 +0000 Subject: [PATCH] Do not convert reloc addend to PC rel, it will be handled later on. --- bfd/ChangeLog | 5 +++++ bfd/elf32-v850.c | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4c986680a3..9d03c56e2a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2001-02-04 Nick Clifton + + * elf32-v850.c (v850_elf_reloc): Do not convert reloc addend to PC + rel, it will be handled later on. + 2001-02-02 Fred Fish * Makefile.in: Fix typo. diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index 67fede0512..435c9e3e7f 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -1300,6 +1300,21 @@ v850_elf_reloc (abfd, reloc, symbol, data, isection, obfd, err) relocation += symbol->section->output_offset; relocation += reloc->addend; +#if 0 /* Since this reloc is going to be processed later on, we should + not make it pc-relative here. To test this, try assembling and + linking this program: + + .text + .globl _start + nop + _start: + jr foo + + .section ".foo","ax" + nop + foo: + nop + */ if (reloc->howto->pc_relative == true) { /* Here the variable relocation holds the final address of the @@ -1309,7 +1324,7 @@ v850_elf_reloc (abfd, reloc, symbol, data, isection, obfd, err) /* Deal with pcrel_offset */ relocation -= reloc->address; } - +#endif reloc->addend = relocation; return bfd_reloc_ok; }