summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2002-05-06 13:47:55 +0000
committerNick Clifton <nickc@redhat.com>2002-05-06 13:47:55 +0000
commit02532f51a7c666abeabcc3f084681fa5e3911407 (patch)
treeedb27c1cc61f32e5f9ecdee397d2f8cfa931dd39
parentdc340fcf1b3c9bb460aa9f48011ca14359d9bf11 (diff)
downloadbinutils-redhat-jimb-macro-020506-branch.tar.gz
Fix check for overflow of relocation for the Thumb BL instruction.jimb-macro-020506-branchpointjimb-macro-020506-branch
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arm.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1545df80b1..1f0e6d0e2b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2002-05-06 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * elf32-arm.h (elf32_arm_final_link_relocate): Convert
+ 'reloc_signed_max' and 'reloc_signed_min' into half-word offsets.
+
2002-05-06 Alan Modra <amodra@bigpond.net.au>
* elflink.h (elf_link_input_bfd <emit_relocs>): Adjust r_offset
diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h
index 217666f9ab..51c51a47be 100644
--- a/bfd/elf32-arm.h
+++ b/bfd/elf32-arm.h
@@ -1390,7 +1390,7 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
boolean overflow = false;
bfd_vma upper_insn = bfd_get_16 (input_bfd, hit_data);
bfd_vma lower_insn = bfd_get_16 (input_bfd, hit_data + 2);
- bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1;
+ bfd_signed_vma reloc_signed_max = ((1 << (howto->bitsize - 1)) - 1) >> howto->rightshift;
bfd_signed_vma reloc_signed_min = ~ reloc_signed_max;
bfd_vma check;
bfd_signed_vma signed_check;