aboutsummaryrefslogtreecommitdiff
path: root/bfd/coffcode.h
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 /bfd/coffcode.h
parent0322af0d62ca8173c0c5c512acbf1ca070637a88 (diff)
downloadfsf-binutils-gdb-3f2c5b2d2fb7171734850b46358b9f0e7f2a7f31.zip
fsf-binutils-gdb-3f2c5b2d2fb7171734850b46358b9f0e7f2a7f31.tar.gz
fsf-binutils-gdb-3f2c5b2d2fb7171734850b46358b9f0e7f2a7f31.tar.bz2
* coffcode.h (coff_slurp_symbol_table): Set BSF_NOT_AT_END for an
XCOFF XTY_LD symbol.
Diffstat (limited to 'bfd/coffcode.h')
-rw-r--r--bfd/coffcode.h15
1 files changed, 12 insertions, 3 deletions
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;