Windows Visual C++ Express x64 static binaries

NightStrike nightstrike at gmail.com
Sun May 18 17:23:56 CEST 2008


On 5/18/08, Jan Wielemaker <wielemak at science.uva.nl> wrote:
> On Sunday 18 May 2008 17:12:39 NightStrike wrote:
> > On 5/18/08, Jan Wielemaker <wielemak at science.uva.nl> wrote:
> > > On Sunday 18 May 2008 11:46:57 Andreas Fabri wrote:
> > > > Torbjorn Granlund wrote:
> > > >  > [snip]
> > > > >
> > > > > A GMP port to 64-bit MS Windoze should target command oriented
> > > > > interfaces such as mingw or cygwin, and work within the
> > > > > configure/make system already in place.  Separate solutions
> > > > > ("project" files) are not acceptable since they target non-free
> > > > > compilers and require separate maintenance.
> > > >
> > > > Hello,
> > > >
> > > > Would a build system as cmake be an option for the GMP project?
> > >
> > > Just out of curiosity as developer of SWI-Prolog, which uses
> > > configure/make on all systems except for Windows for which I maintain a
> > > set of hand written NMAKE files calling M$ cl.exe and a hand written
> > > substitutes for config.h. Surely not an ideal situation, but there are
> > > not many alternatives if you want to support Windows. Cygwin is too slow
> > > and crippled for anything but hinting people they really do not want
> > > Unix. I started considering mingw/msys, but 64-bit requirement came
> > > first and thus I now need to wait for a proper 64-bit mingw.
> >
> > http://mingw-w64.sf.net/
>
> The last report I had some 3-4 months ago from someone actually trying
> it wasn't very promising. The project site suggest there might be enough
> progress to try again. Great!
>
>        Cheers --- Jan
>
>

I'm an admin over there.  If you have any issues whatsoever, we will
find and fix them immediately.  For best results, you can file a
support request in the support request tracker.  You can also join us
on irc at irc.oftc.net/#mingw-w64.

The takeaway from this whole discussion is that GMP does what most
projects do -- it assumes that the type long = pointer size.  That is
an invalid assumption that just happens to be correct on certain
platforms, but is by no means based on any language standard.  If yo
usearch the archives for Wesley MLTon gmp or something similar, you
will find the patch he made to convert all of those longs to something
more suitable.  Otherwise, on the Win64 platform, every cast from a
pointer to an integer chops off the high 32 bits.  This is not good
for GMP users.

A better solution would be to use something like intptr_t, which
should be defined correctly to an integer big enough to hold a pointer
on ANY platform.  This is what GMP needs to do, and is IMO a big bug.
You're probably better off patching it and building it yourself, I
think.


More information about the gmp-discuss mailing list