* aoutx.h (aout_link_write_symbols): Rename skip_indirect to

skip_next.  If we find an N_WARNING symbol which has already been
	written out, set skip_next.
PR 5634.
This commit is contained in:
Ian Lance Taylor 1994-09-14 23:28:25 +00:00
parent f69ecb9c9a
commit ab0434c26d
2 changed files with 12 additions and 7 deletions

View File

@ -18,6 +18,10 @@ Wed Sep 14 15:37:19 1994 Jeff Law (law@snake.cs.utah.edu)
Wed Sep 14 15:06:55 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) Wed Sep 14 15:06:55 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
* aoutx.h (aout_link_write_symbols): Rename skip_indirect to
skip_next. If we find an N_WARNING symbol which has already been
written out, set skip_next.
* libecoff.h (struct ecoff_tdata): Add field find_buffer. * libecoff.h (struct ecoff_tdata): Add field find_buffer.
* ecoff.c: Include aout/stab_gnu.h. * ecoff.c: Include aout/stab_gnu.h.
(ecoff_find_nearest_line): Handle stabs debugging information. (ecoff_find_nearest_line): Handle stabs debugging information.

View File

@ -3609,7 +3609,7 @@ aout_link_write_symbols (finfo, input_bfd)
struct aout_link_hash_entry **sym_hash; struct aout_link_hash_entry **sym_hash;
int *symbol_map; int *symbol_map;
boolean pass; boolean pass;
boolean skip_indirect; boolean skip_next;
output_bfd = finfo->output_bfd; output_bfd = finfo->output_bfd;
sym_count = obj_aout_external_sym_count (input_bfd); sym_count = obj_aout_external_sym_count (input_bfd);
@ -3644,7 +3644,7 @@ aout_link_write_symbols (finfo, input_bfd)
} }
pass = false; pass = false;
skip_indirect = false; skip_next = false;
sym = obj_aout_external_syms (input_bfd); sym = obj_aout_external_syms (input_bfd);
sym_end = sym + sym_count; sym_end = sym + sym_count;
sym_hash = obj_aout_sym_hashes (input_bfd); sym_hash = obj_aout_sym_hashes (input_bfd);
@ -3673,12 +3673,12 @@ aout_link_write_symbols (finfo, input_bfd)
val = GET_WORD (input_bfd, sym->e_value); val = GET_WORD (input_bfd, sym->e_value);
pass = false; pass = false;
} }
else if (skip_indirect) else if (skip_next)
{ {
/* Skip this symbol, which is the target of an indirect /* Skip this symbol, which is the target of an indirect
symbol that we have changed to no longer be an indirect symbol that we have changed to no longer be an indirect
symbol. */ symbol. */
skip_indirect = false; skip_next = false;
continue; continue;
} }
else else
@ -3713,8 +3713,9 @@ aout_link_write_symbols (finfo, input_bfd)
&& h->root.type != bfd_link_hash_warning && h->root.type != bfd_link_hash_warning
&& h->written) && h->written)
{ {
if ((type & N_TYPE) == N_INDR) if ((type & N_TYPE) == N_INDR
skip_indirect = true; || type == N_WARNING)
skip_next = true;
*symbol_map = h->indx; *symbol_map = h->indx;
continue; continue;
} }
@ -3785,7 +3786,7 @@ aout_link_write_symbols (finfo, input_bfd)
a case we do not want to output the next symbol, a case we do not want to output the next symbol,
which is the target of the indirection. */ which is the target of the indirection. */
if ((type & N_TYPE) == N_INDR) if ((type & N_TYPE) == N_INDR)
skip_indirect = true; skip_next = true;
symsec = NULL; symsec = NULL;