sys_socket: Ensure 'struct iovec' definition.
authorBruno Haible <bruno@clisp.org>
Sat, 30 Apr 2011 11:38:43 +0000 (13:38 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 30 Apr 2011 11:38:43 +0000 (13:38 +0200)
* 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.

ChangeLog
doc/posix-headers/sys_socket.texi
lib/sys_socket.in.h

index b567940..987b46e 100644 (file)
--- 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.
index f80e542..72fd688 100644 (file)
@@ -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:
index f9e368b..7802669 100644 (file)
@@ -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 {