diff options
| author | SiZiOUS <[email protected]> | 2020-08-29 13:58:00 +0200 |
|---|---|---|
| committer | SiZiOUS <[email protected]> | 2020-08-29 13:58:00 +0200 |
| commit | 510b9e7abc33843d3fae2a4d7cf0b1213bb352cc (patch) | |
| tree | 253b6ca1193517302fa94a98dab58df7339e6403 | |
| parent | 564372d7b920049d5bcd0c120a3689402915fb7b (diff) | |
| download | mruby-510b9e7abc33843d3fae2a4d7cf0b1213bb352cc.tar.gz mruby-510b9e7abc33843d3fae2a4d7cf0b1213bb352cc.zip | |
mruby-io: Fixing compilation issue under the legacy MinGW environment
Adding MRB_MINGW32_LEGACY in common.h in order to identify the legacy MinGW environment (i.e. NOT to be confused with MinGW-w64).
For more info about MinGW defined macros, see: https://sourceforge.net/p/predef/wiki/Compilers/
| -rw-r--r-- | include/mruby/common.h | 3 | ||||
| -rw-r--r-- | mrbgems/mruby-io/src/file.c | 2 | ||||
| -rw-r--r-- | mrbgems/mruby-io/src/io.c | 8 |
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 |
