Thread (4 messages) flat view 4 messages, 3 authors, 2016-06-15

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

From: H.Merijn Brand <hidden>
Date: 2016-06-15 22:44:00

On Wed, 19 Dec 2007 13:31:58 -0800, Junio C Hamano [off-list ref] wrote:
"H.Merijn Brand" [off-list ref] writes:
quoted
On Wed, 19 Dec 2007 11:57:21 -0800, Junio C Hamano [off-list ref] wrote:
quoted
"H.Merijn Brand" [off-list ref] writes:
quoted
On Tue, 18 Dec 2007 01:47:53 -0800, Junio C Hamano [off-list ref] wrote:
...
quoted
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
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
Does that prove anything?  unistd.h seem to define _POSIX_VERSION to
various values but we do not see surrounding "#ifdef WE_DO_NOT_KNOW"
from the grep output above unfortunately.
What I tried to demonstrate is that I have no clue about the actual value
of this define, and if values like 88, 90, and 93 (7, 102, and 103)  do
have any relation with the higher value of 200112L that you use.

Also because these are the *only* _POSIX_VERSION defines in the entire
include tree, and 11.23 does have a select.h, which makes the patch below
to be not OK on 11.23. I'm not stating that HP follows the rules in any
correct way, but if this is to be sure that select.h gets included if the
OS supports it, it will fail.
quoted
If the folllowing actually works I think that is the cleanest fix for
this issue (note that I added defined(_POSIX_VERSION) there just to be
safe if it is not defined at all).
But your grep did not catch their definition of _POSIX1_VERSION_$YEAR
which are used to define the actual value of _POSIX_VERSION.
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:

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 */
./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/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help