From 427bfd905da0f6acce66519e17ba5ccbbef19677 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 13 Feb 2003 19:35:22 +0000 Subject: [PATCH] (elf32_thumb_to_arm_stub): Include section VMAs in computation of offset to insert into BL instruction. --- bfd/ChangeLog | 5 +++++ bfd/elf32-arm.h | 17 ++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f58ec795ba5..f5c91e58aea 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2003-02-13 Nick Clifton + + * elf32-arm.h (elf32_thumb_to_arm_stub): Include section VMAs + in computation of offset to insert into BL instruction. + 2003-02-11 Uwe Stieber * config.bfd: Add support for kaOS as cross build target system. diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h index effe7e6af05..509b4815574 100644 --- a/bfd/elf32-arm.h +++ b/bfd/elf32-arm.h @@ -929,13 +929,16 @@ elf32_thumb_to_arm_stub (info, name, input_bfd, output_bfd, input_section, BFD_ASSERT (my_offset <= globals->thumb_glue_size); - /* Now go back and fix up the original BL insn to point - to here. */ - ret_offset = (s->output_offset - + my_offset - - (input_section->output_offset - + offset + addend) - - 8); + /* Now go back and fix up the original BL insn to point to here. */ + ret_offset = + /* Address of where the stub is located. */ + (s->output_section->vma + s->output_offset + my_offset) + /* Address of where the BL is located. */ + - (input_section->output_section->vma + input_section->output_offset + offset) + /* Addend in the relocation. */ + - addend + /* Biassing for PC-relative addressing. */ + - 8; tmp = bfd_get_32 (input_bfd, hit_data - input_section->vma); -- 2.30.2