[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sys_socket: sockaddr_storage, new module alignof
From: |
Simon Josefsson |
Subject: |
Re: sys_socket: sockaddr_storage, new module alignof |
Date: |
Fri, 08 May 2009 20:38:22 +0200 |
User-agent: |
Gnus/5.110011 (No Gnus v0.11) Emacs/23.0.93 (gnu/linux) |
The test for sockaddr_storage failed incorrectly under mingw because the
HAVE_WS2TCPIP_H wasn't set. The patch below moves back the test of
ws2tcpip.h before the sockaddr_storage test.
There is something like a catch-22 here: to test for sockaddr_storage,
we need to test for ws2tcpip.h, but to test for that header file, we (if
I understand the intention behind the existing code) have to assume we
are replacing sys/socket.h, because on cygwin you should never include
ws2tcpip.h. I hope the patch is right, but testing is welcome.
/Simon
>From a40025e452a2be4e7222e2df512f6b955a6fc738 Mon Sep 17 00:00:00 2001
From: Simon Josefsson <address@hidden>
Date: Fri, 8 May 2009 20:34:18 +0200
Subject: [PATCH] m4/sys_socket_h.m4: Test for ws2tcpip.h earlier.
---
ChangeLog | 5 +++++
m4/sys_socket_h.m4 | 46 ++++++++++++++++++++++++++--------------------
2 files changed, 31 insertions(+), 20 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index aef3402..a3e7c3b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-08 Simon Josefsson <address@hidden>
+
+ * m4/sys_socket_h.m4: Test for ws2tcpip.h earlier, needed for
+ sockaddr_storage test.
+
2009-05-07 Simon Josefsson <address@hidden>
* modules/sys_socket (Makefile.am): Substitute
diff --git a/m4/sys_socket_h.m4 b/m4/sys_socket_h.m4
index 5bbaad8..d1cb9c2 100644
--- a/m4/sys_socket_h.m4
+++ b/m4/sys_socket_h.m4
@@ -40,6 +40,8 @@ AC_DEFUN([gl_HEADER_SYS_SOCKET],
else
SYS_SOCKET_H='sys/socket.h'
fi
+ # We need to check for ws2tcpip.h now.
+ gl_PREREQ_SYS_H_SOCKET
AC_CHECK_TYPES([struct sockaddr_storage],,,[
/* sys/types.h is not needed according to POSIX, but the
sys/socket.h in i386-unknown-freebsd4.10 and
@@ -57,31 +59,35 @@ AC_DEFUN([gl_HEADER_SYS_SOCKET],
SYS_SOCKET_H='sys/socket.h'
fi
if test -n "$SYS_SOCKET_H"; then
- dnl Check prerequisites of the <sys/socket.h> replacement.
- gl_CHECK_NEXT_HEADERS([sys/socket.h])
- if test $ac_cv_header_sys_socket_h = yes; then
- HAVE_SYS_SOCKET_H=1
- HAVE_WS2TCPIP_H=0
- else
- HAVE_SYS_SOCKET_H=0
- dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
- dnl the check for those headers unconditional; yet cygwin reports
- dnl that the headers are present but cannot be compiled (since on
- dnl cygwin, all socket information should come from sys/socket.h).
- AC_CHECK_HEADERS([ws2tcpip.h])
- if test $ac_cv_header_ws2tcpip_h = yes; then
- HAVE_WS2TCPIP_H=1
- else
- HAVE_WS2TCPIP_H=0
- fi
- fi
gl_PREREQ_SYS_H_WINSOCK2
- AC_SUBST([HAVE_SYS_SOCKET_H])
- AC_SUBST([HAVE_WS2TCPIP_H])
fi
AC_SUBST([SYS_SOCKET_H])
])
+AC_DEFUN([gl_PREREQ_SYS_H_SOCKET],
+[
+ dnl Check prerequisites of the <sys/socket.h> replacement.
+ gl_CHECK_NEXT_HEADERS([sys/socket.h])
+ if test $ac_cv_header_sys_socket_h = yes; then
+ HAVE_SYS_SOCKET_H=1
+ HAVE_WS2TCPIP_H=0
+ else
+ HAVE_SYS_SOCKET_H=0
+ dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
+ dnl the check for those headers unconditional; yet cygwin reports
+ dnl that the headers are present but cannot be compiled (since on
+ dnl cygwin, all socket information should come from sys/socket.h).
+ AC_CHECK_HEADERS([ws2tcpip.h])
+ if test $ac_cv_header_ws2tcpip_h = yes; then
+ HAVE_WS2TCPIP_H=1
+ else
+ HAVE_WS2TCPIP_H=0
+ fi
+ fi
+ AC_SUBST([HAVE_SYS_SOCKET_H])
+ AC_SUBST([HAVE_WS2TCPIP_H])
+])
+
# Common prerequisites of of the <sys/socket.h> replacement and of the
# <sys/select.h> replacement.
# Sets and substitutes HAVE_WINSOCK2_H.
--
1.6.2.4
- Re: sys_socket: sockaddr_storage, (continued)
- Re: sys_socket: sockaddr_storage, Bruno Haible, 2009/05/07
- Re: sys_socket: sockaddr_storage, Tom G. Christensen, 2009/05/08
- Re: sys_socket: sockaddr_storage, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Bruno Haible, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Bruno Haible, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof,
Simon Josefsson <=
- Re: sys_socket: sockaddr_storage, new module alignof, Bruno Haible, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/10
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Simon Josefsson, 2009/05/08
- Re: sys_socket: sockaddr_storage, new module alignof, Bruno Haible, 2009/05/12
- Re: sys_socket: sockaddr_storage, new module alignof, Eric Blake, 2009/05/12
- Re: new module alignof, Bruno Haible, 2009/05/31
- Re: sys_socket: sockaddr_storage, new module alignof, Eric Blake, 2009/05/12
- Re: new module alignof, Bruno Haible, 2009/05/31