From 2be270a4ec731a9e9357bc07eefea4f12d1ce8f5 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 10 May 2007 17:00:03 +0000 Subject: [PATCH] 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. --- bfd/ChangeLog | 7 +++++++ bfd/elf32-arm.c | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 095fa48f1c..b7f09eb64e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2007-05-10 Richard Sandiford + + * 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. + 2007-05-11 Alan Modra PR 4454 diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 3fc47a9fa6..1eb0cf6688 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) -- 2.11.0