diff options
author | Kouhei Sutou <kou@cozmixng.org> | 2014-10-15 21:15:01 +0900 |
---|---|---|
committer | Kouhei Sutou <kou@cozmixng.org> | 2014-10-15 21:15:01 +0900 |
commit | b3f9a94e6ade9f91995505398becb6d36e5d3ac0 (patch) | |
tree | 3eecf3dc107febbeb50e191599b5eca8a6e4f0d5 | |
parent | 726c5726fb0a58b9eb567d0a7f3e9b56339959e9 (diff) | |
download | nginx-b3f9a94e6ade9f91995505398becb6d36e5d3ac0.tar.gz nginx-b3f9a94e6ade9f91995505398becb6d36e5d3ac0.zip |
Win32: made build-able with MinGW-w64 gcc.
-rw-r--r-- | src/os/win32/ngx_win32_config.h | 37 |
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 |