2007-06-27 Simon Josefsson <simon@josefsson.org>
authorSimon Josefsson <simon@josefsson.org>
Thu, 28 Jun 2007 09:25:21 +0000 (09:25 +0000)
committerSimon Josefsson <simon@josefsson.org>
Thu, 28 Jun 2007 09:25:21 +0000 (09:25 +0000)
    Bruno Haible  <bruno@clisp.org>

* 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.

ChangeLog
m4/getaddrinfo.m4

index 3445ccf..4be24be 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-06-27  Simon Josefsson  <simon@josefsson.org>
+           Bruno Haible  <bruno@clisp.org>
+
+       * 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.
+
 2007-06-27  Bruno Haible  <bruno@clisp.org>
 
        * build-aux/config.rpath: Upgrade to libtool-1.5.24.
index db285d9..4a1e09f 100644 (file)
@@ -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 @@ AC_DEFUN([gl_GETADDRINFO],
     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,, [