diff options
author | DJ Delorie <dj@redhat.com> | 1999-05-11 21:05:44 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 1999-05-11 21:05:44 +0000 |
commit | ec0ef80e9f48ae59958cfe0ff8a998881833ca12 (patch) | |
tree | 49e5eabeda00d3d94f7b8658e6154502d69a066f /bfd/coffswap.h | |
parent | 69f868fa5d9e1847c9d73b92da32eec8d8821650 (diff) | |
download | gdb-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.h | 11 |
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; |