# HG changeset patch # User Kouhei Sutou # Date 1413375301 -32400 # Node ID 5d4e4619982fa24d8c03df8f968630d6395c6e9f # Parent 5a042519bfe7b25eda1c3fe513ff6b81dcdc98fe Win32: made build-able with MinGW-w64 gcc. diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h --- a/src/os/win32/ngx_win32_config.h +++ b/src/os/win32/ngx_win32_config.h @@ -37,14 +37,24 @@ #include #include /* 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 #include #include +#ifdef __MINGW64_VERSION_MAJOR +#include +#endif #include #include @@ -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