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.
* ecoff.c: Include aout/stab_gnu.h.
(ecoff_find_nearest_line): Handle stabs debugging information.
struct aout_link_hash_entry **sym_hash;
int *symbol_map;
boolean pass;
- boolean skip_indirect;
+ boolean skip_next;
output_bfd = finfo->output_bfd;
sym_count = obj_aout_external_sym_count (input_bfd);
}
pass = false;
- skip_indirect = false;
+ skip_next = false;
sym = obj_aout_external_syms (input_bfd);
sym_end = sym + sym_count;
sym_hash = obj_aout_sym_hashes (input_bfd);
val = GET_WORD (input_bfd, sym->e_value);
pass = false;
}
- else if (skip_indirect)
+ else if (skip_next)
{
/* Skip this symbol, which is the target of an indirect
symbol that we have changed to no longer be an indirect
symbol. */
- skip_indirect = false;
+ skip_next = false;
continue;
}
else
&& h->root.type != bfd_link_hash_warning
&& h->written)
{
- if ((type & N_TYPE) == N_INDR)
- skip_indirect = true;
+ if ((type & N_TYPE) == N_INDR
+ || type == N_WARNING)
+ skip_next = true;
*symbol_map = h->indx;
continue;
}
a case we do not want to output the next symbol,
which is the target of the indirection. */
if ((type & N_TYPE) == N_INDR)
- skip_indirect = true;
+ skip_next = true;
symsec = NULL;