summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/mruby/common.h3
-rw-r--r--mrbgems/mruby-io/src/file.c2
-rw-r--r--mrbgems/mruby-io/src/io.c8
3 files changed, 9 insertions, 4 deletions
diff --git a/include/mruby/common.h b/include/mruby/common.h
index f704ef8df..1f91c5607 100644
--- a/include/mruby/common.h
+++ b/include/mruby/common.h
@@ -82,6 +82,9 @@ MRB_BEGIN_DECL
# elif defined(__MINGW32_MAJOR_VERSION)
# define MRB_MINGW32_VERSION (__MINGW32_MAJOR_VERSION * 1000 + __MINGW32_MINOR_VERSION)
# endif
+# if defined(__MINGW32__) && !defined(__MINGW64__)
+# define MRB_MINGW32_LEGACY
+# endif
#endif
MRB_END_DECL
diff --git a/mrbgems/mruby-io/src/file.c b/mrbgems/mruby-io/src/file.c
index ffc66ae91..d3c4b3885 100644
--- a/mrbgems/mruby-io/src/file.c
+++ b/mrbgems/mruby-io/src/file.c
@@ -66,7 +66,7 @@
#define LOCK_UN 8
#endif
-#ifndef _WIN32
+#if !defined(_WIN32) || defined(MRB_MINGW32_LEGACY)
typedef struct stat mrb_stat;
# define mrb_stat(path, sb) stat(path, sb)
# define mrb_fstat(fd, sb) fstat(fd, sb)
diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c
index b3e192899..2c9cba84a 100644
--- a/mrbgems/mruby-io/src/io.c
+++ b/mrbgems/mruby-io/src/io.c
@@ -33,9 +33,11 @@
typedef long fsuseconds_t;
typedef int fmode_t;
typedef int mrb_io_read_write_size;
- #if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) && \
- !defined(__have_typedef_ssize_t)
- typedef SSIZE_T ssize_t;
+ #ifndef MRB_MINGW32_LEGACY
+ #if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) && \
+ !defined(__have_typedef_ssize_t)
+ typedef SSIZE_T ssize_t;
+ #endif
#endif
#ifndef O_TMPFILE