guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unable to compile Guile


From: Eli Zaretskii
Subject: Re: Unable to compile Guile
Date: Mon, 10 Nov 2014 12:44:55 +0200

> Date: Sun, 9 Nov 2014 23:30:07 -0500
> From: jeremy chen <address@hidden>
> 
> Hi, I am trying to compile guile on windows with Mingw-w64.
> The file libguile/numbers.c signal an error in this function:
> 
> static SCM
> scm_i_inum2big (scm_t_inum x)
> {
> /* Return a newly created bignum initialized to X. */
> SCM z = make_bignum ();
> #if SIZEOF_VOID_P == SIZEOF_LONG
> mpz_init_set_si (SCM_I_BIG_MPZ (z), x);
> #else
> /* Note that in this case, you'll also have to check all mpz_*_ui and
> mpz_*_si invocations in Guile. */
> #error creation of mpz not implemented for this inum size
> #endif
> return z;
> }
> 
> sizeof(void*) is 8 and sizeof(long) is 4 on my machine.
> Anyway to get around this? Thanks.

This is a bug in Guile: it assumes the LP64 data model, where both
'long' and a pointer are 64-bit wide.  But 64-bit Windows uses the
LLP64 model, where 'long' is a 32-bit data type, and the 64-bit
integer data type is 'long long' or '__int64'.

You need to fix Guile to support the LLP64 model, at least in this
module, and probably elsewhere as well.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]