Re: [BUG] daemon.c blows up on OSX
- From
Randal L. Schwartz <merlyn@stonehenge.com>
- Date
- Dec 20, 2006, 23:25 UTC
- Message-ID
- <86r6uuxi8o.fsf@blue.stonehenge.com>
- In-Reply-To
- <7v1wmu6ugr.fsf@assigned-by-dhcp.cox.net>
>>>>> "Junio" == Junio C Hamano <junkio@cox.net> 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
#endifSo 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@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/> Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.