PE+ and new COFF format for x86_64 target for XP64 and Vista binaries
Kai Tietz
Kai.Tietz@onevision.com
Fri Sep 8 10:23:00 GMT 2006
Hi Pedro,
Thank you for your sugestions.
Yes you are right, that the major changes are the sizes for .idata$ for
the changed thumb sizes. The reason for the duplication of the code is
that otherwise pe and pe+ won't be linkable into one ld binary reasoned by
global method names and variables. It is more the question about
supporting both targets together or not.
The other solution would be to make out of pep_dll.c a stub file simply
defining the different global names and pack the implementation within
pe_dll.c. This solution leads to a macro desert code, but it would help.
Regards,
i.A. Kai Tietz
Pedro Alves <pedro_alves@portugalmail.pt>
Sent by: binutils-owner@sourceware.org
08.09.2006 11:50
To
Kai Tietz <Kai.Tietz@onevision.com>
cc
binutils@sourceware.org
Subject
Re: PE+ and new COFF format for x86_64 target for XP64 and Vista binaries
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
>
More information about the Binutils
mailing list