This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PATCH: w64 native support
On Wed, Apr 11, 2007 at 06:58:37AM -0700, H. J. Lu wrote:
> On Wed, Apr 11, 2007 at 03:42:31PM +0200, Kai Tietz wrote:
> > Hello,
> >
> > I did the windres.h patch changing the long to int types, so that problem
> > #2737 seems to be solved.
>
> No, it doesn't work on big endian host. You should array of char
> in external data structures.
>
> > Additionally I introduced in bfd-in.h the type "bfd_hostptr_t" and its
> > hexadeicmal printf representation in macro "BFD_HOSTPTR_T_PRT_X". For now,
> > AFAIS, only WIN64 has a long type lesser than a pointer, therefore I made
> > the define dependent on the definiton of _WIN64. The modification in
>
> I don't believe we need BFD_HOSTPTR_T_PRT_X. As I said before, the
> PE problem is there is no clear line between external and internal
> data structues. You should be able to use long long, even in big
> endian, internally to hold any PE data type. You just need to convert
> it to the proper size in proper endian when you write it out. You
> shouldn't have any problem when it is done peoperly.
We do need a new type when casting from pointer to integer. But
it should be determined in autoconf. You can use AC_CHECK_SIZEOF.
H.J.