_WIN32_WINNT is set to 0x600 (Windows Vista). I found that the problem was
that IPv6 support was disabled. This is because HAVE_IF_INDEXTONAME  is
defined only if APR_HAVE_IPV6. In arch/win32/apr_private.h [1]:
[[[
#if APR_HAVE_IPV6
#define HAVE_GETADDRINFO 1
#define HAVE_GETNAMEINFO 1
#define HAVE_IF_INDEXTONAME 1
#define HAVE_IF_NAMETOINDEX 1
#endif
]]]

[1]
https://demo-server.visualsvn.com/!/#asf/view/r1901931/apr/apr/branches/1.8.x/include/arch/win32/apr_private.h?line=143


On Wed, 15 Jun 2022 at 00:07, William A Rowe Jr <wr...@rowe-clan.net> wrote:

> Not sure what you have going on here. A too-old flavor of the Windows
> SDK, or a bad choice
> of the minimum SDK version? It seems the HAVE_IF_INDEXTONAME is set in the
> include/arch/win32/apr_private.h, which is included by
> include/arch/win32/apr_arch_misc.h,
> which then does this;
> #if defined(HAVE_IF_INDEXTONAME) && defined(_MSC_VER)
> #include <Iphlpapi.h>
> #endif
>
> If the if_indextoname/if_nametoindex functions aren't resolved, this
> logic must be avoided;
> #ifdef if_nametoindex
> #undef if_nametoindex
> #endif
> APR_DECLARE_LATE_DLL_FUNC(DLL_IPHLPAPI, NET_IFINDEX, WINAPI,
> if_nametoindex, 0, (
>     IN PCSTR InterfaceName),
>     (InterfaceName));
> #define if_nametoindex apr_winapi_if_nametoindex
>
> #ifdef if_indextoname
> #undef if_indextoname
> #endif
> APR_DECLARE_LATE_DLL_FUNC(DLL_IPHLPAPI, PCHAR, NETIOAPI_API_,
> if_indextoname, 0, (
>     NET_IFINDEX InterfaceIndex,
>     PCHAR       InterfaceName),
>     (InterfaceIndex, InterfaceName));
> #define if_indextoname apr_winapi_if_indextoname
>
> Obviously those NET_IFINDEX declarations are required for this code to
> succeed.
>
> But the biggest point is that _WIN32_WINNT needs to be set to latest
> 0x1010 and Windows
> SDK needs to be up to date in order to conditionally support all
> modern API calls, which is
> most of what winsock wants to provide for modern apps (even truer unix
> domain sockets).
> The entire logic is to gracefully not support those calls,
> conditionally, when the function
> doesn't exist on an older version of the OS.
>
> I checked, it's building fine here, did you forget to mention your
> arguments to the cmake
> invocation so we can sort this out? Which MSVC and which Windows SDK?
>
>
>
> On Tue, Jun 14, 2022 at 8:02 AM Ivan Zhakov via dev <dev@apr.apache.org>
> wrote:
> >
> > When building using CMake:
> >
>  
> C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1432~1.313\bin\Hostx64\x64\cl.exe
> /nologo -DAPR_APP -DWINNT -IC:\Ivan\SVN\apr\apr-1.8.x\out\build\x64-Debug
> -IC:\Ivan\SVN\apr\apr-1.8.x\include
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\arch\unix
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\private /DWIN32 /D_WINDOWS /W3 /MDd /Zi
> /Ob0 /Od /RTC1 /showIncludes
> /FoCMakeFiles\libaprapp-1.dir\misc\win32\apr_app.c.obj
> /FdCMakeFiles\libaprapp-1.dir\libaprapp-1.pdb /FS -c
> C:\Ivan\SVN\apr\apr-1.8.x\misc\win32\apr_app.c
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2143: syntax error: missing ')' before '*'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2143: syntax error: missing '{' before '*'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ')'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2061: syntax error: identifier 'apr_winapi_pfn_if_indextoname'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ';'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504): error
> C2513: ' ': no variable declared before '='
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2065: 'apr_winapi_pfn_if_indextoname': undeclared identifier
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507):
> warning C4047: '=': 'int' differs in levels of indirection from 'int
> *(__cdecl *)(NET_IFINDEX,PCHAR)'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2146: syntax error: missing ';' before identifier 'apr_load_dll_func'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504): error
> C2100: illegal indirection
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504): error
> C2064: term does not evaluate to a function taking 0 arguments
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504):
> warning C4033: 'apr_winapi_if_indextoname' must return a value
> >   [3/239] Building C object
> CMakeFiles\aprapp-1.dir\misc\win32\internal.c.obj
> >   FAILED: CMakeFiles/aprapp-1.dir/misc/win32/internal.c.obj
> >
>  
> C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1432~1.313\bin\Hostx64\x64\cl.exe
> /nologo -DAPR_APP -DAPR_DECLARE_STATIC -DWINNT
> -IC:\Ivan\SVN\apr\apr-1.8.x\out\build\x64-Debug
> -IC:\Ivan\SVN\apr\apr-1.8.x\include
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\arch\unix
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\private /DWIN32 /D_WINDOWS /W3 /MDd /Zi
> /Ob0 /Od /RTC1 /showIncludes
> /FoCMakeFiles\aprapp-1.dir\misc\win32\internal.c.obj
> /FdCMakeFiles\aprapp-1.dir\aprapp-1.pdb /FS -c
> C:\Ivan\SVN\apr\apr-1.8.x\misc\win32\internal.c
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2143: syntax error: missing ')' before '__cdecl'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2143: syntax error: missing '{' before '__cdecl'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2059: syntax error: ')'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2165: 'left-side modifier': cannot modify pointers to data
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2061: syntax error: identifier 'apr_winapi_pfn_if_nametoindex'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2059: syntax error: ';'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(496): error
> C2513: ' ': no variable declared before '='
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2065: 'apr_winapi_pfn_if_nametoindex': undeclared identifier
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498):
> warning C4047: '=': 'int' differs in levels of indirection from 'int
> *(__cdecl *)(PCSTR)'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2146: syntax error: missing ';' before identifier 'apr_load_dll_func'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2061: syntax error: identifier 'apr_winapi_if_nametoindex'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2059: syntax error: '<parameter-list>'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2143: syntax error: missing ')' before '*'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2143: syntax error: missing '{' before '*'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ')'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2146: syntax error: missing ')' before identifier 'InterfaceIndex'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2061: syntax error: identifier 'InterfaceIndex'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ';'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ','
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2061: syntax error: identifier 'apr_winapi_pfn_if_indextoname'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504): error
> C2513: ' ': no variable declared before '='
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2065: 'apr_winapi_pfn_if_indextoname': undeclared identifier
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2065: 'apr_winapi_fpt_if_indextoname': undeclared identifier
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2146: syntax error: missing ';' before identifier 'apr_load_dll_func'
> >   [4/239] Building C object
> CMakeFiles\libaprapp-1.dir\misc\win32\internal.c.obj
> >   FAILED: CMakeFiles/libaprapp-1.dir/misc/win32/internal.c.obj
> >
>  
> C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1432~1.313\bin\Hostx64\x64\cl.exe
> /nologo -DAPR_APP -DWINNT -IC:\Ivan\SVN\apr\apr-1.8.x\out\build\x64-Debug
> -IC:\Ivan\SVN\apr\apr-1.8.x\include
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\arch\unix
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\private /DWIN32 /D_WINDOWS /W3 /MDd /Zi
> /Ob0 /Od /RTC1 /showIncludes
> /FoCMakeFiles\libaprapp-1.dir\misc\win32\internal.c.obj
> /FdCMakeFiles\libaprapp-1.dir\libaprapp-1.pdb /FS -c
> C:\Ivan\SVN\apr\apr-1.8.x\misc\win32\internal.c
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2143: syntax error: missing ')' before '__cdecl'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2143: syntax error: missing '{' before '__cdecl'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2059: syntax error: ')'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2165: 'left-side modifier': cannot modify pointers to data
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2061: syntax error: identifier 'apr_winapi_pfn_if_nametoindex'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2059: syntax error: ';'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(496): error
> C2513: ' ': no variable declared before '='
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2065: 'apr_winapi_pfn_if_nametoindex': undeclared identifier
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498):
> warning C4047: '=': 'int' differs in levels of indirection from 'int
> *(__cdecl *)(PCSTR)'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2146: syntax error: missing ';' before identifier 'apr_load_dll_func'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2061: syntax error: identifier 'apr_winapi_if_nametoindex'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(498): error
> C2059: syntax error: '<parameter-list>'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2143: syntax error: missing ')' before '*'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2143: syntax error: missing '{' before '*'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ')'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2146: syntax error: missing ')' before identifier 'InterfaceIndex'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2061: syntax error: identifier 'InterfaceIndex'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ';'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ','
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2061: syntax error: identifier 'apr_winapi_pfn_if_indextoname'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504): error
> C2513: ' ': no variable declared before '='
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2065: 'apr_winapi_pfn_if_indextoname': undeclared identifier
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2065: 'apr_winapi_fpt_if_indextoname': undeclared identifier
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2146: syntax error: missing ';' before identifier 'apr_load_dll_func'
> >   [5/239] Building C object
> CMakeFiles\aprapp-1.dir\misc\win32\apr_app.c.obj
> >   FAILED: CMakeFiles/aprapp-1.dir/misc/win32/apr_app.c.obj
> >
>  
> C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1432~1.313\bin\Hostx64\x64\cl.exe
> /nologo -DAPR_APP -DAPR_DECLARE_STATIC -DWINNT
> -IC:\Ivan\SVN\apr\apr-1.8.x\out\build\x64-Debug
> -IC:\Ivan\SVN\apr\apr-1.8.x\include
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\arch\unix
> -IC:\Ivan\SVN\apr\apr-1.8.x\include\private /DWIN32 /D_WINDOWS /W3 /MDd /Zi
> /Ob0 /Od /RTC1 /showIncludes
> /FoCMakeFiles\aprapp-1.dir\misc\win32\apr_app.c.obj
> /FdCMakeFiles\aprapp-1.dir\aprapp-1.pdb /FS -c
> C:\Ivan\SVN\apr\apr-1.8.x\misc\win32\apr_app.c
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2143: syntax error: missing ')' before '*'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2143: syntax error: missing '{' before '*'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ')'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2061: syntax error: identifier 'apr_winapi_pfn_if_indextoname'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2059: syntax error: ';'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504): error
> C2513: ' ': no variable declared before '='
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2065: 'apr_winapi_pfn_if_indextoname': undeclared identifier
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507):
> warning C4047: '=': 'int' differs in levels of indirection from 'int
> *(__cdecl *)(NET_IFINDEX,PCHAR)'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(507): error
> C2146: syntax error: missing ';' before identifier 'apr_load_dll_func'
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504): error
> C2100: illegal indirection
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504): error
> C2064: term does not evaluate to a function taking 0 arguments
> > C:\Ivan\SVN\apr\apr-1.8.x\include\arch\win32\apr_arch_misc.h(504):
> warning C4033: 'apr_winapi_if_indextoname' must return a value
> >   [6/239] Linking C executable gen_test_char.exe
> >   ninja: build stopped: subcommand failed.
> >
> >
> > --
> > Ivan Zhakov
>


-- 
Ivan Zhakov

Reply via email to