summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Duft <mduft@gentoo.org>2010-10-27 08:39:52 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-10-29 00:52:22 (GMT)
commit2844923d62a4c408bd59ddb2caacca4aa7eb86bc (patch)
tree984cbfe179ac14c8f59b62d05f5899c967a3a577
parent7ebee44167fc25b975f5543472c851ab1840af1b (diff)
downloadgit-2844923d62a4c408bd59ddb2caacca4aa7eb86bc.zip
git-2844923d62a4c408bd59ddb2caacca4aa7eb86bc.tar.gz
git-2844923d62a4c408bd59ddb2caacca4aa7eb86bc.tar.bz2
add support for the SUA layer (interix; windows)
* add required build options to Makefile. * introduce new NO_INTTYPES_H for systems lacking inttypes; code includes stdint.h instead, if this is set. * introduce new NO_SYS_POLL_H for systems lacking sys/poll.h; code includes poll.h instead, if this is set. * introduce NO_INITGROUPS. initgroups() call is simply omitted. Signed-off-by: Markus Duft <mduft@gentoo.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Makefile28
-rw-r--r--daemon.c4
-rw-r--r--git-compat-util.h8
3 files changed, 40 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 1f1ce04..c9d8c9e 100644
--- a/Makefile
+++ b/Makefile
@@ -1096,6 +1096,25 @@ else
endif
X = .exe
endif
+ifeq ($(uname_S),Interix)
+ NO_SYS_POLL_H = YesPlease
+ NO_INTTYPES_H = YesPlease
+ NO_INITGROUPS = YesPlease
+ NO_IPV6 = YesPlease
+ NO_MEMMEM = YesPlease
+ NO_MKDTEMP = YesPlease
+ NO_STRTOUMAX = YesPlease
+ NO_NSEC = YesPlease
+ NO_MKSTEMPS = YesPlease
+ ifeq ($(uname_R),3.5)
+ NO_INET_NTOP = YesPlease
+ NO_INET_PTON = YesPlease
+ endif
+ ifeq ($(uname_R),5.2)
+ NO_INET_NTOP = YesPlease
+ NO_INET_PTON = YesPlease
+ endif
+endif
ifneq (,$(findstring MINGW,$(uname_S)))
pathsep = ;
NO_PREAD = YesPlease
@@ -1360,6 +1379,15 @@ endif
ifdef NO_SYS_SELECT_H
BASIC_CFLAGS += -DNO_SYS_SELECT_H
endif
+ifdef NO_SYS_POLL_H
+ BASIC_CFLAGS += -DNO_SYS_POLL_H
+endif
+ifdef NO_INTTYPES_H
+ BASIC_CFLAGS += -DNO_INTTYPES_H
+endif
+ifdef NO_INITGROUPS
+ BASIC_CFLAGS += -DNO_INITGROUPS
+endif
ifdef NO_MMAP
COMPAT_CFLAGS += -DNO_MMAP
COMPAT_OBJS += compat/mmap.o
diff --git a/daemon.c b/daemon.c
index 7ccd097..de59f5d 100644
--- a/daemon.c
+++ b/daemon.c
@@ -15,6 +15,10 @@
#define NI_MAXSERV 32
#endif
+#ifdef NO_INITGROUPS
+#define initgroups(x, y) (0) /* nothing */
+#endif
+
static int log_syslog;
static int verbose;
static int reuseaddr;
diff --git a/git-compat-util.h b/git-compat-util.h
index 2af8d3e..625b2e4 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -106,7 +106,11 @@
#include <utime.h>
#ifndef __MINGW32__
#include <sys/wait.h>
+#ifndef NO_SYS_POLL_H
#include <sys/poll.h>
+#else
+#include <poll.h>
+#endif
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <termios.h>
@@ -118,7 +122,11 @@
#include <arpa/inet.h>
#include <netdb.h>
#include <pwd.h>
+#ifndef NO_INTTYPES_H
#include <inttypes.h>
+#else
+#include <stdint.h>
+#endif
#if defined(__CYGWIN__)
#undef _XOPEN_SOURCE
#include <grp.h>