зеркало из https://github.com/microsoft/git.git
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
This commit is contained in:
Коммит
d0c789084c
|
@ -491,7 +491,6 @@ int mingw_stat(const char *file_name, struct stat *buf)
|
|||
return do_stat_internal(1, file_name, buf);
|
||||
}
|
||||
|
||||
#undef fstat
|
||||
int mingw_fstat(int fd, struct stat *buf)
|
||||
{
|
||||
HANDLE fh = (HANDLE)_get_osfhandle(fd);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -24,21 +24,6 @@ static __inline int strcasecmp (const char *s1, const char *s2)
|
|||
|
||||
#undef ERROR
|
||||
|
||||
/* Use mingw_lstat() instead of lstat()/stat() and mingw_fstat() instead
|
||||
* of fstat(). We add the declaration of these functions here, suppressing
|
||||
* the corresponding declarations in mingw.h, so that we can use the
|
||||
* appropriate structure type (and function) names from the msvc headers.
|
||||
*/
|
||||
#define stat _stat64
|
||||
int mingw_lstat(const char *file_name, struct stat *buf);
|
||||
int mingw_fstat(int fd, struct stat *buf);
|
||||
#define fstat mingw_fstat
|
||||
#define lstat mingw_lstat
|
||||
#define _stat64(x,y) mingw_lstat(x,y)
|
||||
#define ALREADY_DECLARED_STAT_FUNCS
|
||||
|
||||
#include "compat/mingw.h"
|
||||
|
||||
#undef ALREADY_DECLARED_STAT_FUNCS
|
||||
|
||||
#endif
|
||||
|
|
|
@ -499,7 +499,9 @@ MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP
|
|||
#endif /* WIN32 */
|
||||
#ifdef WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#ifndef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x403
|
||||
#endif
|
||||
#include <windows.h>
|
||||
#define HAVE_MMAP 1
|
||||
#define HAVE_MORECORE 0
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
|
||||
# define WIN32_NATIVE
|
||||
# if defined (_MSC_VER)
|
||||
# if defined (_MSC_VER) && !defined(_WIN32_WINNT)
|
||||
# define _WIN32_WINNT 0x0502
|
||||
# endif
|
||||
# include <winsock2.h>
|
||||
|
|
|
@ -339,6 +339,7 @@ ifeq ($(uname_S),Windows)
|
|||
OBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo
|
||||
NO_REGEX = YesPlease
|
||||
NO_CURL = YesPlease
|
||||
NO_GETTEXT = YesPlease
|
||||
NO_PYTHON = YesPlease
|
||||
BLK_SHA1 = YesPlease
|
||||
ETAGS_TARGET = ETAGS
|
||||
|
@ -499,7 +500,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
|
|||
NO_INET_NTOP = YesPlease
|
||||
NO_POSIX_GOODIES = UnfortunatelyYes
|
||||
DEFAULT_HELP_FORMAT = html
|
||||
COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/win32
|
||||
COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32
|
||||
COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
|
||||
COMPAT_OBJS += compat/mingw.o compat/winansi.o \
|
||||
compat/win32/pthread.o compat/win32/syslog.o \
|
||||
|
|
|
@ -86,7 +86,7 @@
|
|||
#define _SGI_SOURCE 1
|
||||
|
||||
#if defined(WIN32) && !defined(__CYGWIN__) /* Both MinGW and MSVC */
|
||||
# if defined (_MSC_VER)
|
||||
# if defined (_MSC_VER) && !defined(_WIN32_WINNT)
|
||||
# define _WIN32_WINNT 0x0502
|
||||
# endif
|
||||
#define WIN32_LEAN_AND_MEAN /* stops windows.h including winsock.h */
|
||||
|
|
Загрузка…
Ссылка в новой задаче