[vlc-devel] [3.0 PATCH 2/2] configure: Check for if_nametoindex in iphlpapi.h

Steve Lhomme robux4 at ycbcr.xyz
Thu Apr 2 16:40:57 CEST 2020


Looks OK, iphlpapi is available since Windows XP.

What if the compiler doesn't support Werror-implicit-function-declaration ?

On 2020-04-02 16:32, Martin Storsjö wrote:
> If the toolchain defaults to a newer version of windows, this
> function is available there, but the previous configure checks
> didn't notice it. Force testing with both compiling and linking,
> as the function exists in import libraries, but only is visible
> in headers since Vista.
> 
> On the master branch, the function was taken into use
> unconditionally in c0bf5aeefc611f8d1e1ace6111c88956c0a8fa6c.
> ---
>   configure.ac      | 15 +++++++++++++--
>   src/network/udp.c |  1 +
>   2 files changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 80bb46483b..1f54085cae 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -666,7 +666,7 @@ AC_SEARCH_LIBS(connect, [socket], [
>     ])
>   ], [
>     AS_IF([test "${SYS}" = "mingw32"], [
> -    SOCKET_LIBS="-lws2_32"
> +    SOCKET_LIBS="-lws2_32 -liphlpapi"
>     ])
>   ])
>   
> @@ -677,6 +677,7 @@ AC_SEARCH_LIBS([inet_pton], [nsl], [
>   ],, [${SOCKET_LIBS}])
>   
>   LIBS="${LIBS} ${SOCKET_LIBS}"
> +CFLAGS="${CFLAGS} -Werror-implicit-function-declaration"
>   AC_LINK_IFELSE([
>       AC_LANG_PROGRAM([#ifdef _WIN32
>           #include <ws2tcpip.h>
> @@ -691,8 +692,18 @@ AC_LINK_IFELSE([
>           char dst[[sizeof(struct in_addr)]];
>           inet_pton(AF_INET, "127.0.0.1", dst);
>       ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
> +AC_LINK_IFELSE([
> +    AC_LANG_PROGRAM([#ifdef _WIN32
> +        #include <iphlpapi.h>
> +        #else
> +        #include <sys/types.h>
> +        #include <sys/socket.h>
> +        #include <net/if.h>
> +        #endif], [
> +        if_nametoindex("");
> +    ])],[AC_DEFINE([HAVE_IF_NAMETOINDEX],[1],[Define to 1 if you have if_nametoindex function])])
>   AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
> -AC_CHECK_FUNCS([if_nameindex if_nametoindex])
> +AC_CHECK_FUNCS([if_nameindex])
>   VLC_RESTORE_FLAGS
>   AC_SUBST(SOCKET_LIBS)
>   
> diff --git a/src/network/udp.c b/src/network/udp.c
> index aaee9d88f4..2c1bc722de 100644
> --- a/src/network/udp.c
> +++ b/src/network/udp.c
> @@ -41,6 +41,7 @@
>   #ifdef _WIN32
>   #   undef EAFNOSUPPORT
>   #   define EAFNOSUPPORT WSAEAFNOSUPPORT
> +#   include <iphlpapi.h>
>   #else
>   #   include <unistd.h>
>   #   ifdef HAVE_NET_IF_H
> -- 
> 2.11.0
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> 


More information about the vlc-devel mailing list