From: Patrick Mauritz Date: Mon, 5 Sep 2005 23:24:03 +0000 (+0200) Subject: [PATCH] Portability fix for Solaris 10/x86 X-Git-Tag: v0.99.7~112 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f0ebff0dfebc667e5edf6f67d190fd960513ab66;p=git.git [PATCH] Portability fix for Solaris 10/x86 * getdomainname unavailable there. * needs -lsocket for linkage. * needs __EXTENSIONS__ at the beginning of convert-objects.c [JC: I've done this slightly differently from what Patrick originally sent to the list and dropped the bit that deals with installations that has curl header and library at non-default location. I am resisting the slipperly slope called autoconf.] Signed-off-by: Junio C Hamano --- diff --git a/Makefile b/Makefile index 18696fa7b..4f55f631b 100644 --- a/Makefile +++ b/Makefile @@ -13,8 +13,14 @@ # a bundled SHA1 routine optimized for PowerPC. # # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin). +# # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin). - +# +# Define NEEDS_SOCKET if linking with libc is not enough (SunOS, +# Patrick Mauritz). +# +# Define NO_GETDOMAINNAME if your library lack it (SunOS, Patrick Mauritz). +# # Define COLLISION_CHECK below if you believe that SHA1's # 1461501637330902918203684832716283019655932542976 hashes do not give you # sufficient guarantee that no collisions between objects will ever happen. @@ -37,7 +43,7 @@ GIT_VERSION = 0.99.6 CFLAGS = -g -O2 -Wall -ALL_CFLAGS = $(CFLAGS) $(DEFINES) +ALL_CFLAGS = $(CFLAGS) $(PLATFORM_DEFINES) $(DEFINES) prefix = $(HOME) bindir = $(prefix)/bin @@ -131,6 +137,10 @@ ifeq ($(shell uname -s),Darwin) NEEDS_SSL_WITH_CRYPTO = YesPlease NEEDS_LIBICONV = YesPlease endif +ifeq ($(shell uname -s),SunOS) + NEEDS_SOCKET = YesPlease + PLATFORM_DEFINES += -DNO_GETDOMAINNAME=1 +endif ifndef NO_OPENSSL LIB_OBJS += epoch.o @@ -162,6 +172,10 @@ else LIBS += $(LIB_4_CRYPTO) endif endif +ifdef NEEDS_SOCKET + LIBS += -lsocket + SIMPLE_LIB += -lsocket +endif DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)' diff --git a/convert-objects.c b/convert-objects.c index 9ad0c7767..073cab592 100644 --- a/convert-objects.c +++ b/convert-objects.c @@ -1,4 +1,5 @@ #define _XOPEN_SOURCE /* glibc2 needs this */ +#define __EXTENSIONS__ /* solaris needs this */ #include #include #include "cache.h" diff --git a/ident.c b/ident.c index 0fe81f690..7e917f74d 100644 --- a/ident.c +++ b/ident.c @@ -36,12 +36,13 @@ int setup_ident(void) memcpy(real_email, pw->pw_name, len); real_email[len++] = '@'; gethostname(real_email + len, sizeof(real_email) - len); +#ifndef NO_GETDOMAINNAME if (!strchr(real_email+len, '.')) { len = strlen(real_email); real_email[len++] = '.'; getdomainname(real_email+len, sizeof(real_email)-len); } - +#endif /* And set the default date */ datestamp(real_date, sizeof(real_date)); return 0;