This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]