bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gai_strerror on mingw32


From: Simon Josefsson
Subject: Re: gai_strerror on mingw32
Date: Thu, 28 Jun 2007 11:25:42 +0200
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/22.0.95 (gnu/linux)

Bruno Haible <address@hidden> writes:

> 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?

Looks good to me, thanks for the careful review.  I installed the patch
below.

/Simon

> 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,, [




reply via email to

[Prev in Thread] Current Thread [Next in Thread]