* elf64-ppc.c (add_symbol_adjust): Set sym visibility to most
authorAlan Modra <amodra@gmail.com>
Thu, 2 Jun 2005 13:13:54 +0000 (13:13 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 2 Jun 2005 13:13:54 +0000 (13:13 +0000)
restrictive of func code and func descr for undefined syms as well
as defined.

bfd/ChangeLog
bfd/elf64-ppc.c

index cc4031e13a3675869d0d025d750e185d04322e52..a37d99c4076e8e91c23ed4d14fd9f12339fb6629 100644 (file)
@@ -1,3 +1,9 @@
+2005-06-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (add_symbol_adjust): Set sym visibility to most
+       restrictive of func code and func descr for undefined syms as well
+       as defined.
+
 2005-05-31  Jim Blandy  <jimb@redhat.com>
 
        * Makefile.am: Regenerate dependencies with 'make dep-am'.
index 9052a233ea8fcbe688de5c11d748b50ed3de3a3e..04fcdc916697eff4b6933df14affc769901b3cbf 100644 (file)
@@ -4159,9 +4159,7 @@ add_symbol_adjust (struct elf_link_hash_entry *h, void *inf)
       else
        fdh->elf.ref_regular = 1;
     }
-  else if (fdh != NULL
-          && (fdh->elf.root.type == bfd_link_hash_defined
-              || fdh->elf.root.type == bfd_link_hash_defweak))
+  else if (fdh != NULL)
     {
       unsigned entry_vis = ELF_ST_VISIBILITY (eh->elf.other) - 1;
       unsigned descr_vis = ELF_ST_VISIBILITY (fdh->elf.other) - 1;
@@ -4170,7 +4168,9 @@ add_symbol_adjust (struct elf_link_hash_entry *h, void *inf)
       else if (entry_vis > descr_vis)
        eh->elf.other += descr_vis - entry_vis;
 
-      if (eh->elf.root.type == bfd_link_hash_undefined)
+      if ((fdh->elf.root.type == bfd_link_hash_defined
+          || fdh->elf.root.type == bfd_link_hash_defweak)
+         && eh->elf.root.type == bfd_link_hash_undefined)
        {
          eh->elf.root.type = bfd_link_hash_undefweak;
          eh->was_undefined = 1;