changeset 15546:265302827911

sys_select: Avoid a syntax error regarding timespec_t on IRIX 6.5. * lib/sys_select.in.h [__sgi]: When included from <sys/bsd_types.h>, just include the system's header.
author Bruno Haible <bruno@clisp.org>
date Thu, 01 Sep 2011 12:15:11 +0200
parents 251ce56b555a
children 50ebbdbce688
files ChangeLog lib/sys_select.in.h
diffstat 2 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Aug 31 17:47:18 2011 +0200
+++ b/ChangeLog	Thu Sep 01 12:15:11 2011 +0200
@@ -1,3 +1,9 @@
+2011-09-01  Bruno Haible  <bruno@clisp.org>
+
+	sys_select: Avoid a syntax error regarding timespec_t on IRIX 6.5.
+	* lib/sys_select.in.h [__sgi]: When included from <sys/bsd_types.h>,
+	just include the system's header.
+
 2011-08-31  Jim Meyering  <meyering@redhat.com>
 
 	tests: avoid spurious assertion failure in test-float.c on ppc64
--- a/lib/sys_select.in.h	Wed Aug 31 17:47:18 2011 +0200
+++ b/lib/sys_select.in.h	Thu Sep 01 12:15:11 2011 +0200
@@ -32,6 +32,16 @@
 # define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H
 # @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
 
+/* On IRIX 6.5, <sys/timespec.h> includes <sys/types.h>, which includes
+   <sys/bsd_types.h>, which includes <sys/select.h>.  At this point we cannot
+   include <signal.h>, because that includes <internal/signal_core.h>, which
+   gives a syntax error because <sys/timespec.h> has not been completely
+   processed.  Simply delegate to the system's header in this case.  */
+#elif @HAVE_SYS_SELECT_H@ && defined __sgi && (defined _SYS_BSD_TYPES_H && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_BSD_TYPES_H)
+
+# define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_BSD_TYPES_H
+# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
+
 #else
 
 #ifndef _@GUARD_PREFIX@_SYS_SELECT_H