diff options
author | Jan Beulich <jbeulich@novell.com> | 2015-12-15 14:31:25 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2015-12-15 14:31:25 +0100 |
commit | 270f824531ceef276616a5d2f3027fa9f537c10b (patch) | |
tree | 3f20d74a1748d2da2516da51fa9afc63430f35e0 /bfd/libcoff.h | |
parent | 1d19cae752a7b032b8253feb4fa3b9f1dc162823 (diff) | |
download | gdb-270f824531ceef276616a5d2f3027fa9f537c10b.zip gdb-270f824531ceef276616a5d2f3027fa9f537c10b.tar.gz gdb-270f824531ceef276616a5d2f3027fa9f537c10b.tar.bz2 |
bfd: don't produce corrupt COFF symbol table due to long ELF file name symbols
The re-writing logic in _bfd_coff_final_link() overwrote the ".file"
part of the symbol table entry, due to not coping with the auxiliary
entry generated in all cases.
Note that while I would have wanted to add a test case,
(a) I didn't spot any one testing the base functionality here, and
(b) I wasn't able to figure out proper conditionals to use in e.g.
ld-elf/elf.exp to check for the necessary PE/PE+ support (which
varies by target).
Diffstat (limited to 'bfd/libcoff.h')
-rw-r--r-- | bfd/libcoff.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/libcoff.h b/bfd/libcoff.h index 124e603..178559f 100644 --- a/bfd/libcoff.h +++ b/bfd/libcoff.h @@ -316,8 +316,8 @@ extern void coff_mangle_symbols extern bfd_boolean coff_write_symbols (bfd *); extern bfd_boolean coff_write_alien_symbol - (bfd *, asymbol *, struct internal_syment *, bfd_vma *, - bfd_size_type *, asection **, bfd_size_type *); + (bfd *, asymbol *, struct internal_syment *, union internal_auxent *, + bfd_vma *, bfd_size_type *, asection **, bfd_size_type *); extern bfd_boolean coff_write_linenumbers (bfd *); extern alent *coff_get_lineno |