"Joachim Schmitz" <jojo@xxxxxxxxxxxxxxxxxx> writes: > Hi folks > > On top of the patches I’ve submitted so far, which were needed for HP NonStop, > but possibly useful for other platforms too, here is one that is at least in parts NonStop specific > > diff --git a/git-compat-util.h b/git-compat-util.h > index a047221..d6a142a 100644 > --- a/git-compat-util.h > +++ b/git-compat-util.h > @@ -74,7 +74,8 @@ > # define _XOPEN_SOURCE 500 > # endif > #elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__USLC__) && \ > - !defined(_M_UNIX) && !defined(__sgi) && !defined(__DragonFly__) > + !defined(_M_UNIX) && !defined(__sgi) && !defined(__DragonFly__) && \ > + !defined(__TANDEM) > #define _XOPEN_SOURCE 600 /* glibc2 and AIX 5.3L need 500, OpenBSD needs 600 fo > #define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */ > #endif > +#ifdef __TANDEM /* or HAVE_STRINGS_H ? */ > +#include <strings.h> /* for strcasecmp() */ > +#endif > #include <errno.h> > #include <limits.h> > #include <sys/param.h> Yeah, it appears that glibc headers have strcasecmp() and friends in the <string.h> and that was why majority of us were fine without including <strings.h>. A cursory look of /usr/include/strings.h on a GNU system suggests that it is safe to include <strings.h> after we incude <string.h> on that platform. I think it is OK to leave it "__TANDEM /* or HAVE_STRINGS_H? */" for now and let the next person who wants to port us to a platform that needs this inclusion turn it to HAVE_STRINGS_H. Alternatively, we bite the bullet now and include <strings.h> on any platform that has the header file and see if anybody complains (that reminds me; I at least should get one flavor of BSD build environment for this kind of thing myself). > @@ -141,6 +145,10 @@ > #else > #include <stdint.h> > #endif > +#ifdef __TANDEM /* or NO_INTPTR_T resp. NO_UINTPTR_T? */ > +typedef int intptr_t; > +typedef unsigned int uintptr_t; > +#endif A bit wider context for this hunk is #ifndef NO_INTTYPES_H #include <inttypes.h> #else #include <stdint.h> #endif So we have been assuming that <stdint.h> has intptr_t but __TANDEM apparently doesn't. POSIX requires intptr_t and uintptr_t to be declared for systems conforming to XSI, but otherwise these are optional (in other words, some XSI non-conforming platforms may have them in <stdint.h>), so it would not help to check _XOPEN_UNIX to see if the system is XSI X-<. We would need NO_INTPTR_T as you hinted above, perhaps like this. #ifndef NO_INTTYPES_H #include <inttypes.h> #else #include <stdint.h> #endif #ifdef NO_INTPTR_T typedef int intptr_t; typedef unsigned int uintptr_t; #endif By the way, is "int" wide enough, or should they be "long"? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html