summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--mpy-cross/Makefile4
-rw-r--r--mpy-cross/mpconfigport.h6
2 files changed, 9 insertions, 1 deletions
diff --git a/mpy-cross/Makefile b/mpy-cross/Makefile
index ecf26ee317..3f99566209 100644
--- a/mpy-cross/Makefile
+++ b/mpy-cross/Makefile
@@ -50,7 +50,9 @@ SRC_C = \
gccollect.c \
ifeq ($(OS),Windows_NT)
-SRC_C += windows/fmode.c
+ ifeq (,$(findstring MSYS,$(UNAME_S)))
+ SRC_C += windows/fmode.c
+ endif
endif
OBJ = $(PY_O)
diff --git a/mpy-cross/mpconfigport.h b/mpy-cross/mpconfigport.h
index 031c350116..b3f7d9c3cd 100644
--- a/mpy-cross/mpconfigport.h
+++ b/mpy-cross/mpconfigport.h
@@ -87,6 +87,10 @@
#ifdef __LP64__
typedef long mp_int_t; // must be pointer size
typedef unsigned long mp_uint_t; // must be pointer size
+#elif defined ( __MINGW32__ ) && defined( _WIN64 )
+#include <stdint.h>
+typedef __int64 mp_int_t;
+typedef unsigned __int64 mp_uint_t;
#else
// These are definitions for machines where sizeof(int) == sizeof(void*),
// regardless for actual size.
@@ -115,6 +119,8 @@ typedef const void *machine_const_ptr_t; // must be of pointer size
// We need to provide a declaration/definition of alloca()
#ifdef __FreeBSD__
#include <stdlib.h>
+#elif defined( _WIN32 )
+#include <malloc.h>
#else
#include <alloca.h>
#endif