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

Subsystems: the rest

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

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

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:00

"H.Merijn Brand" [off-list ref] writes:
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.

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

 git-compat-util.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index 79eb10e..68a580f 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -68,7 +68,9 @@
 #include <sys/poll.h>
 #include <sys/socket.h>
 #include <sys/ioctl.h>
+#if defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L
 #include <sys/select.h>
+#endif
 #include <assert.h>
 #include <regex.h>
 #include <netinet/in.h>

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 11:57:21 -0800, Junio C Hamano [off-list ref] wrote:
"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 hunk
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).

 git-compat-util.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index 79eb10e..68a580f 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -68,7 +68,9 @@
 #include <sys/poll.h>
 #include <sys/socket.h>
 #include <sys/ioctl.h>
+#if defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L
 #include <sys/select.h>
+#endif
 #include <assert.h>
 #include <regex.h>
 #include <netinet/in.h>
-- 
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