OSDN Git Service

bfd/
authorRichard Sandiford <rsandifo@nildram.co.uk>
Thu, 10 May 2007 17:00:03 +0000 (17:00 +0000)
committerRichard Sandiford <rsandifo@nildram.co.uk>
Thu, 10 May 2007 17:00:03 +0000 (17:00 +0000)
* 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
bfd/elf32-arm.c

index 095fa48..b7f09eb 100644 (file)
@@ -1,3 +1,10 @@
+2007-05-10  Richard Sandiford  <richard@codesourcery.com>
+
+       * 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  <amodra@bigpond.net.au>
 
        PR 4454
index 3fc47a9..1eb0cf6 100644 (file)
@@ -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)