* elf32-arm.c (elf32_arm_check_relocs): Check needs_plt rather than
	h->needs_plt when deciding whether to record a possible dynamic reloc.

ld/testsuite/
	* ld-arm/arm-rel32.s, ld-arm/arm-rel32.d: New testcase.
	* ld-arm/arm-elf.exp: Run it.
This commit is contained in:
Richard Sandiford 2011-01-17 16:36:43 +00:00
parent 1e81e12b2c
commit da17376b70
6 changed files with 34 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2011-01-17 Richard Sandiford <richard.sandiford@linaro.org>
* elf32-arm.c (elf32_arm_check_relocs): Check needs_plt rather than
h->needs_plt when deciding whether to record a possible dynamic reloc.
2011-01-17 Richard Sandiford <richard.sandiford@linaro.org>
* elf32-arm.c (elf32_arm_gc_sweep_hook): Remove all registered

View File

@ -11576,7 +11576,7 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
if ((info->shared || htab->root.is_relocatable_executable)
&& (sec->flags & SEC_ALLOC) != 0
&& ((r_type == R_ARM_ABS32 || r_type == R_ARM_ABS32_NOI)
|| (h != NULL && ! h->needs_plt
|| (h != NULL && ! needs_plt
&& (! info->symbolic || ! h->def_regular))))
{
struct elf_dyn_relocs *p, **head;

View File

@ -1,3 +1,8 @@
2011-01-17 Richard Sandiford <richard.sandiford@linaro.org>
* ld-arm/arm-rel32.s, ld-arm/arm-rel32.d: New testcase.
* ld-arm/arm-elf.exp: Run it.
2011-01-17 Richard Sandiford <richard.sandiford@linaro.org>
* ld-arm/gc-thumb-lib.s, ld-arm/gc-thumb.s,

View File

@ -126,6 +126,9 @@ set armelftests {
{"arm-rel31" "-static -T arm.ld" "" {arm-rel31.s}
{{objdump -s arm-rel31.d}}
"arm-rel31"}
{"arm-rel32" "-shared -T arm-dyn.ld" "" {arm-rel32.s}
{{objdump -Rsj.data arm-rel32.d}}
"arm-rel32"}
{"arm-call" "-static -T arm.ld" "-meabi=4" {arm-call1.s arm-call2.s}
{{objdump -d arm-call.d}}
"arm-call"}

View File

@ -0,0 +1,12 @@
.*: file format .*
DYNAMIC RELOCATION RECORDS
OFFSET +TYPE +VALUE
[^ ]+ R_ARM_REL32 +foo
[^ ]+ R_ARM_REL32 +foo
[^ ]+ R_ARM_JUMP_SLOT +foo
Contents of section \.data:
[^ ]+ 00000000 00010000 .*

View File

@ -0,0 +1,8 @@
.globl foo
foo:
mov pc,lr
bal foo(PLT)
.data
.word foo-.
.word foo-.+0x100