From 241bef9820b13a430987f9be926c7dc056aa7f38 Mon Sep 17 00:00:00 2001
From: Bruno Haible <bruno@clisp.org>
Date: Sat, 30 Apr 2011 13:54:47 +0200
Subject: [PATCH] sys_uio: Make <sys/uio.h> self-contained.

* lib/sys_uio.in.h: Include <sys/types.h> before <sys/uio.h>.
* doc/posix-headers/sys_uio.texi: Mention the OpenBSD problem.
---
 ChangeLog                      | 6 ++++++
 doc/posix-headers/sys_uio.texi | 4 ++++
 lib/sys_uio.in.h               | 3 +++
 3 files changed, 13 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 987b46e681..796a2ba10c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-30  Bruno Haible  <bruno@clisp.org>
+
+	sys_uio: Make <sys/uio.h> self-contained.
+	* lib/sys_uio.in.h: Include <sys/types.h> before <sys/uio.h>.
+	* doc/posix-headers/sys_uio.texi: Mention the OpenBSD problem.
+
 2011-04-30  Bruno Haible  <bruno@clisp.org>
 
 	sys_socket: Ensure 'struct iovec' definition.
diff --git a/doc/posix-headers/sys_uio.texi b/doc/posix-headers/sys_uio.texi
index bc4825400d..1f8c8a2c86 100644
--- a/doc/posix-headers/sys_uio.texi
+++ b/doc/posix-headers/sys_uio.texi
@@ -10,6 +10,10 @@ Portability problems fixed by Gnulib:
 @item
 This header file is missing on some platforms:
 mingw.
+@item
+This header file is not self-contained (it requires @code{<sys/types.h>} to be
+included first) on some platforms:
+OpenBSD 4.4.
 @end itemize
 
 Portability problems not fixed by Gnulib:
diff --git a/lib/sys_uio.in.h b/lib/sys_uio.in.h
index faad3de206..0eaff612a3 100644
--- a/lib/sys_uio.in.h
+++ b/lib/sys_uio.in.h
@@ -24,6 +24,9 @@
 
 #if @HAVE_SYS_UIO_H@
 
+/* On OpenBSD 4.4, <sys/uio.h> assumes prior inclusion of <sys/types.h>.  */
+# include <sys/types.h>
+
 /* The include_next requires a split double-inclusion guard.  */
 # @INCLUDE_NEXT@ @NEXT_SYS_UIO_H@
 
-- 
2.30.2