Re: [PATCH] HP-UX does not have select.h
From: H.Merijn Brand <hidden>
Date: 2016-06-15 22:44:01
On Sun, 23 Dec 2007 09:37:08 +0100, Jan Hudec [off-list ref] wrote:
On Thu, Dec 20, 2007 at 08:18:06 +0100, H.Merijn Brand wrote:quoted
On Wed, 19 Dec 2007 13:31:58 -0800, Junio C Hamano [off-list ref] wrote:quoted
"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_93Please, note that the defines are _POSIX1_VERSION_* ^
Ow. good catch. Sorry, yes, missed that.
quoted
quoted
quoted
quoted
quoted
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
quoted
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
quoted
./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/