diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2013-09-24 23:31:58 -0700 |
---|---|---|
committer | Jonathan Nieder <jrnieder@gmail.com> | 2013-09-24 23:31:58 -0700 |
commit | d0c789084ca7796562b19a190f9df31038aaa6df (patch) | |
tree | 1bb4b55b7df8d520b7cfa30dcd07cadc009547f6 /compat/mingw.h | |
parent | 87bcf148d7a2dd585bbb6ed18dae83a42b45a67a (diff) | |
parent | 8453c1259a3b6fe89d67b6e783cc535b60f298c1 (diff) | |
download | git-d0c789084ca7796562b19a190f9df31038aaa6df.tar.gz |
Merge branch 'kb/msvc-compile'
* kb/msvc-compile:
Windows: do not redefine _WIN32_WINNT
MinGW: Fix stat definitions to work with MinGW runtime version 4.0
MSVC: fix stat definition hell
MSVC: fix compile errors due to macro redefinitions
MSVC: fix compile errors due to missing libintl.h
Diffstat (limited to 'compat/mingw.h')
-rw-r--r-- | compat/mingw.h | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/compat/mingw.h b/compat/mingw.h index 9eb3b17ff0..92cd728d3d 100644 --- a/compat/mingw.h +++ b/compat/mingw.h @@ -32,7 +32,9 @@ typedef int socklen_t; #define WEXITSTATUS(x) ((x) & 0xff) #define WTERMSIG(x) SIGTERM +#ifndef EWOULDBLOCK #define EWOULDBLOCK EAGAIN +#endif #define SHUT_WR SD_SEND #define SIGHUP 1 @@ -46,8 +48,12 @@ typedef int socklen_t; #define F_SETFD 2 #define FD_CLOEXEC 0x1 +#ifndef EAFNOSUPPORT #define EAFNOSUPPORT WSAEAFNOSUPPORT +#endif +#ifndef ECONNABORTED #define ECONNABORTED WSAECONNABORTED +#endif struct passwd { char *pw_name; @@ -258,19 +264,35 @@ static inline int getrlimit(int resource, struct rlimit *rlp) return 0; } -/* Use mingw_lstat() instead of lstat()/stat() and - * mingw_fstat() instead of fstat() on Windows. +/* + * Use mingw specific stat()/lstat()/fstat() implementations on Windows. */ #define off_t off64_t #define lseek _lseeki64 -#ifndef ALREADY_DECLARED_STAT_FUNCS + +/* use struct stat with 64 bit st_size */ +#ifdef stat +#undef stat +#endif #define stat _stati64 int mingw_lstat(const char *file_name, struct stat *buf); int mingw_stat(const char *file_name, struct stat *buf); int mingw_fstat(int fd, struct stat *buf); +#ifdef fstat +#undef fstat +#endif #define fstat mingw_fstat +#ifdef lstat +#undef lstat +#endif #define lstat mingw_lstat -#define _stati64(x,y) mingw_stat(x,y) + +#ifndef _stati64 +# define _stati64(x,y) mingw_stat(x,y) +#elif defined (_USE_32BIT_TIME_T) +# define _stat32i64(x,y) mingw_stat(x,y) +#else +# define _stat64(x,y) mingw_stat(x,y) #endif int mingw_utime(const char *file_name, const struct utimbuf *times); |