aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf32-arm.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6df9902..1afd7e4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2012-06-29 Nick Clifton <nickc@redhat.com>
+
+ PR ld/14189
+ * elf32-arm.c (elf32_arm_check_relocs): Do not increment refcount
+ for locally bound symbols.
+
2012-06-29 Alan Modra <amodra@gmail.com>
* section.c (bfd_get_linker_section): New function.
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 7083422..bc1f195 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -12669,7 +12669,8 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
/* If the symbol is a function that doesn't bind locally,
this relocation will need a PLT entry. */
- root_plt->refcount += 1;
+ if (root_plt->refcount != -1)
+ root_plt->refcount += 1;
if (!call_reloc_p)
arm_plt->noncall_refcount++;