>>>>> "Junio" == Junio C Hamano <junkio@xxxxxxx> writes: Junio> This unfortunately violates the "all common system headers in Junio> git-compat-util.h" rule, which is needed to define _XOPEN_SOURCE Junio> and friends before including the system header files. Junio> And string.h, netdb.h and unistd.h are already included there, Junio> so there is something deeper going on on OSX. Junio> Is the declaration of strncasecmp in <string.h> on OSX Junio> conditional to some macro (and the same question about other Junio> symbols you did not get)? We need to find out what feature Junio> macros are expected on that platform and define them as needed. If one of those defines _POSIX_C_SOURCE (or _ANSI_SOURCE), then <string.h> does *not* define "strncasecmp", because it has those under a comment of "Nonstandard routines". Is anything earlier defining one of these? And yes, netdb.h also has a lot of those depending on _POSIX_C_SOURCE, and so does unistd.h So that's your culprit. You're defining _POSIX_C_SOURCE when you're not really proper _POSIX_C compliant. Can you just remove that? And sys/cdefs.h for darwin has this: /* Deal with various X/Open Portability Guides and Single UNIX Spec. */ #ifdef _XOPEN_SOURCE #if _XOPEN_SOURCE - 0L >= 600L #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200112L #elif _XOPEN_SOURCE - 0L >= 500L #undef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 199506L #endif #endif So that's likely how _POSIX_C_SOURCE is getting defined for the rest. -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <merlyn@xxxxxxxxxxxxxx> <URL:http://www.stonehenge.com/merlyn/> Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! - 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