_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