* libaout.h (struct aout_link_hash_entry): New field written.

* aoutx.h (NAME(aout,link_hash_newfunc)): Initialize written.
	(aout_link_write_symbols): Use written, not root.written.
	(aout_link_write_other_symbol): Likewise.
	* sunos.c (sunos_scan_dynamic_symbol): Likewise.
	* libecoff.h (struct ecoff_link_hash_entry): New field written.
	* ecoff.c (ecoff_link_hash_newfunc): Initialize written.
	(ecoff_link_write_external): use written, not root.written.
	* genlink.h (struct generic_link_hash_entry): New field written.
	* linker.c (_bfd_link_hash_newfunc): Don't initialize written.
	(generic_link_hash_newfunc): Initialize written.
	(_bfd_generic_link_output_symbols): Use written, not root.written.
	(_bfd_generic_link_write_global_symbol): Likewise.
	(_bfd_generic_reloc_link_order): Likewise.
This commit is contained in:
Ian Lance Taylor
1994-06-06 18:42:38 +00:00
parent 469984d1f6
commit 35fee729f2
3 changed files with 30 additions and 12 deletions

View File

@@ -1,5 +1,20 @@
Mon Jun 6 10:57:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* libaout.h (struct aout_link_hash_entry): New field written.
* aoutx.h (NAME(aout,link_hash_newfunc)): Initialize written.
(aout_link_write_symbols): Use written, not root.written.
(aout_link_write_other_symbol): Likewise.
* sunos.c (sunos_scan_dynamic_symbol): Likewise.
* libecoff.h (struct ecoff_link_hash_entry): New field written.
* ecoff.c (ecoff_link_hash_newfunc): Initialize written.
(ecoff_link_write_external): use written, not root.written.
* genlink.h (struct generic_link_hash_entry): New field written.
* linker.c (_bfd_link_hash_newfunc): Don't initialize written.
(generic_link_hash_newfunc): Initialize written.
(_bfd_generic_link_output_symbols): Use written, not root.written.
(_bfd_generic_link_write_global_symbol): Likewise.
(_bfd_generic_reloc_link_order): Likewise.
* libecoff.h (ecoff_data_type): Add linker field.
* ecoff.c (ecoff_write_object_contents): Check new tdata linker
field, rather than outsymbols being non-NULL, to decide whether to

View File

@@ -2854,8 +2854,11 @@ NAME(aout,link_hash_newfunc) (entry, table, string)
_bfd_link_hash_newfunc ((struct bfd_hash_entry *) ret,
table, string));
if (ret)
/* Set local fields. */
ret->indx = -1;
{
/* Set local fields. */
ret->written = false;
ret->indx = -1;
}
return (struct bfd_hash_entry *) ret;
}
@@ -3726,7 +3729,7 @@ aout_link_write_symbols (finfo, input_bfd, symbol_map)
/* If the symbol has already been written out, skip it. */
if (h != (struct aout_link_hash_entry *) NULL
&& h->root.type != bfd_link_hash_warning
&& h->root.written)
&& h->written)
{
if ((type & N_TYPE) == N_INDR)
skip_indirect = true;
@@ -3756,7 +3759,7 @@ aout_link_write_symbols (finfo, input_bfd, symbol_map)
if (skip)
{
if (h != (struct aout_link_hash_entry *) NULL)
h->root.written = true;
h->written = true;
continue;
}
@@ -3855,7 +3858,7 @@ aout_link_write_symbols (finfo, input_bfd, symbol_map)
it is a local symbol see if we should discard it. */
if (h != (struct aout_link_hash_entry *) NULL)
{
h->root.written = true;
h->written = true;
h->indx = obj_aout_external_sym_count (output_bfd);
}
else
@@ -3965,10 +3968,10 @@ aout_link_write_other_symbol (h, data)
}
}
if (h->root.written)
if (h->written)
return true;
h->root.written = true;
h->written = true;
if (finfo->info->strip == strip_all
|| (finfo->info->strip == strip_some

View File

@@ -469,7 +469,6 @@ _bfd_link_hash_newfunc (entry, table, string)
{
/* Initialize the local fields. */
ret->type = bfd_link_hash_new;
ret->written = false;
ret->next = NULL;
}
@@ -583,6 +582,7 @@ generic_link_hash_newfunc (entry, table, string)
if (ret)
{
/* Set local fields. */
ret->written = false;
ret->sym = NULL;
}
@@ -1930,7 +1930,7 @@ _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc)
if (! generic_add_output_symbol (output_bfd, psymalloc, sym))
return false;
if (h != (struct generic_link_hash_entry *) NULL)
h->root.written = true;
h->written = true;
}
}
@@ -1949,10 +1949,10 @@ _bfd_generic_link_write_global_symbol (h, data)
(struct generic_write_global_symbol_info *) data;
asymbol *sym;
if (h->root.written)
if (h->written)
return true;
h->root.written = true;
h->written = true;
if (wginfo->info->strip == strip_all
|| (wginfo->info->strip == strip_some
@@ -2061,7 +2061,7 @@ _bfd_generic_reloc_link_order (abfd, info, sec, link_order)
link_order->u.reloc.p->u.name,
false, false, true);
if (h == (struct generic_link_hash_entry *) NULL
|| ! h->root.written)
|| ! h->written)
{
if (! ((*info->callbacks->unattached_reloc)
(info, link_order->u.reloc.p->u.name,