* linker.c (bfd_wrapped_link_hash_lookup): New function.
authorIan Lance Taylor <ian@airs.com>
Tue, 12 Mar 1996 23:14:58 +0000 (23:14 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 12 Mar 1996 23:14:58 +0000 (23:14 +0000)
(_bfd_generic_link_add_one_symbol): Remove BFD_ASSERT on hash
table string.  Use bfd_wrapped_link_hash_lookup.
(_bfd_generic_link_write_global_symbol): Remove BFD_ASSERT on hash
table string.
* aoutx.h (aout_link_write_symbols): Use the name from the hash
table, if any, when writing out symbols.
(aout_link_input_section_std): Use the name from the hash table,
if any, when reporting undefined symbols.
(aout_link_input_section_ext): Likewise.
(aout_link_reloc_link_order): Use bfd_wrapped_link_hash_lookup.
* bout.c (get_value): Likewise.
* cofflink.c (_bfd_coff_reloc_link_order): Likewise.
* ecoff.c (ecoff_reloc_link_order): Likewise.
* elflink.h (elf_link_add_object_symbols): Likewise.
(elf_reloc_link_order): Likewise.
* linker.c (_bfd_generic_link_output_symbols): Likewise.
(_bfd_generic_reloc_link_order): Likewise.
(default_indirect_link_order): Likewise.
* reloc16.c (bfd_coff_reloc16_get_value): Likewise.
* sunos.c (sunos_add_one_symbol): Likewise.
* xcofflink.c (xcoff_link_add_symbols): Likewise.
(bfd_xcoff_link_count_reloc): Likewise.
(xcoff_reloc_link_order): Likewise.

bfd/ChangeLog
bfd/elflink.h

index 7dd4b64bd8c4b68fc9e247f5cb6408e334d6c248..af29efd6cd0146f7aa0c587a357f5d7b51959db5 100644 (file)
@@ -6,6 +6,34 @@ Tue Mar 12 12:41:17 1996  David Mosberger-Tang  <davidm@koala.azstarnet.com>
 
 Tue Mar 12 12:10:55 1996  Ian Lance Taylor  <ian@cygnus.com>
 
+       * linker.c (bfd_wrapped_link_hash_lookup): New function.
+       (_bfd_generic_link_add_one_symbol): Remove BFD_ASSERT on hash
+       table string.  Use bfd_wrapped_link_hash_lookup.
+       (_bfd_generic_link_write_global_symbol): Remove BFD_ASSERT on hash
+       table string.
+       * aoutx.h (aout_link_write_symbols): Use the name from the hash
+       table, if any, when writing out symbols.
+       (aout_link_input_section_std): Use the name from the hash table,
+       if any, when reporting undefined symbols.
+       (aout_link_input_section_ext): Likewise.
+       (aout_link_reloc_link_order): Use bfd_wrapped_link_hash_lookup.
+       * bout.c (get_value): Likewise.
+       * cofflink.c (_bfd_coff_reloc_link_order): Likewise.
+       * ecoff.c (ecoff_reloc_link_order): Likewise.
+       * elflink.h (elf_link_add_object_symbols): Likewise.
+       (elf_reloc_link_order): Likewise.       
+       * linker.c (_bfd_generic_link_output_symbols): Likewise.
+       (_bfd_generic_reloc_link_order): Likewise.
+       (default_indirect_link_order): Likewise.
+       * reloc16.c (bfd_coff_reloc16_get_value): Likewise.
+       * sunos.c (sunos_add_one_symbol): Likewise.
+       * xcofflink.c (xcoff_link_add_symbols): Likewise.
+       (bfd_xcoff_link_count_reloc): Likewise.
+       (xcoff_reloc_link_order): Likewise.
+
+       * ecoffswap.h (ecoff_swap_fdr_in): If ECOFF_64, turn 0xffffffff
+       into -1 for intern->rss.
+
        * configure: Rebuild with autoconf 2.8.
 
 Mon Mar 11 12:28:31 1996  Ian Lance Taylor  <ian@cygnus.com>
index c2160c86ceefe5be202b041f5d56730f79c333f3..4ef3c8b3c49b84576c6c3fe600b4d53066551c17 100644 (file)
@@ -643,8 +643,13 @@ elf_link_add_object_symbols (abfd, info)
             the dynamic object handling right.  We pass the hash
             table entry in to _bfd_generic_link_add_one_symbol so
             that it does not have to look it up again.  */
-         h = elf_link_hash_lookup (elf_hash_table (info), name,
-                                   true, false, false);
+         if (! bfd_is_und_section (sec))
+           h = elf_link_hash_lookup (elf_hash_table (info), name,
+                                     true, false, false);
+         else
+           h = ((struct elf_link_hash_entry *)
+                bfd_wrapped_link_hash_lookup (abfd, info, name, true,
+                                              false, false));
          if (h == NULL)
            goto error_return;
          *sym_hash = h;
@@ -3075,9 +3080,10 @@ elf_reloc_link_order (output_bfd, info, output_section, link_order)
 
       /* Treat a reloc against a defined symbol as though it were
          actually against the section.  */
-      h = elf_link_hash_lookup (elf_hash_table (info),
-                               link_order->u.reloc.p->u.name,
-                               false, false, true);
+      h = ((struct elf_link_hash_entry *)
+          bfd_wrapped_link_hash_lookup (output_bfd, info,
+                                        link_order->u.reloc.p->u.name,
+                                        false, false, true));
       if (h != NULL
          && (h->root.type == bfd_link_hash_defined
              || h->root.type == bfd_link_hash_defweak))