* elf32-ppc.c (allocate_dynrelocs): Tweak undef weak handling.
authorAlan Modra <amodra@gmail.com>
Fri, 17 Feb 2006 12:52:58 +0000 (12:52 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 17 Feb 2006 12:52:58 +0000 (12:52 +0000)
* elf64-ppc.c (allocate_dynrelocs): Likewise.

bfd/ChangeLog
bfd/elf32-ppc.c
bfd/elf64-ppc.c

index 3f4da9c..6162d9c 100644 (file)
@@ -1,5 +1,10 @@
 2006-02-17  Alan Modra  <amodra@bigpond.net.au>
 
+       * elf32-ppc.c (allocate_dynrelocs): Tweak undef weak handling.
+       * elf64-ppc.c (allocate_dynrelocs): Likewise.
+
+2006-02-17  Alan Modra  <amodra@bigpond.net.au>
+
        PR ld/2218
        * elf64-ppc.c (allocate_dynrelocs): Ensure undef weak sym is
        dynamic.
index caa5ed4..134b960 100644 (file)
@@ -4546,7 +4546,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 
       /* Also discard relocs on undefined weak syms with non-default
         visibility.  */
-      if (h->root.type == bfd_link_hash_undefweak)
+      if (eh->dyn_relocs != NULL
+         && h->root.type == bfd_link_hash_undefweak)
        {
          if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
            eh->dyn_relocs = NULL;
index 785c859..1cfac82 100644 (file)
@@ -7582,7 +7582,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 
       /* Also discard relocs on undefined weak syms with non-default
         visibility.  */
-      if (h->root.type == bfd_link_hash_undefweak)
+      if (eh->dyn_relocs != NULL
+         && h->root.type == bfd_link_hash_undefweak)
        {
          if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
            eh->dyn_relocs = NULL;