Windows Visual C++ Express x64 static binaries

Jan Wielemaker wielemak at
Sun May 18 21:37:21 CEST 2008

On Sunday 18 May 2008 17:23:56 NightStrike wrote:
> On 5/18/08, Jan Wielemaker <wielemak at> wrote:
> > >
> >
> > 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

Sounds good. I doubt I have time to jump into this anytime soon, but I'm
very likely to move to mingw next time I reconsider the Windows build

> 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

Formally speaking this may be true. In all the years I've been
programming in C though, the assumption was that sizeof(long) >=
sizeof(void*). Win64 is the first and only platform I encountered that
broke this rule and it has costed me and many users a *lot* of time.

> 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.

Thanks for the advice; the shaky build of GMP on Win64 is still an open
issue for SWI-Prolog. I moved to (u)intptr_t. This is still a nightmare
as at least MVSV6 doesn't come with <inttypes.h> or <stdint.h> :-(

	Cheers --- Jan

More information about the gmp-discuss mailing list