summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
authorstijn <stinos@zoho.com>2015-11-20 15:59:06 +0100
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-11-24 17:34:14 +0200
commit3baf6b531990dda109b9af065c94cf9eb9c0aac6 (patch)
tree8664323c408ece050b31ed751352c4402c97ba0a /py
parenta58fa27c2409c393bd7df5c58e63eec2730c4f68 (diff)
downloadmicropython-3baf6b531990dda109b9af065c94cf9eb9c0aac6.tar.gz
micropython-3baf6b531990dda109b9af065c94cf9eb9c0aac6.zip
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
Diffstat (limited to 'py')
-rw-r--r--py/mpconfig.h6
-rw-r--r--py/mpz.h6
2 files changed, 10 insertions, 2 deletions
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 <inttypes.h>
+#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