PR ld/15787
authorNick Clifton <nickc@redhat.com>
Wed, 14 Aug 2013 12:20:41 +0000 (12:20 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 14 Aug 2013 12:20:41 +0000 (12:20 +0000)
commit62c34db3dc2a5a77d28853a650182a26f00896bb
treecf955dc3e99195e200fb0ca6ed0813f9df9e9404
parentfde605f3823b735b0505ab8e66ca0e3a6a327281
PR ld/15787
* elf32-arm.c (elf32_arm_final_link_relocate): Use origin of output
segment containing the relocating symbol instead of assuming 0 for
sb group relocations.

* ld-arm/group-relocs-ldr-bad.s: Redefine bar into foo section
beyond 16 bit offset width.
* ld-arm/group-relocs-ldrs-bad.s: Likewise.
* ld-arm/group-relocs-ldr-bad.d: Adjust expected result.
* ld-arm/group-relocs-ldrs-bad.d: Likewise.
* ld-arm/group-relocs.s: Add comments.  Move symbols used for sb
group relocations into .data section.  Drop section zero.  Use pc/r0
as base register when pc/sb group relocations are used.
* ld-arm/group-relocs.d: Adjust expected result.
* ld-arm/group-relocs-alu-bad-2.d: New test for sb group relocation.
* ld-arm/group-relocs-ldc-bad-2.d: Likewise.
* ld-arm/group-relocs-ldr-bad-2.d: New test for pc group relocation.
* ld-arm/group-relocs-ldrs-bad-2.d: Likewise.
* ld-arm/unresolved-2.d: Add sb relocation failure test.
* ld-arm/group-relocs-alu-bad-2.s: New test source.
* ld-arm/group-relocs-ldr-bad-2.s: Likewise.
* ld-arm/group-relocs-ldrs-bad-2.s: Likewise.
* ld-arm/group-relocs-ldc-bad-2.s: Likewise.
* ld-arm/unresolved-2.s: Likewise.
* ld-arm/arm-elf.exp: For group-relocs, drop section zero start
definition.  Run the new tests.
14 files changed:
bfd/ChangeLog
bfd/elf32-arm.c
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/group-relocs-ldr-bad-2.d
ld/testsuite/ld-arm/group-relocs-ldr-bad-2.s
ld/testsuite/ld-arm/group-relocs-ldr-bad.d
ld/testsuite/ld-arm/group-relocs-ldr-bad.s
ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.d
ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.s
ld/testsuite/ld-arm/group-relocs-ldrs-bad.d
ld/testsuite/ld-arm/group-relocs-ldrs-bad.s
ld/testsuite/ld-arm/unresolved-2.d [new file with mode: 0644]
ld/testsuite/ld-arm/unresolved-2.s [new file with mode: 0644]