Fix PR ld/17277: bogus dynamic relocs and TEXTREL for ARM PC-relative relocs
authorRoland McGrath <mcgrathr@google.com>
Wed, 20 Aug 2014 17:12:57 +0000 (10:12 -0700)
committerRoland McGrath <mcgrathr@google.com>
Wed, 20 Aug 2014 17:12:57 +0000 (10:12 -0700)
commit469a34932ae4208240e98c843b01ea1f00892137
tree5ec5e106992782cd4b6b7ff1451ede29dd4875fa
parent01e6c1a48d2c56a5e8a78f54b3b2021da42257e7
Fix PR ld/17277: bogus dynamic relocs and TEXTREL for ARM PC-relative relocs

bfd/
PR ld/17277
* elf32-arm.c (elf32_arm_check_relocs): Increment P->pc_count for
all reloc types with pc_relative set in the howto, not just for
R_ARM_REL32 and R_ARM_REL32_NOI.
(allocate_dynrelocs_for_symbol): Update comment.
(elf32_arm_gc_sweep_hook): For all reloc types with pc_relative
set in the howto, set call_reloc_p and may_need_local_target_p but
not may_become_dynamic_p; not only for R_ARM_REL32 and R_ARM_REL32_NOI.
(elf32_arm_check_relocs): Likewise.

ld/testsuite/
PR ld/17277
* ld-arm/pcrel-shared.s: New file.
* ld-arm/pcrel-shared.rd: New file.
* ld-arm/arm-elf.exp (armelftests_common): Add it.
bfd/ChangeLog
bfd/elf32-arm.c
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/pcrel-shared.rd [new file with mode: 0644]
ld/testsuite/ld-arm/pcrel-shared.s [new file with mode: 0644]