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

Re: [PATCH] HP-UX does not have select.h

From
JHJan Hudec <bulb@ucw.cz>
Date
Dec 23, 2007, 08:37 UTC
Message-ID
<20071223083708.GA3563@efreet.light.src>
In-Reply-To
<20071220081806.0ccdf636@pc09.procura.nl>
On Thu, Dec 20, 2007 at 08:18:06 +0100, H.Merijn Brand wrote:
Show 17 quoted lines
> On Wed, 19 Dec 2007 13:31:58 -0800, Junio C Hamano <gitster@pobox.com> wrote:
> > "H.Merijn Brand" <h.m.brand@xs4all.nl> writes:
> > > On Wed, 19 Dec 2007 11:57:21 -0800, Junio C Hamano <gitster@pobox.com> wrote:
> > >> "H.Merijn Brand" <h.m.brand@xs4all.nl> writes:
> > >> > On Tue, 18 Dec 2007 01:47:53 -0800, Junio C Hamano <gitster@pobox.com> wrote:
> > >> > ...
> > >> >> Merijn, discarding the earlier patch I did to configure it out for
> > >> >> HP-UX, does the following patch based on Andreas's idea work for you?
> > >> >
> > >> > Probably not:
> > >> >
> > >> > HP-UX 10.20, 11.00, 11.11, 11.23/PA, and 11.23/IPF all have:
> > >> >
> > >> > /usr/include 103 > grep -r POSIX_VERSION *
> > >> > sys/unistd.h:#    define _POSIX_VERSION _POSIX1_VERSION_88
> > >> > sys/unistd.h:#      define _POSIX_VERSION       _POSIX1_VERSION_90
> > >> > sys/unistd.h:#      define _POSIX_VERSION       _POSIX1_VERSION_93
Please, note that the defines are _POSIX1_VERSION_*
                                        ^
Show 13 quoted lines
> > >> > sys/unistd.h:#  define _SC_1_VERSION_88    7     /* _POSIX_VERSION: Date of POSIX.1-1988 */
> > >> > sys/unistd.h:#  define _SC_1_VERSION_90   102 /* _POSIX_VERSION: Date of POSIX.1-1990 */
> > >> > sys/unistd.h:#  define _SC_1_VERSION_93   103 /* _POSIX_VERSION: Date of POSIX.1b-1993 */
> > >> > sys/unistd.h:#  if (_POSIX_VERSION == _POSIX1_VERSION_88)
> > >> > sys/unistd.h:#    if (_POSIX_VERSION == _POSIX1_VERSION_90)
> > >> >
> > >> > and the two 11.23 do have select.h
> [...]
> 
> If it is used to *define* _POSIX_VERSION, it should have come up too,
> wouldn't it?
> 
> The only define that comes close to something like YYYYMM is:

No, it's not the only one. The _POSIX1_VERSION_* macros we are looking for are there below and they are defined this way too (did you miss them because of the trailing comment?)

Show 19 quoted lines
> X11/Xosdefs.h:#define X_POSIX_C_SOURCE 199300L
> 
> usr/include 111 > grep -r POSIX.*YEAR .
> Exit 1
> 
> /usr/include 112 > grep -P -r 'POSIX.*\b(19\d\d|200\d)' .
> ./sys/buf.h:#if         (_POSIX_C_SOURCE >= 199309)
> ./sys/buf.h:#endif      /* (_POSIX_C_SOURCE >= 199309) */
> ./sys/stdsyms.h:/* XPG3 semantics gets POSIX.1-1988 semantics by default */
> ./sys/stdsyms.h: * This usage is obsolescent, "-D_POSIX_C_SOURCE=199506" is preferred */
> ./sys/stdsyms.h:#  if (_POSIX_C_SOURCE >= 199506) && !defined(_INCLUDE_POSIX1C_SOURCE)
> ./sys/stdsyms.h:#  endif /* _POSIX_C_SOURCE >= 199506 && !_INCLUDE_POSIX1C_SOURCE */
> ./sys/stdsyms.h:#  if (_POSIX_C_SOURCE >= 199506) && !defined(_REENTRANT)
> ./sys/stdsyms.h:#  endif /* _POSIX_C_SOURCE >= 199506 && !_REENTRANT */
> ./sys/stdsyms.h:#  if (_POSIX_C_SOURCE >= 199309) && !defined(_INCLUDE_POSIX4_SOURCE)
> ./sys/stdsyms.h:#  endif /* _POSIX_C_SOURCE >= 199309 && !_INCLUDE_POSIX4_SOURCE */
> ./sys/unistd.h:#  define _POSIX1_VERSION_88     198808L    /* We support POSIX.1-1988 */
> ./sys/unistd.h:#  define _POSIX1_VERSION_90     199009L    /* We support POSIX.1-1990 */
> ./sys/unistd.h:#  define _POSIX1_VERSION_93     199309L    /* We support POSIX.1b-1993 */

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ And they are defined HERE.

