summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2011-04-30 13:38:43 +0200
committerBruno Haible <bruno@clisp.org>2011-04-30 13:38:43 +0200
commit95bbafdb715dcfdbe7f629e2411b300ccaa84db4 (patch)
tree4914ae023bd8864da7048e93496a9fffef7ddd55
parentc9b4d37004240533b0aab80806cc8539140e4fd1 (diff)
downloadgnulib-95bbafdb715dcfdbe7f629e2411b300ccaa84db4.tar.gz
sys_socket: Ensure 'struct iovec' definition.
* lib/sys_socket.in.h: Include <sys/uio.h> also on platforms that have <sys/socket.h>. * doc/posix-headers/sys_socket.texi: Mention the OpenBSD problem.
-rw-r--r--ChangeLog7
-rw-r--r--doc/posix-headers/sys_socket.texi3
-rw-r--r--lib/sys_socket.in.h9
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index b567940fb7..987b46e681 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2011-04-30 Bruno Haible <bruno@clisp.org>
+ sys_socket: Ensure 'struct iovec' definition.
+ * lib/sys_socket.in.h: Include <sys/uio.h> also on platforms that have
+ <sys/socket.h>.
+ * doc/posix-headers/sys_socket.texi: Mention the OpenBSD problem.
+
+2011-04-30 Bruno Haible <bruno@clisp.org>
+
sys_uio: Protect definition of 'struct iovec'.
* lib/sys_uio.in.h (struct iovec): Avoid redefinition. In C++, define
it as a C struct.
diff --git a/doc/posix-headers/sys_socket.texi b/doc/posix-headers/sys_socket.texi
index f80e542544..72fd688705 100644
--- a/doc/posix-headers/sys_socket.texi
+++ b/doc/posix-headers/sys_socket.texi
@@ -17,6 +17,9 @@ This header file is not self-contained on some platforms: it requires
This header file does not define the type @code{socklen_t} on some platforms:
HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS.
@item
+This header file does not define the type @code{struct iovec} on some platforms:
+OpenBSD 4.4.
+@item
This header file is lacking the @code{SHUT_RD}, @code{SHUT_WR},
@code{SHUT_RDWR} macros on some platforms, despite having the @code{shutdown}
functions:
diff --git a/lib/sys_socket.in.h b/lib/sys_socket.in.h
index f9e368b6ca..78026697bd 100644
--- a/lib/sys_socket.in.h
+++ b/lib/sys_socket.in.h
@@ -108,6 +108,12 @@ struct sockaddr_storage
#endif
+/* Get struct iovec. */
+/* But avoid namespace pollution on glibc systems. */
+#if ! defined __GLIBC__
+# include <sys/uio.h>
+#endif
+
#if @HAVE_SYS_SOCKET_H@
/* A platform that has <sys/socket.h>. */
@@ -176,9 +182,6 @@ typedef int socklen_t;
# endif
-/* For struct iovec */
-# include <sys/uio.h>
-
/* Rudimentary 'struct msghdr'; this works as long as you don't try to
access msg_control or msg_controllen. */
struct msghdr {