[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gai_strerror on mingw32
From: |
Bruno Haible |
Subject: |
Re: gai_strerror on mingw32 |
Date: |
Thu, 28 Jun 2007 01:16:16 +0200 |
User-agent: |
KMail/1.5.4 |
Eric Blake wrote:
> Won't work on cygwin.
> ...
> Checking for ws2tcpip.h is problematic. Instead, you need to reuse the check
> made in m4/sys_socket_h.m4, since ws2tcpip.h is present but cannot be
> compiled
> on cygwin.
Ah, right. I had forgotten about it. Thanks for catching this!!
How about this one?
2007-06-27 Simon Josefsson <address@hidden>
Bruno Haible <address@hidden>
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Require gl_HEADER_SYS_SOCKET
before using HAVE_WS2TCPIP_H. Check for gai_strerror through an
explicit link test, rather than AC_REPLACE_FUNCS - for mingw.
(gl_PREREQ_GETADDRINFO): Require gl_HEADER_SYS_SOCKET before using
HAVE_SYS_SOCKET_H and HAVE_WS2TCPIP_H.
--- m4/getaddrinfo.m4 9 Aug 2006 22:52:40 -0000 1.18
+++ m4/getaddrinfo.m4 27 Jun 2007 23:12:12 -0000
@@ -1,11 +1,12 @@
-# getaddrinfo.m4 serial 11
-dnl Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+# getaddrinfo.m4 serial 12
+dnl Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_GETADDRINFO],
[
+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
AC_MSG_NOTICE([checking how to do getaddrinfo, freeaddrinfo and getnameinfo])
AC_SEARCH_LIBS(getaddrinfo, [nsl socket])
@@ -28,12 +29,36 @@
fi
])
- AC_REPLACE_FUNCS(gai_strerror)
+ # We can't use AC_REPLACE_FUNCS here because gai_strerror may be an
+ # inline function declared in ws2tcpip.h, so we need to get that
+ # header included somehow.
+ AC_CHECK_HEADERS_ONCE(netdb.h)
+ AC_CACHE_CHECK([for gai_strerror (possibly via ws2tcpip.h)],
+ gl_cv_func_gai_strerror, [
+ AC_TRY_LINK([
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+], [gai_strerror (0);],
+ [gl_cv_func_gai_strerror=yes],
+ [gl_cv_func_gai_strerror=no])])
+ if test $gl_cv_func_gai_strerror = no; then
+ AC_LIBOBJ(gai_strerror)
+ fi
+
gl_PREREQ_GETADDRINFO
])
# Prerequisites of lib/getaddrinfo.h and lib/getaddrinfo.c.
AC_DEFUN([gl_PREREQ_GETADDRINFO], [
+ AC_REQUIRE([gl_HEADER_SYS_SOCKET])dnl for HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H
AC_SEARCH_LIBS(gethostbyname, [inet nsl])
AC_SEARCH_LIBS(getservbyname, [inet nsl socket xnet])
AC_CHECK_FUNCS(gethostbyname,, [