aboutsummaryrefslogtreecommitdiff
path: root/bfd/coffswap.h
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>1999-05-11 21:05:44 +0000
committerDJ Delorie <dj@redhat.com>1999-05-11 21:05:44 +0000
commitec0ef80e9f48ae59958cfe0ff8a998881833ca12 (patch)
tree49e5eabeda00d3d94f7b8658e6154502d69a066f /bfd/coffswap.h
parent69f868fa5d9e1847c9d73b92da32eec8d8821650 (diff)
downloadgdb-ec0ef80e9f48ae59958cfe0ff8a998881833ca12.zip
gdb-ec0ef80e9f48ae59958cfe0ff8a998881833ca12.tar.gz
gdb-ec0ef80e9f48ae59958cfe0ff8a998881833ca12.tar.bz2
* 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 ae30a5d..9bc180f 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;