]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2010-01-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
authorMatthew Gretton-Dann <matthew.gretton-dann@arm.com>
Fri, 19 Feb 2010 14:44:53 +0000 (14:44 +0000)
committerMatthew Gretton-Dann <matthew.gretton-dann@arm.com>
Fri, 19 Feb 2010 14:44:53 +0000 (14:44 +0000)
* bfd/elf32-arm.c (elf32_arm_howto_table_1): Correct bitsize of
R_ARM_THM_CALL entry.
(elf32_arm_final_link_relocate): Correct calculation of
reloc_signed_max when doing a R_ARM_THM_CALL, R_ARM_THM_XPC22,
or R_ARM_THM_JUMP24 relocation.
2010-02-15  Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
* ld/testsuite/ld-arm/jump-reloc-veneers-long.d: Correct testcase for
arm-none-eabi target.
* ld/testsuite/ld-arm/jump-reloc-veneers-short1.d: Likewise
* ld/testsuite/ld-arm/jump-reloc-veneers-short2.d: Likewise
2010-02-01  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
* ld/testsuite/ld-arm/jump-reloc-veneers-long.d: New test.
* ld/testsuite/ld-arm/jump-reloc-veneers-short1.d: Likewise.
* ld/testsuite/ld-arm/jump-reloc-veneers-short2.d: Likewise.
* ld/testsuite/ld-arm/jump-reloc-veneers.s: Likewise.
* ld/testsuite/ld-arm/arm-elf.exp (armelftests): Run them.

bfd/ChangeLog
bfd/elf32-arm.c
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp

index 4f55176594024c6c2a1c2ad55b5c2205e715b439..a9f5a4984d6eb1edd0d45a8bb41f832165293a14 100644 (file)
@@ -1,3 +1,12 @@
+2010-02-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       2010-01-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+       * elf32-arm.c (elf32_arm_howto_table_1): Correct bitsize of
+       R_ARM_THM_CALL entry.
+       (elf32_arm_final_link_relocate): Correct calculation of
+       reloc_signed_max when doing a R_ARM_THM_CALL, R_ARM_THM_XPC22,
+       or R_ARM_THM_JUMP24 relocation.
+
 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
 
        PR binutils/11280
index 157024c8cd1a9511da831cb556dc242383df7503..f0700b0bf4d17768825d78b8b12bad2124c1b0c3 100644 (file)
@@ -1,6 +1,6 @@
 /* 32-bit ELF support for ARM
    Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-   2008, 2009  Free Software Foundation, Inc.
+   2008, 2009, 2010  Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -224,7 +224,7 @@ static reloc_howto_type elf32_arm_howto_table_1[] =
   HOWTO (R_ARM_THM_CALL,       /* type */
         1,                     /* rightshift */
         2,                     /* size (0 = byte, 1 = short, 2 = long) */
-        25,                    /* bitsize */
+        24,                    /* bitsize */
         TRUE,                  /* pc_relative */
         0,                     /* bitpos */
         complain_overflow_signed,/* complain_on_overflow */
@@ -7533,7 +7533,7 @@ elf32_arm_final_link_relocate (reloc_howto_type *           howto,
        bitsize = howto->bitsize;
        if (!thumb2)
          bitsize -= 2;
-       reloc_signed_max = ((1 << (bitsize - 1)) - 1) >> howto->rightshift;
+       reloc_signed_max = (1 << (bitsize - 1)) - 1;
        reloc_signed_min = ~reloc_signed_max;
 
        /* Assumes two's complement.  */
index 5b05fada870ec0e3f86492d6728aeea2d1b106b7..521c22c68d8d275b8a9334770bf9f19e423ff1d7 100644 (file)
@@ -1,3 +1,18 @@
+2010-02-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+       2010-02-15  Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
+       * ld-arm/jump-reloc-veneers-long.d: Correct testcase for
+       arm-none-eabi target.
+       * ld-arm/jump-reloc-veneers-short1.d: Likewise
+       * ld-arm/jump-reloc-veneers-short2.d: Likewise
+
+       2010-02-01  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+       * ld-arm/jump-reloc-veneers-long.d: New test.
+       * ld-arm/jump-reloc-veneers-short1.d: Likewise.
+       * ld-arm/jump-reloc-veneers-short2.d: Likewise.
+       * ld-arm/jump-reloc-veneers.s: Likewise.
+       * ld-arm/arm-elf.exp (armelftests): Run them.
+
 2010-01-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
 
        * ld-powerpc/aix-ref-1-32.od, ld-powerpc/aix-ref-1-64.od,
index d88fb37ca1dcdc8a2cd4099d24e5a4170d2c38d1..4b65c37a7c3a7a09b7a443769fefbdbeedcb4ca5 100644 (file)
@@ -419,6 +419,24 @@ set armeabitests {
      {{objdump -fdw farcall-mixed-lib.d}}
      "farcall-mixed-lib.so"}
 
+    {"R_ARM_THM_JUMP24 Relocation veneers: Short 1" 
+     "-defsym _start=0x8000 --section-start destsect=0x00009000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-short1.d}}
+     "jump-reloc-veneers-short1"}
+    {"R_ARM_THM_JUMP24 Relocation veneers: Short 2" 
+     "-defsym _start=0x8000 --section-start destsect=0x00900000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-short2.d}}
+     "jump-reloc-veneers-short2"}
+    {"R_ARM_THM_JUMP24 Relocation veneers: Long" 
+     "-defsym _start=0x8000 --section-start destsect=0x09000000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-long.d}}
+     "jump-reloc-veneers-long"}
 }
 
 run_ld_link_tests $armeabitests