From: Matthew Gretton-Dann Date: Fri, 19 Feb 2010 14:44:53 +0000 (+0000) Subject: 2010-01-19 Matthew Gretton-Dann X-Git-Tag: binutils-2_20_1~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aef392b869508309896fd2b13beb1bfc01a75e40;p=thirdparty%2Fbinutils-gdb.git 2010-01-19 Matthew Gretton-Dann * 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 * 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 * 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. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4f551765940..a9f5a4984d6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,12 @@ +2010-02-19 Matthew Gretton-Dann + + 2010-01-19 Matthew Gretton-Dann + * 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 PR binutils/11280 diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 157024c8cd1..f0700b0bf4d 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -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. */ diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 5b05fada870..521c22c68d8 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,18 @@ +2010-02-19 Matthew Gretton-Dann + + 2010-02-15 Matthew Gretton-Dann + * 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 + * 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 * ld-powerpc/aix-ref-1-32.od, ld-powerpc/aix-ref-1-64.od, diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index d88fb37ca1d..4b65c37a7c3 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -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