aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog28
-rw-r--r--bfd/elflink.h16
2 files changed, 39 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7dd4b64..af29efd 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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>
diff --git a/bfd/elflink.h b/bfd/elflink.h
index c2160c8..4ef3c8b 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))