* bug#22406: Cannot compile for Windows x64 due to LLP64 model
@ 2016-01-19 13:50 Peter TB Brett
2016-01-26 16:02 ` Mark H Weaver
2016-06-20 20:01 ` Mark H Weaver
0 siblings, 2 replies; 4+ messages in thread
From: Peter TB Brett @ 2016-01-19 13:50 UTC (permalink / raw)
To: 22406
It is not currently possible to compile Guile 2.0.11 for Windows x64 (in
particular 64-bit Windows running on the x86-64 arch).
Most operating systems' C libraries for x86-64 use an "LP64" model,
where sizeof(long int) == sizeof(void *) == 8.
However, for backwards-compatibility reasons, Windows uses an "LLP64"
model, where sizeof(long long int) == sizeof(void *) == 8 and
sizeof(long int) == 4.
Guile 2.0.11 can't cope with this; the libguile build fails due to this
code:
> 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;
> }
http://git.savannah.gnu.org/cgit/guile.git/tree/libguile/numbers.c?id=v2.0.11#n272
Some work appears to be required before using 64-bit Guile on Windows
x64 is possible.
--
Dr Peter Brett <peter@peter-b.co.uk>
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#22406: Cannot compile for Windows x64 due to LLP64 model
2016-01-19 13:50 bug#22406: Cannot compile for Windows x64 due to LLP64 model Peter TB Brett
@ 2016-01-26 16:02 ` Mark H Weaver
2016-01-26 17:38 ` Mark H Weaver
2016-06-20 20:01 ` Mark H Weaver
1 sibling, 1 reply; 4+ messages in thread
From: Mark H Weaver @ 2016-01-26 16:02 UTC (permalink / raw)
To: Peter TB Brett; +Cc: 22406
[-- Attachment #1: Type: text/plain, Size: 953 bytes --]
Hi Peter,
Peter TB Brett <peter@peter-b.co.uk> writes:
> It is not currently possible to compile Guile 2.0.11 for Windows x64
> (in particular 64-bit Windows running on the x86-64 arch).
>
> Most operating systems' C libraries for x86-64 use an "LP64" model,
> where sizeof(long int) == sizeof(void *) == 8.
>
> However, for backwards-compatibility reasons, Windows uses an "LLP64"
> model, where sizeof(long long int) == sizeof(void *) == 8 and
> sizeof(long int) == 4.
>
> Guile 2.0.11 can't cope with this; the libguile build fails due to
> this code:
I've attached a patch that attempts to address this issue by using
'long' as the scm_t_inum type. So, fixnums will be limited to 30 bits
on LLP64 systems. We can't easily avoid this while using GMP's mpz API,
since the mpz_*_si functions except longs and there are no analogous
functions that accept larger C integer types.
Can you test this patch and report back?
Thanks,
Mark
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: PRELIMINARY fixes for LLP64 v1 --]
[-- Type: text/x-patch, Size: 5369 bytes --]
From 4a923816c9814b07556fdcc53b74b3e1ca2a0f41 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Tue, 26 Jan 2016 03:42:18 -0500
Subject: [PATCH] PRELIMINARY fixes for LLP64.
---
libguile/numbers.c | 19 ++++++++++---------
libguile/numbers.h | 29 ++++++++++++++---------------
libguile/vm-i-scheme.c | 2 +-
3 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 1e3fc30..7d32c20 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2016 Free Software Foundation, Inc.
*
* Portions Copyright 1990, 1991, 1992, 1993 by AT&T Bell Laboratories
* and Bellcore. See scm_divide.
@@ -87,7 +87,14 @@
/* FIXME: We assume that FLT_RADIX is 2 */
verify (FLT_RADIX == 2);
-typedef scm_t_signed_bits scm_t_inum;
+/* We assume that a long fits within a SCM value. */
+verify (SCM_SIZEOF_LONG <= SIZEOF_SCM_T_BITS);
+
+/* We use 'long' as the type for Inums, because that's the type accepted
+ by GMP's mpz_*_si functions. Above, we checked that a long fits
+ within an SCM. */
+typedef long scm_t_inum;
+
#define scm_from_inum(x) (scm_from_signed_integer (x))
/* Test an inum to see if it can be converted to a double without loss
@@ -272,13 +279,7 @@ 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;
}
@@ -4966,7 +4967,7 @@ left_shift_exact_integer (SCM n, long count)
if (nn == 0)
return n;
else if (count < SCM_I_FIXNUM_BIT-1 &&
- ((scm_t_bits) (SCM_SRS (nn, (SCM_I_FIXNUM_BIT-1 - count)) + 1)
+ ((unsigned long) (SCM_SRS (nn, (SCM_I_FIXNUM_BIT-1 - count)) + 1)
<= 1))
return SCM_I_MAKINUM (nn < 0 ? -(-nn << count) : (nn << count));
else
diff --git a/libguile/numbers.h b/libguile/numbers.h
index b929b7a..d5e4f2b 100644
--- a/libguile/numbers.h
+++ b/libguile/numbers.h
@@ -3,8 +3,8 @@
#ifndef SCM_NUMBERS_H
#define SCM_NUMBERS_H
-/* Copyright (C) 1995,1996,1998,2000,2001,2002,2003,2004,2005, 2006,
- * 2008, 2009, 2010, 2011, 2013, 2014 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1998, 2000-2006, 2008-2011, 2013, 2014,
+ * 2016 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@ -38,16 +38,15 @@ typedef scm_t_int32 scm_t_wchar;
/* Immediate Numbers, also known as fixnums
*
- * Inums are exact integer data that fits within an SCM word. */
-
-/* SCM_T_SIGNED_MAX is (- (expt 2 n) 1),
- * SCM_MOST_POSITIVE_FIXNUM should be (- (expt 2 (- n 2)) 1)
- * which is the same as (/ (- (expt 2 n) 4) 4)
- */
-
+ * Inums are exact integers that fit within an SCM word
+ * (along with two tagging bits).
+ *
+ * In the current implementation, Inums must also fit within a long
+ * because that's what GMP's mpz_*_si functions accept. We assume that
+ * a long fits in a SCM value (this is checked in numbers.c). */
#define SCM_I_FIXNUM_BIT (SCM_LONG_BIT - 2)
-#define SCM_MOST_POSITIVE_FIXNUM ((SCM_T_SIGNED_BITS_MAX-3)/4)
-#define SCM_MOST_NEGATIVE_FIXNUM (-SCM_MOST_POSITIVE_FIXNUM-1)
+#define SCM_MOST_NEGATIVE_FIXNUM (-1L << (SCM_I_FIXNUM_BIT - 1))
+#define SCM_MOST_POSITIVE_FIXNUM (- (SCM_MOST_NEGATIVE_FIXNUM + 1))
/* SCM_SRS (X, Y) is signed right shift, defined as floor (X / 2^Y),
where Y must be non-negative and less than the width in bits of X.
@@ -60,7 +59,7 @@ typedef scm_t_int32 scm_t_wchar;
#else
# define SCM_SRS(x, y) \
((x) < 0 \
- ? -1 - (scm_t_signed_bits) (~(scm_t_bits)(x) >> (y)) \
+ ? -1 - (long) (~(unsigned long)(x) >> (y)) \
: ((x) >> (y)))
#endif
@@ -74,12 +73,12 @@ typedef scm_t_int32 scm_t_wchar;
NOTE: X must not perform side effects. */
#ifdef __GNUC__
-# define SCM_I_INUM(x) (SCM_SRS ((scm_t_signed_bits) SCM_UNPACK (x), 2))
+# define SCM_I_INUM(x) (SCM_SRS ((long) SCM_UNPACK (x), 2))
#else
# define SCM_I_INUM(x) \
(SCM_UNPACK (x) > LONG_MAX \
- ? -1 - (scm_t_signed_bits) (~SCM_UNPACK (x) >> 2) \
- : (scm_t_signed_bits) (SCM_UNPACK (x) >> 2))
+ ? -1 - (long) (~SCM_UNPACK (x) >> 2) \
+ : (long) (SCM_UNPACK (x) >> 2))
#endif
#define SCM_I_INUMP(x) (2 & SCM_UNPACK (x))
diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c
index 162efab..249b835 100644
--- a/libguile/vm-i-scheme.c
+++ b/libguile/vm-i-scheme.c
@@ -360,7 +360,7 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
# define ASM_MUL(x, y) \
if (SCM_LIKELY (SCM_I_INUMP (x) && SCM_I_INUMP (y))) \
{ \
- scm_t_signed_bits rlo, rhi; \
+ long rlo, rhi; \
asm ("smull %0, %1, %2, %3\n" \
: "=&r" (rlo), "=&r" (rhi) \
: "r" (SCM_UNPACK (x) - scm_tc2_int), \
--
2.6.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#22406: Cannot compile for Windows x64 due to LLP64 model
2016-01-26 16:02 ` Mark H Weaver
@ 2016-01-26 17:38 ` Mark H Weaver
0 siblings, 0 replies; 4+ messages in thread
From: Mark H Weaver @ 2016-01-26 17:38 UTC (permalink / raw)
To: Peter TB Brett; +Cc: 22406
[-- Attachment #1: Type: text/plain, Size: 1106 bytes --]
Mark H Weaver <mhw@netris.org> writes:
> Peter TB Brett <peter@peter-b.co.uk> writes:
>
>> It is not currently possible to compile Guile 2.0.11 for Windows x64
>> (in particular 64-bit Windows running on the x86-64 arch).
>>
>> Most operating systems' C libraries for x86-64 use an "LP64" model,
>> where sizeof(long int) == sizeof(void *) == 8.
>>
>> However, for backwards-compatibility reasons, Windows uses an "LLP64"
>> model, where sizeof(long long int) == sizeof(void *) == 8 and
>> sizeof(long int) == 4.
>>
>> Guile 2.0.11 can't cope with this; the libguile build fails due to
>> this code:
>
> I've attached a patch that attempts to address this issue by using
> 'long' as the scm_t_inum type. So, fixnums will be limited to 30 bits
> on LLP64 systems. We can't easily avoid this while using GMP's mpz API,
> since the mpz_*_si functions except longs and there are no analogous
> functions that accept larger C integer types.
>
> Can you test this patch and report back?
Disregard my first patch, as it missed a few important changes.
Please try this one instead.
Thanks,
Mark
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: PRELIMINARY fixes for LLP64 v2 --]
[-- Type: text/x-patch, Size: 8844 bytes --]
From 333ec4fd35c5625cd090e216a77842a5e1ca9941 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@netris.org>
Date: Tue, 26 Jan 2016 03:42:18 -0500
Subject: [PATCH] PRELIMINARY fixes for LLP64.
---
libguile/numbers.c | 12 ++++--------
libguile/numbers.h | 37 ++++++++++++++++++-------------------
libguile/vm-i-scheme.c | 28 ++++++++++++++--------------
3 files changed, 36 insertions(+), 41 deletions(-)
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 1e3fc30..205548d 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2016 Free Software Foundation, Inc.
*
* Portions Copyright 1990, 1991, 1992, 1993 by AT&T Bell Laboratories
* and Bellcore. See scm_divide.
@@ -87,7 +87,9 @@
/* FIXME: We assume that FLT_RADIX is 2 */
verify (FLT_RADIX == 2);
-typedef scm_t_signed_bits scm_t_inum;
+/* Make sure that scm_t_inum fits within a SCM value. */
+verify (sizeof (scm_t_inum) <= sizeof (scm_t_bits));
+
#define scm_from_inum(x) (scm_from_signed_integer (x))
/* Test an inum to see if it can be converted to a double without loss
@@ -272,13 +274,7 @@ 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;
}
diff --git a/libguile/numbers.h b/libguile/numbers.h
index b929b7a..9f7dd3c 100644
--- a/libguile/numbers.h
+++ b/libguile/numbers.h
@@ -3,8 +3,8 @@
#ifndef SCM_NUMBERS_H
#define SCM_NUMBERS_H
-/* Copyright (C) 1995,1996,1998,2000,2001,2002,2003,2004,2005, 2006,
- * 2008, 2009, 2010, 2011, 2013, 2014 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1998, 2000-2006, 2008-2011, 2013, 2014,
+ * 2016 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@ -38,16 +38,15 @@ typedef scm_t_int32 scm_t_wchar;
/* Immediate Numbers, also known as fixnums
*
- * Inums are exact integer data that fits within an SCM word. */
-
-/* SCM_T_SIGNED_MAX is (- (expt 2 n) 1),
- * SCM_MOST_POSITIVE_FIXNUM should be (- (expt 2 (- n 2)) 1)
- * which is the same as (/ (- (expt 2 n) 4) 4)
- */
-
+ * Inums are exact integers that fit within an SCM word
+ * (along with two tagging bits).
+ *
+ * In the current implementation, Inums must also fit within a long
+ * because that's what GMP's mpz_*_si functions accept. */
+typedef long scm_t_inum;
#define SCM_I_FIXNUM_BIT (SCM_LONG_BIT - 2)
-#define SCM_MOST_POSITIVE_FIXNUM ((SCM_T_SIGNED_BITS_MAX-3)/4)
-#define SCM_MOST_NEGATIVE_FIXNUM (-SCM_MOST_POSITIVE_FIXNUM-1)
+#define SCM_MOST_NEGATIVE_FIXNUM (-1L << (SCM_I_FIXNUM_BIT - 1))
+#define SCM_MOST_POSITIVE_FIXNUM (- (SCM_MOST_NEGATIVE_FIXNUM + 1))
/* SCM_SRS (X, Y) is signed right shift, defined as floor (X / 2^Y),
where Y must be non-negative and less than the width in bits of X.
@@ -58,9 +57,9 @@ typedef scm_t_int32 scm_t_wchar;
#if (-1 >> 2 == -1) && (-4 >> 2 == -1) && (-5 >> 2 == -2) && (-8 >> 2 == -2)
# define SCM_SRS(x, y) ((x) >> (y))
#else
-# define SCM_SRS(x, y) \
- ((x) < 0 \
- ? -1 - (scm_t_signed_bits) (~(scm_t_bits)(x) >> (y)) \
+# define SCM_SRS(x, y) \
+ ((x) < 0 \
+ ? -1 - (long) (~(unsigned long)(x) >> (y)) \
: ((x) >> (y)))
#endif
@@ -74,12 +73,12 @@ typedef scm_t_int32 scm_t_wchar;
NOTE: X must not perform side effects. */
#ifdef __GNUC__
-# define SCM_I_INUM(x) (SCM_SRS ((scm_t_signed_bits) SCM_UNPACK (x), 2))
+# define SCM_I_INUM(x) (SCM_SRS ((scm_t_inum) SCM_UNPACK (x), 2))
#else
-# define SCM_I_INUM(x) \
- (SCM_UNPACK (x) > LONG_MAX \
- ? -1 - (scm_t_signed_bits) (~SCM_UNPACK (x) >> 2) \
- : (scm_t_signed_bits) (SCM_UNPACK (x) >> 2))
+# define SCM_I_INUM(x) \
+ (SCM_UNPACK (x) > SCM_T_SIGNED_BITS_MAX \
+ ? -1 - (scm_t_inum) (~SCM_UNPACK (x) >> 2) \
+ : (scm_t_inum) (SCM_UNPACK (x) >> 2))
#endif
#define SCM_I_INUMP(x) (2 & SCM_UNPACK (x))
diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c
index 162efab..452a459 100644
--- a/libguile/vm-i-scheme.c
+++ b/libguile/vm-i-scheme.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2009-2014 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2009-2014, 2016 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@ -236,9 +236,9 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
#if SCM_GNUC_PREREQ (4, 5) && (defined __x86_64__ || defined __i386__)
# undef _CX
-# if SIZEOF_VOID_P == 8
+# if SCM_I_FIXNUM_BIT == 62
# define _CX "rcx"
-# elif SIZEOF_VOID_P == 4
+# elif SCM_I_FIXNUM_BIT == 30
# define _CX "ecx"
# else
# error unsupported word size
@@ -291,7 +291,7 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
# define ASM_MUL(x, y) \
{ \
- scm_t_signed_bits xx = SCM_I_INUM (x); \
+ scm_t_inum xx = SCM_I_INUM (x); \
asm volatile goto ("mov %1, %%"_CX"; " \
"test %[tag], %%cl; je %l[slow_mul]; " \
"sub %[tag], %%"_CX"; " \
@@ -360,7 +360,7 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
# define ASM_MUL(x, y) \
if (SCM_LIKELY (SCM_I_INUMP (x) && SCM_I_INUMP (y))) \
{ \
- scm_t_signed_bits rlo, rhi; \
+ scm_t_inum rlo, rhi; \
asm ("smull %0, %1, %2, %3\n" \
: "=&r" (rlo), "=&r" (rhi) \
: "r" (SCM_UNPACK (x) - scm_tc2_int), \
@@ -496,7 +496,7 @@ VM_DEFINE_FUNCTION (159, ash, "ash", 2)
else
/* Left shift. See comments in scm_ash. */
{
- scm_t_signed_bits nn, bits_to_shift;
+ scm_t_inum nn, bits_to_shift;
nn = SCM_I_INUM (x);
bits_to_shift = SCM_I_INUM (y);
@@ -552,7 +552,7 @@ VM_DEFINE_FUNCTION (162, logxor, "logxor", 2)
VM_DEFINE_FUNCTION (163, vector_ref, "vector-ref", 2)
{
- scm_t_signed_bits i = 0;
+ scm_t_inum i = 0;
ARGS2 (vect, idx);
if (SCM_LIKELY (SCM_I_IS_NONWEAK_VECTOR (vect)
&& SCM_I_INUMP (idx)
@@ -568,7 +568,7 @@ VM_DEFINE_FUNCTION (163, vector_ref, "vector-ref", 2)
VM_DEFINE_INSTRUCTION (164, vector_set, "vector-set", 0, 3, 0)
{
- scm_t_signed_bits i = 0;
+ scm_t_inum i = 0;
SCM vect, idx, val;
POP3 (val, idx, vect);
if (SCM_LIKELY (SCM_I_IS_NONWEAK_VECTOR (vect)
@@ -792,7 +792,7 @@ BV_REF_WITH_ENDIANNESS (f64, ieee_double)
#define BV_FIXABLE_INT_REF(stem, fn_stem, type, size) \
{ \
- scm_t_signed_bits i; \
+ scm_t_inum i; \
const scm_t_ ## type *int_ptr; \
ARGS2 (bv, idx); \
\
@@ -814,7 +814,7 @@ BV_REF_WITH_ENDIANNESS (f64, ieee_double)
#define BV_INT_REF(stem, type, size) \
{ \
- scm_t_signed_bits i; \
+ scm_t_inum i; \
const scm_t_ ## type *int_ptr; \
ARGS2 (bv, idx); \
\
@@ -845,7 +845,7 @@ BV_REF_WITH_ENDIANNESS (f64, ieee_double)
#define BV_FLOAT_REF(stem, fn_stem, type, size) \
{ \
- scm_t_signed_bits i; \
+ scm_t_inum i; \
const type *float_ptr; \
ARGS2 (bv, idx); \
\
@@ -933,7 +933,7 @@ BV_SET_WITH_ENDIANNESS (f64, ieee_double)
#define BV_FIXABLE_INT_SET(stem, fn_stem, type, min, max, size) \
{ \
- scm_t_signed_bits i, j = 0; \
+ scm_t_inum i, j = 0; \
SCM bv, idx, val; \
scm_t_ ## type *int_ptr; \
\
@@ -960,7 +960,7 @@ BV_SET_WITH_ENDIANNESS (f64, ieee_double)
#define BV_INT_SET(stem, type, size) \
{ \
- scm_t_signed_bits i = 0; \
+ scm_t_inum i = 0; \
SCM bv, idx, val; \
scm_t_ ## type *int_ptr; \
\
@@ -984,7 +984,7 @@ BV_SET_WITH_ENDIANNESS (f64, ieee_double)
#define BV_FLOAT_SET(stem, fn_stem, type, size) \
{ \
- scm_t_signed_bits i = 0; \
+ scm_t_inum i = 0; \
SCM bv, idx, val; \
type *float_ptr; \
\
--
2.6.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#22406: Cannot compile for Windows x64 due to LLP64 model
2016-01-19 13:50 bug#22406: Cannot compile for Windows x64 due to LLP64 model Peter TB Brett
2016-01-26 16:02 ` Mark H Weaver
@ 2016-06-20 20:01 ` Mark H Weaver
1 sibling, 0 replies; 4+ messages in thread
From: Mark H Weaver @ 2016-06-20 20:01 UTC (permalink / raw)
To: Peter TB Brett; +Cc: 22406
Peter TB Brett <peter@peter-b.co.uk> writes:
> It is not currently possible to compile Guile 2.0.11 for Windows x64
> (in particular 64-bit Windows running on the x86-64 arch).
>
> Most operating systems' C libraries for x86-64 use an "LP64" model,
> where sizeof(long int) == sizeof(void *) == 8.
>
> However, for backwards-compatibility reasons, Windows uses an "LLP64"
> model, where sizeof(long long int) == sizeof(void *) == 8 and
> sizeof(long int) == 4.
I pushed commit b0a702d7733e02cb68ea2331bd632e25a3127c75 to stable-2.0
which should, I hope, fix the specific issues raised in this bug report.
However, there are likely to be other places in guile where similar
assumptions are made. If you'd like to test current 'stable-2.0' on
LLP64, we can proceed.
Thanks!
Mark
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-06-20 20:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-19 13:50 bug#22406: Cannot compile for Windows x64 due to LLP64 model Peter TB Brett
2016-01-26 16:02 ` Mark H Weaver
2016-01-26 17:38 ` Mark H Weaver
2016-06-20 20:01 ` Mark H Weaver
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).