summaryrefslogtreecommitdiff
path: root/bfd/coffswap.h
diff options
context:
space:
mode:
authorDJ Delorie <dj@delorie.com>1999-05-11 21:05:44 +0000
committerDJ Delorie <dj@delorie.com>1999-05-11 21:05:44 +0000
commit72542c1f88daf3c249aebc927670a54ce9da43be (patch)
tree36227b779334e53909a4362e7fea1d5032ac56ff /bfd/coffswap.h
parentd8259fbb31508cb5cb1ccbd5a762ae8634c8bb5a (diff)
downloadbinutils-redhat-72542c1f88daf3c249aebc927670a54ce9da43be.tar.gz
* ecoff.c (_bfd_ecoff_write_armap): give the symtab element a
reasonable mode until "ar x" is smart enough to skip it (fixes gcc/libgcc.a builds on mips-ecoff targets * coffcode.h (styp_to_sec_flags): Explain how COMDATs are supposed to work. Hack to support MS import libraries, which use different COMDAT types than GNU. (coff_slurp_symbol_table): C_SECTION symbols are local; they refer to implied zero-length sections (see peicode below) * coffgen.c (coff_get_normalized_symtab): Properly read long MS filename symbols, which use one *or more* auxents. * coffswap.h (coff_swap_aux_in): ditto * peicode.h (coff_swap_sym_in): Build the implied zero-length sections
Diffstat (limited to 'bfd/coffswap.h')
-rw-r--r--bfd/coffswap.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/bfd/coffswap.h b/bfd/coffswap.h
index ae30a5d966..9bc180f4de 100644
--- a/bfd/coffswap.h
+++ b/bfd/coffswap.h
@@ -422,7 +422,16 @@ coff_swap_aux_in (abfd, ext1, type, class, indx, numaux, in1)
#if FILNMLEN != E_FILNMLEN
-> Error, we need to cope with truncating or extending FILNMLEN!;
#else
- memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
+ if (numaux > 1)
+ {
+ if (indx == 0)
+ memcpy (in->x_file.x_fname, ext->x_file.x_fname,
+ numaux * sizeof (AUXENT));
+ }
+ else
+ {
+ memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
+ }
#endif
}
goto end;