* elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't emit out-of-line
authorAlan Modra <amodra@gmail.com>
Fri, 22 Jun 2012 05:53:04 +0000 (05:53 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 22 Jun 2012 05:53:04 +0000 (05:53 +0000)
save/restore functions when relocatable.  Make "funcs" static.

bfd/ChangeLog
bfd/elf64-ppc.c

index d4902da..105c72b 100644 (file)
@@ -1,3 +1,8 @@
+2012-06-22  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't emit out-of-line
+       save/restore functions when relocatable.  Make "funcs" static.
+
 2012-06-18  Hans-Peter Nilsson  <hp@axis.com>
 
        * elf32-cris.c (cris_elf_plt_sym_val): Rewrite to work in presence
index 5278589..46e8247 100644 (file)
@@ -6468,7 +6468,7 @@ ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED,
 {
   struct ppc_link_hash_table *htab;
   unsigned int i;
-  const struct sfpr_def_parms funcs[] =
+  static const struct sfpr_def_parms funcs[] =
     {
       { "_savegpr0_", 14, 31, savegpr0, savegpr0_tail },
       { "_restgpr0_", 14, 29, restgpr0, restgpr0_tail },
@@ -6494,9 +6494,10 @@ ppc64_elf_func_desc_adjust (bfd *obfd ATTRIBUTE_UNUSED,
 
   /* Provide any missing _save* and _rest* functions.  */
   htab->sfpr->size = 0;
-  for (i = 0; i < sizeof (funcs) / sizeof (funcs[0]); i++)
-    if (!sfpr_define (info, &funcs[i]))
-      return FALSE;
+  if (!info->relocatable)
+    for (i = 0; i < sizeof (funcs) / sizeof (funcs[0]); i++)
+      if (!sfpr_define (info, &funcs[i]))
+       return FALSE;
 
   elf_link_hash_traverse (&htab->elf, func_desc_adjust, info);