* libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Don't define.
authorIan Lance Taylor <ian@airs.com>
Mon, 6 Feb 1995 21:34:44 +0000 (21:34 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 6 Feb 1995 21:34:44 +0000 (21:34 +0000)
* elfcode.h (elf_link_add_object_symbols): Don't clear or set
ELF_LINK_HASH_DEFINED_WEAK.
(elf_link_output_extsym): Don't check ELF_LINK_HASH_DEFINED_WEAK.

bfd/ChangeLog
bfd/elfcode.h
bfd/libelf.h

index 0b3194bf20da37b0871a040a3d933fbc55751f4b..717d6c9fbaf2c14b629c070f7f988bc6ee60d186 100644 (file)
@@ -1,5 +1,10 @@
 Mon Feb  6 14:25:24 1995  Ian Lance Taylor  <ian@cygnus.com>
 
+       * libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Don't define.
+       * elfcode.h (elf_link_add_object_symbols): Don't clear or set
+       ELF_LINK_HASH_DEFINED_WEAK.
+       (elf_link_output_extsym): Don't check ELF_LINK_HASH_DEFINED_WEAK.
+
        Distinguish a weak defined symbol from a regular defined symbol.
        * linker.c (enum link_action): Add DEFW.
        (link_action): Add bfd_link_hash_defweak column.
index 0e61bb3c88188f29b9dabae5d694a157d6b32033..a99b1d9d7fe30942928e05f0b76e0486cf2f89c2 100644 (file)
@@ -4435,19 +4435,7 @@ elf_link_add_object_symbols (abfd, info)
                 with the new definition.  */
              h->root.type = bfd_link_hash_undefined;
              h->root.u.undef.abfd = h->root.u.def.section->owner;
-             h->elf_link_hash_flags &=~ ELF_LINK_HASH_DEFINED_WEAK;
            }
-
-         /* If this is a weak definition which we are going to use,
-            and the symbol is currently undefined, record that the
-            definition is weak.  */
-         if (definition
-             && (flags & BSF_WEAK) != 0
-             && ! bfd_is_und_section (sec)
-             && (h->root.type == bfd_link_hash_new
-                 || h->root.type == bfd_link_hash_undefined
-                 || h->root.type == bfd_link_hash_undefweak))
-           h->elf_link_hash_flags |= ELF_LINK_HASH_DEFINED_WEAK;
        }
 
       if (! (_bfd_generic_link_add_one_symbol
@@ -6100,8 +6088,7 @@ elf_link_output_extsym (h, data)
   sym.st_size = h->size;
   sym.st_other = 0;
   if (h->root.type == bfd_link_hash_undefweak
-      || h->root.type == bfd_link_hash_defweak
-      || (h->elf_link_hash_flags & ELF_LINK_HASH_DEFINED_WEAK) != 0)
+      || h->root.type == bfd_link_hash_defweak)
     sym.st_info = ELF_ST_INFO (STB_WEAK, h->type);
   else
     sym.st_info = ELF_ST_INFO (STB_GLOBAL, h->type);
index d732bef20dc87a808ceaef72b06a0c5de4037bb3..349f9fa68b3cb06d40350d9ee78da1c61b0f9c23 100644 (file)
@@ -117,12 +117,10 @@ struct elf_link_hash_entry
 #define ELF_LINK_HASH_DEF_DYNAMIC 010
   /* Dynamic symbol has been adjustd.  */
 #define ELF_LINK_HASH_DYNAMIC_ADJUSTED 020
-  /* Symbol is defined as weak.  */
-#define ELF_LINK_HASH_DEFINED_WEAK 040
   /* Symbol needs a copy reloc.  */
-#define ELF_LINK_HASH_NEEDS_COPY 0100
+#define ELF_LINK_HASH_NEEDS_COPY 040
   /* Symbol needs a procedure linkage table entry.  */
-#define ELF_LINK_HASH_NEEDS_PLT 0200
+#define ELF_LINK_HASH_NEEDS_PLT 0100
 };
 
 /* ELF linker hash table.  */