[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 <junkio@cox.net>
This commit is contained in:
Patrick Mauritz 2005-09-06 01:24:03 +02:00 committed by Junio C Hamano
parent 215a7ad1ef
commit f0ebff0dfe
3 changed files with 19 additions and 3 deletions

View File

@ -13,8 +13,14 @@
# a bundled SHA1 routine optimized for PowerPC. # a bundled SHA1 routine optimized for PowerPC.
# #
# Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin). # 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_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 # Define COLLISION_CHECK below if you believe that SHA1's
# 1461501637330902918203684832716283019655932542976 hashes do not give you # 1461501637330902918203684832716283019655932542976 hashes do not give you
# sufficient guarantee that no collisions between objects will ever happen. # sufficient guarantee that no collisions between objects will ever happen.
@ -37,7 +43,7 @@
GIT_VERSION = 0.99.6 GIT_VERSION = 0.99.6
CFLAGS = -g -O2 -Wall CFLAGS = -g -O2 -Wall
ALL_CFLAGS = $(CFLAGS) $(DEFINES) ALL_CFLAGS = $(CFLAGS) $(PLATFORM_DEFINES) $(DEFINES)
prefix = $(HOME) prefix = $(HOME)
bindir = $(prefix)/bin bindir = $(prefix)/bin
@ -131,6 +137,10 @@ ifeq ($(shell uname -s),Darwin)
NEEDS_SSL_WITH_CRYPTO = YesPlease NEEDS_SSL_WITH_CRYPTO = YesPlease
NEEDS_LIBICONV = YesPlease NEEDS_LIBICONV = YesPlease
endif endif
ifeq ($(shell uname -s),SunOS)
NEEDS_SOCKET = YesPlease
PLATFORM_DEFINES += -DNO_GETDOMAINNAME=1
endif
ifndef NO_OPENSSL ifndef NO_OPENSSL
LIB_OBJS += epoch.o LIB_OBJS += epoch.o
@ -162,6 +172,10 @@ else
LIBS += $(LIB_4_CRYPTO) LIBS += $(LIB_4_CRYPTO)
endif endif
endif endif
ifdef NEEDS_SOCKET
LIBS += -lsocket
SIMPLE_LIB += -lsocket
endif
DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)' DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)'

View File

@ -1,4 +1,5 @@
#define _XOPEN_SOURCE /* glibc2 needs this */ #define _XOPEN_SOURCE /* glibc2 needs this */
#define __EXTENSIONS__ /* solaris needs this */
#include <time.h> #include <time.h>
#include <ctype.h> #include <ctype.h>
#include "cache.h" #include "cache.h"

View File

@ -36,12 +36,13 @@ int setup_ident(void)
memcpy(real_email, pw->pw_name, len); memcpy(real_email, pw->pw_name, len);
real_email[len++] = '@'; real_email[len++] = '@';
gethostname(real_email + len, sizeof(real_email) - len); gethostname(real_email + len, sizeof(real_email) - len);
#ifndef NO_GETDOMAINNAME
if (!strchr(real_email+len, '.')) { if (!strchr(real_email+len, '.')) {
len = strlen(real_email); len = strlen(real_email);
real_email[len++] = '.'; real_email[len++] = '.';
getdomainname(real_email+len, sizeof(real_email)-len); getdomainname(real_email+len, sizeof(real_email)-len);
} }
#endif
/* And set the default date */ /* And set the default date */
datestamp(real_date, sizeof(real_date)); datestamp(real_date, sizeof(real_date));
return 0; return 0;