aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1995-10-09 15:40:38 +0000
committerIan Lance Taylor <ian@airs.com>1995-10-09 15:40:38 +0000
commit3f2c5b2d2fb7171734850b46358b9f0e7f2a7f31 (patch)
tree4963cee163106c2927a0a5223e81a489aa841041
parent0322af0d62ca8173c0c5c512acbf1ca070637a88 (diff)
downloadgdb-3f2c5b2d2fb7171734850b46358b9f0e7f2a7f31.zip
gdb-3f2c5b2d2fb7171734850b46358b9f0e7f2a7f31.tar.gz
gdb-3f2c5b2d2fb7171734850b46358b9f0e7f2a7f31.tar.bz2
* coffcode.h (coff_slurp_symbol_table): Set BSF_NOT_AT_END for an
XCOFF XTY_LD symbol.
-rw-r--r--bfd/ChangeLog3
-rw-r--r--bfd/coffcode.h15
2 files changed, 15 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1475ade..b6de77e 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,8 @@
Mon Oct 9 11:24:08 1995 Ian Lance Taylor <ian@cygnus.com>
+ * coffcode.h (coff_slurp_symbol_table): Set BSF_NOT_AT_END for an
+ XCOFF XTY_LD symbol.
+
* targets.c (bfd_target): Rename _bfd_read_ar_hdr field to
_bfd_read_ar_hdr_fn.
* libbfd-in.h (_bfd_read_ar_hdr): Update accordingly.
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 1f280f9..eabbc4c 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -2476,6 +2476,15 @@ coff_slurp_symbol_table (abfd)
/* A C_HIDEXT symbol is not global. */
if (src->u.syment.n_sclass == C_HIDEXT)
dst->symbol.flags = BSF_LOCAL;
+ /* A XTY_LD symbol should not go at the end. */
+ if (src->u.syment.n_numaux > 0)
+ {
+ combined_entry_type *auxp;
+
+ auxp = src + src->u.syment.n_numaux;
+ if (SMTYP_SMTYP (auxp->u.auxent.x_csect.x_smtyp) == XTY_LD)
+ dst->symbol.flags |= BSF_NOT_AT_END;
+ }
#endif
break;
@@ -2549,9 +2558,9 @@ coff_slurp_symbol_table (abfd)
dst->symbol.flags = BSF_DEBUGGING;
dst->symbol.value = src->u.syment.n_value;
- /* The value is actually a symbol index. Save a pointer to
- the symbol instead of the index. FIXME: This should use a
- union. */
+ /* The value is actually a symbol index. Save a pointer
+ to the symbol instead of the index. FIXME: This
+ should use a union. */
src->u.syment.n_value =
(long) (native_symbols + src->u.syment.n_value);
src->fix_value = 1;