* elflink.h (elf_link_add_object_symbols): If a symbol is a weak
authorIan Lance Taylor <ian@airs.com>
Tue, 8 Oct 1996 18:50:59 +0000 (18:50 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 8 Oct 1996 18:50:59 +0000 (18:50 +0000)
definition in a dynamic object, add it to the dynamic symbol table
if any dynamic object mentions it.  Reverts part of last patch.
PR 10827.

bfd/ChangeLog
bfd/elflink.h

index e05cd4c58f746dd5c697af445ad1e7aa51e5b40c..1b0f8d017c2386236e2f6f4dad2395a1d602c9c0 100644 (file)
@@ -5,6 +5,10 @@ Tue Oct  8 08:51:19 1996  Stu Grossman  (grossman@critters.cygnus.com)
 
 Tue Oct  8 11:40:16 1996  Ian Lance Taylor  <ian@cygnus.com>
 
+       * elflink.h (elf_link_add_object_symbols): If a symbol is a weak
+       definition in a dynamic object, add it to the dynamic symbol table
+       if any dynamic object mentions it.  Reverts part of last patch.
+
        * sunos.c (struct sunos_link_hash_table): Add got_base field.
        (sunos_link_hash_table_create): Initialize got_base.
        (bfd_sunos_size_dynamic_sections): If the .got section is more
index dae7597835bd6886299a9e497b06e7204611c7a5..dcc5827db30728d260bc5d2a1adc24bd5879294a 100644 (file)
@@ -828,7 +828,10 @@ elf_link_add_object_symbols (abfd, info)
              else
                new_flag = ELF_LINK_HASH_DEF_DYNAMIC;
              if ((old_flags & (ELF_LINK_HASH_DEF_REGULAR
-                               | ELF_LINK_HASH_REF_REGULAR)) != 0)
+                               | ELF_LINK_HASH_REF_REGULAR)) != 0
+                 || (h->weakdef != NULL
+                     && (old_flags & (ELF_LINK_HASH_DEF_DYNAMIC
+                                      | ELF_LINK_HASH_REF_DYNAMIC)) != 0))
                dynsym = true;
            }