* elf64-sparc.c (sparc64_elf_adjust_dynamic_symbol): When linking a
authorEric Botcazou <ebotcazou@libertysurf.fr>
Mon, 10 Jan 2005 11:23:01 +0000 (11:23 +0000)
committerEric Botcazou <ebotcazou@libertysurf.fr>
Mon, 10 Jan 2005 11:23:01 +0000 (11:23 +0000)
non-shared object, do not reserve space in .plt and .rela.plt
for regular symbols neither defined nor referenced in shared objects.

bfd/ChangeLog
bfd/elf64-sparc.c

index 04894f0f8794cb61ded5c4ab32f1b703eb98e593..1cff339560fc2dd1789ae0807541c3c9e257c8e4 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * elf64-sparc.c (sparc64_elf_adjust_dynamic_symbol): When linking a
+       non-shared object, do not reserve space in .plt and .rela.plt for
+       regular symbols neither defined nor referenced in shared objects.
+
 2005-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * elf32-sparc.c (elf32_sparc_link_hash_table_create): Use bfd_zmalloc
index 62fb524e58895ee7ffab67db8c929bb75af5262a..1b2835cc02eab7a1bca99ba9376c95e4e0464a66 100644 (file)
@@ -1680,7 +1680,11 @@ sparc64_elf_adjust_dynamic_symbol (info, h)
              || h->root.type == bfd_link_hash_defweak)
          && (h->root.u.def.section->flags & SEC_CODE) != 0))
     {
-      if (! elf_hash_table (info)->dynamic_sections_created)
+      if (! info->shared
+         && !h->def_dynamic
+         && !h->ref_dynamic
+         && h->root.type != bfd_link_hash_undefweak
+         && h->root.type != bfd_link_hash_undefined)
        {
          /* This case can occur if we saw a WPLT30 reloc in an input
              file, but none of the input files were dynamic objects.