* ecofflink.c (bfd_ecoff_debug_externals): If a small undefined

symbol has a value in the ECOFF symbol but not in the BFD symbol,
	keep the value in the ECOFF symbol.  This helps gas.
This commit is contained in:
Ian Lance Taylor 1994-02-04 04:18:28 +00:00
parent f85ad9d5c5
commit cbc174e7ab
2 changed files with 13 additions and 1 deletions

View File

@ -1,5 +1,9 @@
Thu Feb 3 16:49:35 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* ecofflink.c (bfd_ecoff_debug_externals): If a small undefined
symbol has a value in the ECOFF symbol but not in the BFD symbol,
keep the value in the ECOFF symbol. This helps gas.
* linker.c (_bfd_generic_link_output_symbols,
_bfd_generic_link_write_global_symbol): Don't require that all
references to a common symbol be themselves common symbols.

View File

@ -991,7 +991,15 @@ bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr,
if (bfd_is_com_section (sym_ptr->section)
|| sym_ptr->section == &bfd_und_section)
esym.asym.value = sym_ptr->value;
{
/* FIXME: gas does not keep the value of a small undefined
symbol in the symbol itself, because of relocation
problems. */
if (esym.asym.sc != scSUndefined
|| esym.asym.value == 0
|| sym_ptr->value != 0)
esym.asym.value = sym_ptr->value;
}
else
esym.asym.value = (sym_ptr->value
+ sym_ptr->section->output_offset