This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PE+ and new COFF format for x86_64 target for XP64 and Vista binaries
- From: Pedro Alves <pedro_alves at portugalmail dot pt>
- To: Kai Tietz <Kai dot Tietz at onevision dot com>
- Cc: binutils at sourceware dot org
- Date: Fri, 08 Sep 2006 10:50:03 +0100
- Subject: Re: PE+ and new COFF format for x86_64 target for XP64 and Vista binaries
- References: <OFAEEC3115.34B6CF48-ONC12571CD.003517FF-C12571CD.003527DE@onevision.de>
Hi Kai,
I'm no binutils maintainer, but I got a few sugestions.
Kai Tietz wrote:
Hallo,
This is a port of binutils-2.17 for COFF-format x86-64 (AMD64) and the PE+
for Windows XP64 and Vista EXE/DLL. The target is named x86_64-pc-mingw64.
To get this into binutils, you will need to forward port your changes
to the current version in CVS. The 2.17 branch should only take
important bug fixes.
I enabled windres and dlltool for this target. For the tool objdump the
processing and printing methods for DLL-imports are adjusted (they are now
8 bytes long :( )
I made a copy of the pe_dll(.c&.h) as pep_dll(.c&.h) to minimize
intersections.
Looking and diffing at the pep_dll.{c|h} and pep.em files, I notice that
the changes related to pe_dll.{c|h} and pe.em, excluding the pe_* to
pep_* renamings, could be minimized to just a few places.
We should avoid duplicating files this size. I haven't looked at the
other parts of the patch, but possibly, the same could apply.
May these files can be merged.
I would say, yes please.
Hope this helps,
Cheers,
Pedro Alves
In the "include/coff/external.h" I introduced the proper PE+ external
aouthdr structure without the data_start member. Because this non-existing
member breaks the
size of the PEPAOUT structure in include/coff/pe.h.
For the bfd/pexxigen.c template I used the pex64 name alias for
generation.
I added the following new files:
bfd/coff-x86_64.c
bfd/pe-x86_64.c
bfd/pei-x86_64.c
gas/config/te-pep.h
include/coff/x86_54.h
ld/pep_dll.c
ld/pep_dll.h
ld/emulparams/i386pep.sh
ld/emultempl/pep.em
ld/scripttempl/pep.sc
I tested the ld of this target by MSVC object-files and by (a patched) gcc
object-files (using this gas) linking against MS-Runtime-libraries.
i.A. Kai Tietz