From 3baf6b531990dda109b9af065c94cf9eb9c0aac6 Mon Sep 17 00:00:00 2001 From: stijn Date: Fri, 20 Nov 2015 15:59:06 +0100 Subject: windows/py: Support 64bit mingw-w64 builds - add mp_int_t/mp_uint_t typedefs in mpconfigport.h - fix integer suffixes/formatting in mpconfig.h and mpz.h - use MICROPY_NLR_SETJMP=1 in Makefile since the current nlrx64.S implementation causes segfaults in gc_free() - update README --- py/mpconfig.h | 6 +++++- py/mpz.h | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'py') diff --git a/py/mpconfig.h b/py/mpconfig.h index d3a57dda4a..1453560e08 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -849,10 +849,14 @@ typedef double mp_float_t; // printf format spec to use for mp_int_t and friends #ifndef INT_FMT -#ifdef __LP64__ +#if defined(__LP64__) // Archs where mp_int_t == long, long != int #define UINT_FMT "%lu" #define INT_FMT "%ld" +#elif defined(_WIN64) +#include +#define UINT_FMT "%"PRIu64 +#define INT_FMT "%"PRId64 #else // Archs where mp_int_t == int #define UINT_FMT "%u" diff --git a/py/mpz.h b/py/mpz.h index b2dd88acf9..63ac772ffd 100644 --- a/py/mpz.h +++ b/py/mpz.h @@ -73,7 +73,11 @@ typedef int8_t mpz_dbl_dig_signed_t; #endif #ifdef _WIN64 - #define MPZ_LONG_1 1i64 + #ifdef __MINGW32__ + #define MPZ_LONG_1 1LL + #else + #define MPZ_LONG_1 1i64 + #endif #else #define MPZ_LONG_1 1L #endif -- cgit v1.2.3