aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKouhei Sutou <kou@cozmixng.org>2014-10-15 21:15:01 +0900
committerKouhei Sutou <kou@cozmixng.org>2014-10-15 21:15:01 +0900
commitb3f9a94e6ade9f91995505398becb6d36e5d3ac0 (patch)
tree3eecf3dc107febbeb50e191599b5eca8a6e4f0d5
parent726c5726fb0a58b9eb567d0a7f3e9b56339959e9 (diff)
downloadnginx-b3f9a94e6ade9f91995505398becb6d36e5d3ac0.tar.gz
nginx-b3f9a94e6ade9f91995505398becb6d36e5d3ac0.zip
Win32: made build-able with MinGW-w64 gcc.
-rw-r--r--src/os/win32/ngx_win32_config.h37
1 files changed, 35 insertions, 2 deletions
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
index fcbb30845..711ad7df2 100644
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -37,14 +37,24 @@
#include <shellapi.h>
#include <stddef.h> /* offsetof() */
-#ifdef __GNUC__
+#ifdef __MINGW64_VERSION_MAJOR
+
+/* GCC MinGW-w64 supports _FILE_OFFSET_BITS */
+#define _FILE_OFFSET_BITS 64
+
+#elif defined __GNUC__
+
/* GCC MinGW's stdio.h includes sys/types.h */
#define _OFF_T_
+
#endif
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
+#ifdef __MINGW64_VERSION_MAJOR
+#include <stdint.h>
+#endif
#include <ctype.h>
#include <locale.h>
@@ -136,16 +146,21 @@ typedef unsigned short int uint16_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
-#ifndef __WATCOMC__
+#if !defined(__WATCOMC__) && !defined(__MINGW64_VERSION_MAJOR)
typedef int intptr_t;
typedef u_int uintptr_t;
#endif
+#ifndef __MINGW64_VERSION_MAJOR
+
/* Windows defines off_t as long, which is 32-bit */
typedef __int64 off_t;
#define _OFF_T_DEFINED
+#endif
+
+
#ifdef __WATCOMC__
/* off_t is redefined by sys/types.h used by zlib.h */
@@ -164,17 +179,35 @@ typedef unsigned int ino_t;
#endif
+#ifndef __MINGW64_VERSION_MAJOR
typedef int ssize_t;
+#endif
+
+
typedef uint32_t in_addr_t;
typedef u_short in_port_t;
typedef int sig_atomic_t;
+#ifdef _WIN64
+
+#define NGX_PTR_SIZE 8
+#define NGX_SIZE_T_LEN (sizeof("-9223372036854775808") - 1)
+#define NGX_MAX_SIZE_T_VALUE 9223372036854775807
+#define NGX_TIME_T_LEN (sizeof("-9223372036854775808") - 1)
+#define NGX_TIME_T_SIZE 8
+
+#else
+
#define NGX_PTR_SIZE 4
#define NGX_SIZE_T_LEN (sizeof("-2147483648") - 1)
#define NGX_MAX_SIZE_T_VALUE 2147483647
#define NGX_TIME_T_LEN (sizeof("-2147483648") - 1)
#define NGX_TIME_T_SIZE 4
+
+#endif
+
+
#define NGX_OFF_T_LEN (sizeof("-9223372036854775807") - 1)
#define NGX_MAX_OFF_T_VALUE 9223372036854775807
#define NGX_SIG_ATOMIC_T_SIZE 4