Obviously, there is no value for the 2001 standard, so if this is from HP-UX version that already has sys/select.h, it does not claim conformance to the posix standard. But than it might be that sys/select.h is not required, so the test might still work.

Show 15 quoted lines
> ./sys/unistd.h:#    if !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE < 199309L)
> ./sys/unistd.h:#    else /* _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 199309L */
> ./sys/unistd.h:#    endif /* _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 199309L */
> ./sys/unistd.h:/* Symbolic constants for sysconf() variables defined by POSIX.1-1988: 0-7 */
> ./sys/unistd.h:#  define _SC_1_VERSION_88    7   /* _POSIX_VERSION: Date of POSIX.1-1988 */
> ./sys/unistd.h:/* Symbolic constants for sysconf() variables added by POSIX.1-1990: 100-199 */
> ./sys/unistd.h:#  define _SC_1_VERSION_90   102 /* _POSIX_VERSION: Date of POSIX.1-1990 */
> ./sys/unistd.h:#  define _SC_1_VERSION_93   103 /* _POSIX_VERSION: Date of POSIX.1b-1993 */
> ./sys/unistd.h:#  define _POSIX2_VERSION   199209L  /* IEEE POSIX.2-1992 base standard */
> ./sys/unistd.h:#  define _POSIX2_C_VERSION 199209L  /* IEEE POSIX.2-1992 C language binding */
> ./limits.h:#  define _POSIX_CLOCKRES_MIN        20000000 /* The CLOCK_REALTIME clock
> ./X11/Xosdefs.h:#define X_POSIX_C_SOURCE 199300L
> ./dce/cdsclerk.h:#if _POSIX_C_SOURCE >= 199506L
> ./dce/rpcexc.h:#if _POSIX_C_SOURCE >= 199506L
> ./dce/stubbase.h:#if _POSIX_C_SOURCE >= 199506L
-- 
						 Jan 'Bulb' Hudec <bulb@ucw.cz>
Previous: Junio C HamanoNext: H.Merijn Brand
Message 19 of 20 in “HP-UX does not have select.h”
  1. HP-UX does not have select.hH.Merijn Brand, Dec 17, 2007
  2. Junio C HamanoDec 17, 2007
  3. H.Merijn BrandDec 17, 2007
  4. Junio C HamanoDec 18, 2007
  5. H.Merijn BrandDec 18, 2007
  6. Johannes SixtDec 18, 2007
  7. Johannes SchindelinDec 18, 2007
  8. Johannes SixtDec 18, 2007
  9. Johannes SchindelinDec 18, 2007
  10. Johannes SixtDec 18, 2007
  11. Andreas EricssonDec 18, 2007
  12. Junio C HamanoDec 18, 2007
  13. H.Merijn BrandDec 18, 2007
  14. Junio C HamanoDec 19, 2007
  15. H.Merijn BrandDec 19, 2007
  16. Junio C HamanoDec 19, 2007
  17. H.Merijn BrandDec 20, 2007
  18. Junio C HamanoDec 20, 2007
  19. Jan HudecDec 23, 2007
  20. H.Merijn BrandDec 23, 2007

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.