This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: PATCH: w64 native support
On Tue, Apr 10, 2007 at 12:35:08PM -0700, H. J. Lu wrote:
> On Tue, Apr 10, 2007 at 07:51:21PM +0200, Kai Tietz wrote:
> > "H. J. Lu" <hjl@lucon.org> wrote on 10.04.2007 19:18:28:
> >
> > > On Tue, Apr 10, 2007 at 07:00:14PM +0200, Kai Tietz wrote:
> > > > "H. J. Lu" <hjl@lucon.org> wrote on 10.04.2007 18:12:45:
> > > >
> > > > > Have you looked at
> > > > >
> > > > > http://sources.redhat.com/bugzilla/show_bug.cgi?id=2737
> > > > >
> > > > > Does windres work for x64?
> > > >
> > > >
> > > > I replaced in all structures of windres.h the type "unsigned long" by
> > > > "unsigned int" for test and patched the dependent files to use not
> > long
> > > > type-specifier in printf methods. It works that way, but I am not
> > certain,
> > > > if this would break an other target, where "int" isn't 4 bytes long ?
> > > ^^^^^
> > > It should be host, not target.
> > >
> > > It is better than what we have today. You can add
> > >
> > > assert (sizeof (int) == 4);
> > >
> > > somewhere.
> >
> > Ok, I on that.
> >
> > But I noticed, while bootstrap my patch on it on cygwin, that the
> > replacement of long to bfd_vma does not work as explected for 32-bit hosts
> > and using --enable-64-bit-bfd. Gcc claims, that pointer size and integer
> > size are not fitting.
> > I think, we have to introduce a type bfd_hostptr_t or something like that
> > to solve this problem ?
> >
>
> I don't think it is needed. --enable-64-bit-bfd works fine for
> Linux/x86. If --enable-64-bit-bfd doesn't work for cygwin, it
> should be fixed.
I think the main problem of the PE port may be there is no clear
line bewteen internal and external data structure so that it is very
hard to cross compile a PE target on a differnt endian or 64bit host.
H.J.