From 41f2999180f5a58f2a4214d896359c1587c9024f Mon Sep 17 00:00:00 2001 From: Ramsay Jones Date: Thu, 31 Jan 2013 18:28:35 +0000 Subject: msvc: Fix compilation errors caused by poll.h emulation Commit 0f77dea9 ("mingw: move poll out of sys-folder", 24-10-2011), along with other commits in the 'ef/mingw-upload-archive' branch (see commit 7406aa20), effectively reintroduced the same problem addressed by commit 56fb3ddc ("msvc: Fix compilation errors in compat/win32/sys/poll.c", 04-12-2010). In order to fix the compilation errors, we use the same solution adopted in that earlier commit. In particular, we set _WIN32_WINNT to 0x0502 (which would target Windows Server 2003) prior to including the winsock2.h header file. Also, we delete the compat/vcbuild/include/sys/poll.h header file, since it is now redundant and it's presence may cause some confusion. Signed-off-by: Ramsay Jones Tested-by: Johannes Sixt Signed-off-by: Junio C Hamano --- compat/vcbuild/include/sys/poll.h | 1 - 1 file changed, 1 deletion(-) delete mode 100644 compat/vcbuild/include/sys/poll.h (limited to 'compat') diff --git a/compat/vcbuild/include/sys/poll.h b/compat/vcbuild/include/sys/poll.h deleted file mode 100644 index 0d8552a2c6..0000000000 --- a/compat/vcbuild/include/sys/poll.h +++ /dev/null @@ -1 +0,0 @@ -/* Intentionally empty file to support building git with MSVC */ -- cgit v1.2.3 From 93e38ed0c5a632d7b785357a309ac83e4df066fa Mon Sep 17 00:00:00 2001 From: Ramsay Jones Date: Thu, 31 Jan 2013 18:31:30 +0000 Subject: msvc: Fix build by adding missing symbol defines In particular, remote-testsvn.c fails to compile with two undeclared identifier errors relating to the 'UINT32_MAX' and 'STDIN_FILENO' symbols. In order to fix the compilation errors, we add appropriate definitions for the UINT32_MAX and STDIN_FILENO constants to an msvc compat header file. Signed-off-by: Ramsay Jones Tested-by: Johannes Sixt Signed-off-by: Junio C Hamano --- compat/vcbuild/include/unistd.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'compat') diff --git a/compat/vcbuild/include/unistd.h b/compat/vcbuild/include/unistd.h index b14fcf94da..c65c2cd566 100644 --- a/compat/vcbuild/include/unistd.h +++ b/compat/vcbuild/include/unistd.h @@ -49,6 +49,9 @@ typedef int64_t off64_t; #define INTMAX_MAX _I64_MAX #define UINTMAX_MAX _UI64_MAX +#define UINT32_MAX 0xffffffff /* 4294967295U */ + +#define STDIN_FILENO 0 #define STDOUT_FILENO 1 #define STDERR_FILENO 2 -- cgit v1.2.3 From d0f9dbb9e29b8dc289ae3b8028586a99fdb0d194 Mon Sep 17 00:00:00 2001 From: Ramsay Jones Date: Thu, 31 Jan 2013 18:32:55 +0000 Subject: msvc: test-svn-fe: Fix linker "unresolved external" error In particular, while linking test-svn-fe.exe, the linker complains that the external symbol _strtoull is unresolved. A call to this function was added in commit ddcc8c5b ("vcs-svn: skeleton of an svn delta parser", 25-12-2010). The NO_STRTOULL build variable attempts to provide support to old systems which can't even declare 'unsigned long long' variables, let alone provide the strtoll() or strtoull() functions. Setting this build variable does not provide an implementation of these functions. Rather, it simply allows the compat implementations of strto{i,u}max() to use strtol() and strtoul() instead. In order to fix the linker error on systems with NO_STRTOULL set, currently MSVC and OSF1, we can substitute a call to strtoumax(). However, we can easily provide support for the strtoull() and strtoll() functions on MSVC, since they are essentially already available as _strtoui64() and _strtoi64(). This allows us to remove NO_STRTOULL for MSVC. Signed-off-by: Ramsay Jones Tested-by: Johannes Sixt Signed-off-by: Junio C Hamano --- compat/msvc.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'compat') diff --git a/compat/msvc.h b/compat/msvc.h index aa4b56315a..96b6d605da 100644 --- a/compat/msvc.h +++ b/compat/msvc.h @@ -12,6 +12,8 @@ #define __attribute__(x) #define strncasecmp _strnicmp #define ftruncate _chsize +#define strtoull _strtoui64 +#define strtoll _strtoi64 static __inline int strcasecmp (const char *s1, const char *s2) { -- cgit v1.2.3