aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-arm.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2007-05-10 17:00:03 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2007-05-10 17:00:03 +0000
commitd3753b85b41d2cc05842cf4ee7c2492c684cbf06 (patch)
treeb344cf3cc2dd5197cc83a538efe01defdcf2af49 /bfd/elf32-arm.c
parentef8c95ad21ce77af37eb10fc918dfe6ae3116231 (diff)
downloadgdb-d3753b85b41d2cc05842cf4ee7c2492c684cbf06.zip
gdb-d3753b85b41d2cc05842cf4ee7c2492c684cbf06.tar.gz
gdb-d3753b85b41d2cc05842cf4ee7c2492c684cbf06.tar.bz2
bfd/
* elf32-arm.c (elf32_arm_check_relocs): Don't create PLT entries for R_ARM_ABS12 relocs. (elf32_arm_finish_dynamic_symbol): Fix the loop that creates non-shared VxWorks PLT entries. ld/testsuite/ * ld-arm/vxworks1-lib.dd: Expect "push" instead of stmdb and "pop" instead of ldmia. Don't require specific symbolic addresses for in-text addresses. Expect data to be rendered as .words rather than disassembled. * ld-arm/vxworks1.dd: Likewise.
Diffstat (limited to 'bfd/elf32-arm.c')
-rw-r--r--bfd/elf32-arm.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 3fc47a9..1eb0cf6 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -8062,7 +8062,8 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (r_type != R_ARM_ABS32
&& r_type != R_ARM_REL32
&& r_type != R_ARM_ABS32_NOI
- && r_type != R_ARM_REL32_NOI)
+ && r_type != R_ARM_REL32_NOI
+ && r_type != R_ARM_ABS12)
h->needs_plt = 1;
/* If we create a PLT entry, this relocation will reference
@@ -9248,7 +9249,7 @@ elf32_arm_finish_dynamic_symbol (bfd * output_bfd, struct bfd_link_info * info,
unsigned int i;
bfd_vma val;
- for (i = 0; i != htab->plt_entry_size / 4; i++)
+ for (i = 0; i != htab->plt_entry_size / 4; i++, ptr += 4)
{
val = elf32_arm_vxworks_exec_plt_entry[i];
if (i == 2)