* elf64-ppc.c (update_plt_info): Don't mark new ABI call syms
authorAlan Modra <amodra@gmail.com>
Sat, 5 Mar 2005 11:44:14 +0000 (11:44 +0000)
committerAlan Modra <amodra@gmail.com>
Sat, 5 Mar 2005 11:44:14 +0000 (11:44 +0000)
with is_func.
(func_desc_adjust): Force dot-syms local in executables as well
as shared libs.

bfd/ChangeLog
bfd/elf64-ppc.c

index af8d64e..98166a7 100644 (file)
@@ -1,3 +1,10 @@
+2005-03-05  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (update_plt_info): Don't mark new ABI call syms
+       with is_func.
+       (func_desc_adjust): Force dot-syms local in executables as well
+       as shared libs.
+
 2005-03-04  David Daney  <ddaney@avtrex.com>
 
        * elfxx-mips.c (mips_elf_calculate_relocation): Handle special
index 266a2fc..ca23f23 100644 (file)
@@ -4213,7 +4213,9 @@ update_plt_info (bfd *abfd, struct ppc_link_hash_entry *eh, bfd_vma addend)
     }
   ent->plt.refcount += 1;
   eh->elf.needs_plt = 1;
-  eh->is_func = 1;
+  if (eh->elf.root.root.string[0] == '.'
+      && eh->elf.root.root.string[1] != '\0')
+    eh->is_func = 1;
   return TRUE;
 }
 
@@ -5486,12 +5488,10 @@ func_desc_adjust (struct elf_link_hash_entry *h, void *inf)
      been imported from another library.  Function code syms that
      are really in the library we must leave global to prevent the
      linker dragging in a definition from a static library.  */
-  force_local
-    = (info->shared
-       && (!fh->elf.def_regular
-          || fdh == NULL
-          || !fdh->elf.def_regular
-          || fdh->elf.forced_local));
+  force_local = (!fh->elf.def_regular
+                || fdh == NULL
+                || !fdh->elf.def_regular
+                || fdh->elf.forced_local);
   _bfd_elf_link_hash_hide_symbol (info, &fh->elf, force_local);
 
   return TRUE;