* lib/sys_select.in.h [OpenBSD]: When /usr/include/pthread.h is
authorBruno Haible <bruno@clisp.org>
Sat, 4 Feb 2012 13:56:18 +0000 (14:56 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 4 Feb 2012 13:56:18 +0000 (14:56 +0100)
currently being included, just include the system's <sys/select.h>.

2012-02-04  Bruno Haible  <bruno@clisp.org>

sys_select: Avoid syntax error on OpenBSD 5.0.

ChangeLog
lib/sys_select.in.h

index 26c317e..b0b03ae 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
 2012-02-04  Bruno Haible  <bruno@clisp.org>
 
        sys_select: Avoid syntax error on OpenBSD 5.0.
+       * lib/sys_select.in.h [OpenBSD]: When /usr/include/pthread.h is
+       currently being included, just include the system's <sys/select.h>.
+
+2012-02-04  Bruno Haible  <bruno@clisp.org>
+
+       sys_select: Avoid syntax error on OpenBSD 5.0.
        * lib/sys_select.in.h: Include <signal.h> only after the include_next
        <sys/select.h>, not before.
        Reported by Jiri B <jirib@devio.us>.
index 96edb3d..e002843 100644 (file)
 # define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_BSD_TYPES_H
 # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
 
+/* On OpenBSD 5.0, <pthread.h> includes <sys/types.h>, which includes
+   <sys/select.h>.  At this point we cannot include <signal.h>, because that
+   includes gnulib's pthread.h override, which gives a syntax error because
+   /usr/include/pthread.h has not been completely processed.  Simply delegate
+   to the system's header in this case.  */
+#elif @HAVE_SYS_SELECT_H@ && defined __OpenBSD__ && (defined _PTHREAD_H_ && !defined PTHREAD_MUTEX_INITIALIZER)
+
+# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
+
 #else
 
 #ifndef _@GUARD_PREFIX@_SYS_SELECT_H