git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] Include unistd.h.

From
Junio C Hamano <gitster@pobox.com>
Date
May 25, 2011, 21:00 UTC
Message-ID
<7vvcwy1onq.fsf@alter.siamese.dyndns.org>
In-Reply-To
<BANLkTim4gPAyA9vLnpBz7qRY+b4RQ7LwNw@mail.gmail.com>
Tor Arntsen <tor@spacetec.no> writes:
Show 10 quoted lines
> On Wed, May 25, 2011 at 20:30, Junio C Hamano <gitster@pobox.com> wrote:
> ...
>> The header stddef.h is where NULL is supposed to be defined, and commonly
>> used headers are supposed to define NULL the same way as stddef.h does.
>> There is a conditional inclusion of stdlib.h in fnmatch.c and stdlib.h is
>> one of those files; probably that is how the upstream pulls in NULL when
>> compiling this.
>
> According to POSIX (well, IEEE Std 1003.1, 2004 Edition at least)
> unistd.h must define NULL:

Yes, unistd.h is also one of the common header files just like stdlib.h and stdio.h that are required to define NULL the same way as stddef.h does.

Cf.
    http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html
Show 5 quoted lines
>> Other platforms (e.g. SunOS, IRIX, HPUX, Windows) use NO_FNMATCH_CASEFOLD
>> and compile this file.  How are they getting their NULLs?
>
> IRIX defines NULL in ...
> ... presumably it's in some compiler-provided place.

Yes, but that still does not explain where compat/fnmatch/fnmatch.c gets its NULL from.

> #ifndef NULL
> #define NULL 0 /* or sometimes 0L */
> #endif

You probably would want to say "(void *) 0" if you quote POSIX in the same message ;-).

Cf.
    http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html

To recap my original question that is not unanswered, the current codebase does not include unistd.h nor stddef.h when compiling the compatibility fnmatch.c source we borrowed from glibc, but nobody seems to have complained that it does not compile due to the lack of NULL, so they must be getting their NULL from somewhere already, but I couldn't find where. That is what I was wondering.

Previous: Tor ArntsenNext: Erik Faye-Lund
Message 9 of 18 in “Interix catch-ups for recent changes/releases.”
  1. Interix catch-ups for recent changes/releases.mduft@gentoo.org, May 25, 2011
  2. 1/2 Add additional build options for Interix, and remove obsolete ones.mduft@gentoo.org, May 25, 2011
  3. Junio C HamanoMay 25, 2011
  4. Markus DuftMay 26, 2011
  5. Junio C HamanoMay 26, 2011
  6. 2/2 Include unistd.h.mduft@gentoo.org, May 25, 2011
  7. Junio C HamanoMay 25, 2011
  8. Tor ArntsenMay 25, 2011
  9. Junio C HamanoMay 25, 2011
  10. Erik Faye-LundMay 25, 2011
  11. Jonathan NiederMay 26, 2011
  12. Junio C HamanoMay 26, 2011
  13. Jonathan NiederMay 26, 2011
  14. Markus DuftMay 30, 2011
  15. Markus DuftJun 15, 2011
  16. Jonathan NiederJun 15, 2011
  17. Update the Interix default build configuration.mduft@gentoo.org, Jun 15, 2011
  18. Markus DuftMay 27, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.