Fix garbage collection of common symbols for powerpc64
authorAlan Modra <amodra@gmail.com>
Tue, 20 Jan 2015 00:36:28 +0000 (11:06 +1030)
committerAlan Modra <amodra@gmail.com>
Tue, 20 Jan 2015 00:42:34 +0000 (11:12 +1030)
I forgot powerpc64 has its own gc_mark_dynamic_ref.

PR ld/17615
* elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Don't drop
ELF_COMMON_DEF syms.

bfd/ChangeLog
bfd/elf64-ppc.c

index 06cfacb..f819610 100644 (file)
@@ -1,3 +1,9 @@
+2015-01-20  Alan Modra  <amodra@gmail.com>
+
+       PR ld/17615
+       * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Don't drop
+       ELF_COMMON_DEF syms.
+
 2015-01-19  Alan Modra  <amodra@gmail.com>
 
        PR ld/17615
index f6a8ccb..5a1ee50 100644 (file)
@@ -6232,7 +6232,7 @@ ppc64_elf_gc_mark_dynamic_ref (struct elf_link_hash_entry *h, void *inf)
   if ((eh->elf.root.type == bfd_link_hash_defined
        || eh->elf.root.type == bfd_link_hash_defweak)
       && (eh->elf.ref_dynamic
-         || (eh->elf.def_regular
+         || ((eh->elf.def_regular || ELF_COMMON_DEF_P (&eh->elf))
              && ELF_ST_VISIBILITY (eh->elf.other) != STV_INTERNAL
              && ELF_ST_VISIBILITY (eh->elf.other) != STV_HIDDEN
              && (!info->executable