From 3f2c5b2d2fb7171734850b46358b9f0e7f2a7f31 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 9 Oct 1995 15:40:38 +0000 Subject: [PATCH] * coffcode.h (coff_slurp_symbol_table): Set BSF_NOT_AT_END for an XCOFF XTY_LD symbol. --- bfd/ChangeLog | 3 +++ bfd/coffcode.h | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1475adea56..b6de77e54d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,8 @@ Mon Oct 9 11:24:08 1995 Ian Lance Taylor + * 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 1f280f94fc..eabbc4c622 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;