Port to HP NonStop
Includes the addition of some new defines and their description for others to use. Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Joachim Schmitz committed
Sep 19, 2012 at 12:03 UTC
6c109904bc87987364e37e214138cff8fcaa924a
2 files changed
+83
-1
Makefile
+67
@@ -145,6 +145,12 @@ all::
145
#
146
# Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
147
#
148
+# Define NEEDS_LIBINTL_BEFORE_LIBICONV if you need libintl before libiconv.
149
+#
150
+# Define NO_INTPTR_T if you don't have intptr_t nor uintptr_t.
151
+#
152
+# Define NO_UINTMAX_T if you don't have uintmax_t.
153
+#
154
# Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
155
# Patrick Mauritz).
156
#
@@ -1320,6 +1326,61 @@ ifeq ($(uname_S),Minix)
1326
NO_CURL =
1327
NO_EXPAT =
1328
endif
1329
+ifeq ($(uname_S),NONSTOP_KERNEL)
1330
+ # Needs some C99 features, "inline" is just one of them.
1331
+ # INLINE='' would just replace one set of warnings with another and
1332
+ # still not compile in c89 mode, due to non-const array initializations.
1333
+ CC = cc -c99
1334
+ # Disable all optimization, seems to result in bad code, with -O or -O2
1335
+ # or even -O1 (default), /usr/local/libexec/git-core/git-pack-objects
1336
+ # abends on "git push". Needs more investigation.
1337
+ CFLAGS = -g -O0
1338
+ # We'd want it to be here.
1339
+ prefix = /usr/local
1340
+ # Our's are in ${prefix}/bin (perl might also be in /usr/bin/perl).
1341
+ PERL_PATH = ${prefix}/bin/perl
1342
+ PYTHON_PATH = ${prefix}/bin/python
1343
+
1344
+ # As detected by './configure'.
1345
+ # Missdetected, hence commented out, see below.
1346
+ #NO_CURL = YesPlease
1347
+ # Added manually, see above.
1348
+ NEEDS_SSL_WITH_CURL = YesPlease
1349
+ HAVE_LIBCHARSET_H = YesPlease
1350
+ NEEDS_LIBICONV = YesPlease
1351
+ NEEDS_LIBINTL_BEFORE_LIBICONV = YesPlease
1352
+ NO_SYS_SELECT_H = UnfortunatelyYes
1353
+ NO_D_TYPE_IN_DIRENT = YesPlease
1354
+ NO_HSTRERROR = YesPlease
1355
+ NO_STRCASESTR = YesPlease
1356
+ NO_FNMATCH_CASEFOLD = YesPlease
1357
+ NO_MEMMEM = YesPlease
1358
+ NO_STRLCPY = YesPlease
1359
+ NO_SETENV = YesPlease
1360
+ NO_UNSETENV = YesPlease
1361
+ NO_MKDTEMP = YesPlease
1362
+ NO_MKSTEMPS = YesPlease
1363
+ # Currently libiconv-1.9.1.
1364
+ OLD_ICONV = UnfortunatelyYes
1365
+ NO_REGEX = YesPlease
1366
+ NO_PTHREADS = UnfortunatelyYes
1367
+
1368
+ # Not detected (nor checked for) by './configure'.
1369
+ # We don't have SA_RESTART on NonStop, unfortunalety.
1370
+ COMPAT_CFLAGS += -DSA_RESTART=0
1371
+ # Apparently needed in compat/fnmatch/fnmatch.c.
1372
+ COMPAT_CFLAGS += -DHAVE_STRING_H=1
1373
+ NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
1374
+ NO_NSEC = YesPlease
1375
+ NO_PREAD = YesPlease
1376
+ NO_MMAP = YesPlease
1377
+ NO_POLL = YesPlease
1378
+ NO_INTPTR_T = UnfortunatelyYes
1379
+ # Bug report 10-120822-4477 submitted to HP NonStop development.
1380
+ MKDIR_WO_TRAILING_SLASH = YesPlease
1381
+ # RFE 10-120912-4693 submitted to HP NonStop development.
1382
+ NO_SETITIMER = UnfortunatelyYes
1383
+endif
1384
ifneq (,$(findstring MINGW,$(uname_S)))
1385
pathsep = ;
1386
NO_PREAD = YesPlease
@@ -1556,6 +1617,9 @@ ifdef NEEDS_LIBICONV
1617
else
1618
ICONV_LINK =
1619
endif
1620
+ ifdef NEEDS_LIBINTL_BEFORE_LIBICONV
1621
+ ICONV_LINK += -lintl
1622
+ endif
1623
EXTLIBS += $(ICONV_LINK) -liconv
1624
endif
1625
ifdef NEEDS_LIBGEN
@@ -1716,6 +1780,9 @@ endif
1780
ifdef NO_IPV6
1781
BASIC_CFLAGS += -DNO_IPV6
1782
endif
1783
+ifdef NO_INTPTR_T
1784
+ COMPAT_CFLAGS += -DNO_INTPTR_T
1785
+endif
1786
ifdef NO_UINTMAX_T
1787
BASIC_CFLAGS += -Duintmax_t=uint32_t
1788
endif
git-compat-util.h
+16
-1
@@ -74,7 +74,8 @@
74
# define _XOPEN_SOURCE 500
75
# endif
76
#elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__USLC__) && \
77
- !defined(_M_UNIX) && !defined(__sgi) && !defined(__DragonFly__)
77
+ !defined(_M_UNIX) && !defined(__sgi) && !defined(__DragonFly__) && \
78
+ !defined(__TANDEM)
79
#define _XOPEN_SOURCE 600 /* glibc2 and AIX 5.3L need 500, OpenBSD needs 600 for S_ISLNK() */
80
#define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */
81
#endif
@@ -98,6 +99,9 @@
99
#include <stdlib.h>
100
#include <stdarg.h>
101
#include <string.h>
102
+#ifdef __TANDEM /* or HAVE_STRINGS_H or !NO_STRINGS_H? */
103
+#include <strings.h> /* for strcasecmp() */
104
+#endif
105
#include <errno.h>
106
#include <limits.h>
107
#include <sys/param.h>
@@ -141,6 +145,17 @@
145
#else
146
#include <stdint.h>
147
#endif
148
+#ifdef NO_INTPTR_T
149
+/*
150
+ * On I16LP32, ILP32 and LP64 "long" is the save bet, however
151
+ * on LLP86, IL33LLP64 and P64 it needs to be "long long",
152
+ * while on IP16 and IP16L32 it is "int" (resp. "short")
153
+ * Size needs to match (or exceed) 'sizeof(void *)'.
154
+ * We can't take "long long" here as not everybody has it.
155
+ */
156
+typedef long intptr_t;
157
+typedef unsigned long uintptr_t;
158
+#endif
159
#if defined(__CYGWIN__)
160
#undef _XOPEN_SOURCE
161
#include <grp.h>