From: Ian Lance Taylor Date: Tue, 12 Mar 1996 23:14:58 +0000 (+0000) Subject: * linker.c (bfd_wrapped_link_hash_lookup): New function. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8881b321e06d93be5b37a5504359347b0e104bf0;p=binutils-gdb.git * 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. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7dd4b64bd8c..af29efd6cd0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -6,6 +6,34 @@ Tue Mar 12 12:41:17 1996 David Mosberger-Tang Tue Mar 12 12:10:55 1996 Ian Lance Taylor + * 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 diff --git a/bfd/elflink.h b/bfd/elflink.h index c2160c86cee..4ef3c8b3c49 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -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))