git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "H.Merijn Brand" <h.m.brand@xs4all.nl>
To: Jan Hudec <bulb@ucw.cz>
Cc: Junio C Hamano <gitster@pobox.com>, Andreas Ericsson <ae@op5.se>,
	git@vger.kernel.org
Subject: Re: [PATCH] HP-UX does not have select.h
Date: Sun, 23 Dec 2007 09:59:22 +0100	[thread overview]
Message-ID: <20071223095922.55067db5@pc09.procura.nl> (raw)
In-Reply-To: <20071223083708.GA3563@efreet.light.src>

On Sun, 23 Dec 2007 09:37:08 +0100, Jan Hudec <bulb@ucw.cz> wrote:

> On Thu, Dec 20, 2007 at 08:18:06 +0100, H.Merijn Brand wrote:
> > 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_*
>                                         ^

Ow. good catch. Sorry, yes, missed that.

> > > >> > 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?)

No, because of the trailing _88, _90, and _93

> > 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.

Good explanation

> > ./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

-- 
H.Merijn Brand         Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using & porting perl 5.6.2, 5.8.x, 5.10.x  on HP-UX 10.20, 11.00, 11.11,
& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin.       http://qa.perl.org
http://mirrors.develooper.com/hpux/            http://www.test-smoke.org
                        http://www.goldmark.org/jeff/stupid-disclaimers/

      reply	other threads:[~2007-12-23  9:00 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-17 18:23 [PATCH] HP-UX does not have select.h H.Merijn Brand
2007-12-17 21:00 ` Junio C Hamano
2007-12-17 22:22   ` H.Merijn Brand
2007-12-18  5:29     ` Junio C Hamano
2007-12-18  7:11       ` H.Merijn Brand
2007-12-18  8:16       ` Johannes Sixt
2007-12-18 12:38         ` Johannes Schindelin
2007-12-18 12:45           ` Johannes Sixt
2007-12-18 13:53             ` Johannes Schindelin
2007-12-18 14:22               ` Johannes Sixt
2007-12-18  9:30   ` Andreas Ericsson
2007-12-18  9:47     ` Junio C Hamano
2007-12-18 10:49       ` H.Merijn Brand
2007-12-19 19:57         ` Junio C Hamano
2007-12-19 20:12           ` H.Merijn Brand
2007-12-19 21:31             ` Junio C Hamano
2007-12-20  7:18               ` H.Merijn Brand
2007-12-20  7:52                 ` Junio C Hamano
2007-12-23  8:37                 ` Jan Hudec
2007-12-23  8:59                   ` H.Merijn Brand [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071223095922.55067db5@pc09.procura.nl \
    --to=h.m.brand@xs4all.nl \
    --cc=ae@op5.se \
    --cc=bulb@ucw.cz \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).