aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1994-09-14 23:28:25 +0000
committerIan Lance Taylor <ian@airs.com>1994-09-14 23:28:25 +0000
commitab0434c26de3f2ebcc80fedd60e53bc97fafa912 (patch)
tree49a6ba317b7347e7a21118d242677b2cdbe6a571
parentf69ecb9c9abcd89d0a69e2bf309b01eb2eff7618 (diff)
downloadgdb-ab0434c26de3f2ebcc80fedd60e53bc97fafa912.zip
gdb-ab0434c26de3f2ebcc80fedd60e53bc97fafa912.tar.gz
gdb-ab0434c26de3f2ebcc80fedd60e53bc97fafa912.tar.bz2
* 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.
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/aoutx.h15
2 files changed, 12 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c6d2991..5e1137d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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)
+ * 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.
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index c800bb7..042472d 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -3609,7 +3609,7 @@ aout_link_write_symbols (finfo, input_bfd)
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);
@@ -3644,7 +3644,7 @@ aout_link_write_symbols (finfo, 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);
@@ -3673,12 +3673,12 @@ aout_link_write_symbols (finfo, 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
@@ -3713,8 +3713,9 @@ aout_link_write_symbols (finfo, input_bfd)
&& 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;
}
@@ -3785,7 +3786,7 @@ aout_link_write_symbols (finfo, input_bfd)
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;