From c02c8ddc866129d65f1dec82e4ef4d36410f1cab Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 25 Oct 2023 00:34:01 +0000 Subject: [PATCH] fixup --- curl.dev.patch | 1199 ------------------------------------------------ 1 file changed, 1199 deletions(-) diff --git a/curl.dev.patch b/curl.dev.patch index 6e7579573..3cbd788ce 100644 --- a/curl.dev.patch +++ b/curl.dev.patch @@ -47,1202 +47,3 @@ index a2e294f8f..6f0a2126a 100644 #endif /* CURLRES_IPV6 */ memset(&hints, 0, sizeof(hints)); -diff --git a/CMake/CurlTests.c b/CMake/CurlTests.c -index ea80ec89ab9fd..67f146899bdde 100644 ---- a/CMake/CurlTests.c -+++ b/CMake/CurlTests.c -@@ -23,7 +23,6 @@ - ***************************************************************************/ - - #ifdef HAVE_FCNTL_O_NONBLOCK -- - /* headers for FCNTL_O_NONBLOCK test */ - #include - #include -@@ -45,14 +44,13 @@ - #error "O_NONBLOCK does not work on this platform" - #endif - --int --main () -+int main(void) - { -- /* O_NONBLOCK source test */ -- int flags = 0; -- if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) -- return 1; -- return 0; -+ /* O_NONBLOCK source test */ -+ int flags = 0; -+ if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) -+ return 1; -+ return 0; - } - #endif - -@@ -108,36 +106,16 @@ int main(void) - } - #endif - --#ifdef HAVE_SOCKLEN_T --#ifdef _WIN32 --#include --#else --#include --#include --#endif --int --main () --{ --if ((socklen_t *) 0) -- return 0; --if (sizeof (socklen_t)) -- return 0; -- ; -- return 0; --} --#endif - #ifdef HAVE_IN_ADDR_T - #include - #include - #include -- --int --main () -+int main(void) - { --if ((in_addr_t *) 0) -- return 0; --if (sizeof (in_addr_t)) -- return 0; -+ if((in_addr_t *) 0) -+ return 0; -+ if(sizeof(in_addr_t)) -+ return 0; - ; - return 0; - } -@@ -150,11 +128,10 @@ if (sizeof (in_addr_t)) - #ifdef HAVE_STDBOOL_H - #include - #endif --int --main () -+int main(void) - { --if (sizeof (bool *) ) -- return 0; -+ if(sizeof(bool *)) -+ return 0; - ; - return 0; - } -@@ -165,8 +142,9 @@ if (sizeof (bool *) ) - #include - #include - #include --int main() { return 0; } -+int main(void) { return 0; } - #endif -+ - #ifdef HAVE_FILE_OFFSET_BITS - #ifdef _FILE_OFFSET_BITS - #undef _FILE_OFFSET_BITS -@@ -181,104 +159,95 @@ int main() { return 0; } - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; --int main () { ; return 0; } -+int main(void) { ; return 0; } - #endif -+ - #ifdef HAVE_IOCTLSOCKET - /* includes start */ - #ifdef HAVE_WINDOWS_H - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif --# include - # ifdef HAVE_WINSOCK2_H - # include - # endif -+# include - #endif -- --int --main () -+int main(void) - { -- --/* ioctlsocket source code */ -- int socket; -- unsigned long flags = ioctlsocket(socket, FIONBIO, &flags); -- -+ /* ioctlsocket source code */ -+ int socket; -+ unsigned long flags = ioctlsocket(socket, FIONBIO, &flags); - ; - return 0; - } - - #endif -+ - #ifdef HAVE_IOCTLSOCKET_CAMEL - /* includes start */ - #ifdef HAVE_WINDOWS_H - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif --# include - # ifdef HAVE_WINSOCK2_H - # include - # endif -+# include - #endif -- --int --main () -+int main(void) - { -- --/* IoctlSocket source code */ -- if(0 != IoctlSocket(0, 0, 0)) -- return 1; -+ /* IoctlSocket source code */ -+ if(0 != IoctlSocket(0, 0, 0)) -+ return 1; - ; - return 0; - } - #endif -+ - #ifdef HAVE_IOCTLSOCKET_CAMEL_FIONBIO - /* includes start */ - #ifdef HAVE_WINDOWS_H - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif --# include - # ifdef HAVE_WINSOCK2_H - # include - # endif -+# include - #endif -- --int --main () -+int main(void) - { -- --/* IoctlSocket source code */ -- long flags = 0; -- if(0 != IoctlSocket(0, FIONBIO, &flags)) -- return 1; -+ /* IoctlSocket source code */ -+ long flags = 0; -+ if(0 != IoctlSocket(0, FIONBIO, &flags)) -+ return 1; - ; - return 0; - } - #endif -+ - #ifdef HAVE_IOCTLSOCKET_FIONBIO - /* includes start */ - #ifdef HAVE_WINDOWS_H - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif --# include - # ifdef HAVE_WINSOCK2_H - # include - # endif -+# include - #endif -- --int --main () -+int main(void) - { -- -- int flags = 0; -- if(0 != ioctlsocket(0, FIONBIO, &flags)) -- return 1; -- -+ int flags = 0; -+ if(0 != ioctlsocket(0, FIONBIO, &flags)) -+ return 1; - ; - return 0; - } - #endif -+ - #ifdef HAVE_IOCTL_FIONBIO - /* headers for FIONBIO test */ - /* includes start */ -@@ -297,19 +266,16 @@ main () - #ifdef HAVE_STROPTS_H - # include - #endif -- --int --main () -+int main(void) - { -- -- int flags = 0; -- if(0 != ioctl(0, FIONBIO, &flags)) -- return 1; -- -+ int flags = 0; -+ if(0 != ioctl(0, FIONBIO, &flags)) -+ return 1; - ; - return 0; - } - #endif -+ - #ifdef HAVE_IOCTL_SIOCGIFADDR - /* headers for FIONBIO test */ - /* includes start */ -@@ -329,28 +295,26 @@ main () - # include - #endif - #include -- --int --main () -+int main(void) - { -- struct ifreq ifr; -- if(0 != ioctl(0, SIOCGIFADDR, &ifr)) -- return 1; -- -+ struct ifreq ifr; -+ if(0 != ioctl(0, SIOCGIFADDR, &ifr)) -+ return 1; - ; - return 0; - } - #endif -+ - #ifdef HAVE_SETSOCKOPT_SO_NONBLOCK - /* includes start */ - #ifdef HAVE_WINDOWS_H - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif --# include - # ifdef HAVE_WINSOCK2_H - # include - # endif -+# include - #endif - /* includes start */ - #ifdef HAVE_SYS_TYPES_H -@@ -360,30 +324,30 @@ main () - # include - #endif - /* includes end */ -- --int --main () -+int main(void) - { -- if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0)) -- return 1; -+ if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0)) -+ return 1; - ; - return 0; - } - #endif -+ - #ifdef HAVE_GLIBC_STRERROR_R - #include - #include - - void check(char c) {} - --int --main () { -+int main(void) -+{ - char buffer[1024]; - /* This will not compile if strerror_r does not return a char* */ - check(strerror_r(EACCES, buffer, sizeof(buffer))[0]); - return 0; - } - #endif -+ - #ifdef HAVE_POSIX_STRERROR_R - #include - #include -@@ -391,46 +355,51 @@ main () { - /* float, because a pointer can't be implicitly cast to float */ - void check(float f) {} - --int --main () { -+int main(void) -+{ - char buffer[1024]; - /* This will not compile if strerror_r does not return an int */ - check(strerror_r(EACCES, buffer, sizeof(buffer))); - return 0; - } - #endif -+ - #ifdef HAVE_FSETXATTR_6 - #include /* header from libc, not from libattr */ --int --main() { -+int main(void) -+{ - fsetxattr(0, 0, 0, 0, 0, 0); - return 0; - } - #endif -+ - #ifdef HAVE_FSETXATTR_5 - #include /* header from libc, not from libattr */ --int --main() { -+int main(void) -+{ - fsetxattr(0, 0, 0, 0, 0); - return 0; - } - #endif -+ - #ifdef HAVE_CLOCK_GETTIME_MONOTONIC - #include --int --main() { -+int main(void) -+{ - struct timespec ts = {0, 0}; - clock_gettime(CLOCK_MONOTONIC, &ts); - return 0; - } - #endif -+ - #ifdef HAVE_BUILTIN_AVAILABLE --int --main() { -+int main(void) -+{ - if(__builtin_available(macOS 10.12, *)) {} - return 0; - } - #endif -+ - #ifdef HAVE_VARIADIC_MACROS_C99 - #define c99_vmacro3(first, ...) fun3(first, __VA_ARGS__) - #define c99_vmacro2(first, ...) fun2(first, __VA_ARGS__) -@@ -438,15 +407,17 @@ main() { - int fun3(int arg1, int arg2, int arg3); - int fun2(int arg1, int arg2); - --int fun3(int arg1, int arg2, int arg3) { -+int fun3(int arg1, int arg2, int arg3) -+{ - return arg1 + arg2 + arg3; - } --int fun2(int arg1, int arg2) { -+int fun2(int arg1, int arg2) -+{ - return arg1 + arg2; - } - --int --main() { -+int main(void) -+{ - int res3 = c99_vmacro3(1, 2, 3); - int res2 = c99_vmacro2(1, 2); - (void)res3; -@@ -454,6 +425,7 @@ main() { - return 0; - } - #endif -+ - #ifdef HAVE_VARIADIC_MACROS_GCC - #define gcc_vmacro3(first, args...) fun3(first, args) - #define gcc_vmacro2(first, args...) fun2(first, args) -@@ -461,15 +433,17 @@ main() { - int fun3(int arg1, int arg2, int arg3); - int fun2(int arg1, int arg2); - --int fun3(int arg1, int arg2, int arg3) { -+int fun3(int arg1, int arg2, int arg3) -+{ - return arg1 + arg2 + arg3; - } --int fun2(int arg1, int arg2) { -+int fun2(int arg1, int arg2) -+{ - return arg1 + arg2; - } - --int --main() { -+int main(void) -+{ - int res3 = gcc_vmacro3(1, 2, 3); - int res2 = gcc_vmacro2(1, 2); - (void)res3; -@@ -477,6 +451,7 @@ main() { - return 0; - } - #endif -+ - #ifdef HAVE_ATOMIC - /* includes start */ - #ifdef HAVE_SYS_TYPES_H -@@ -490,17 +465,24 @@ main() { - #endif - /* includes end */ - --int --main() { -+int main(void) -+{ - _Atomic int i = 1; - i = 0; /* Force an atomic-write operation. */ - return i; - } - #endif -+ - #ifdef HAVE_WIN32_WINNT - /* includes start */ --#ifdef WIN32 --# include "../lib/setup-win32.h" -+#ifdef _WIN32 -+# ifndef WIN32_LEAN_AND_MEAN -+# define WIN32_LEAN_AND_MEAN -+# endif -+# ifndef NOGDI -+# define NOGDI -+# endif -+# include - #endif - /* includes end */ - -@@ -508,8 +490,8 @@ main() { - #define expand(x) enquote(x) - #pragma message("_WIN32_WINNT=" expand(_WIN32_WINNT)) - --int --main() { -+int main(void) -+{ - return 0; - } - #endif -diff --git a/CMake/OtherTests.cmake b/CMake/OtherTests.cmake -index f1902d73a31f5..a613f6ecdc15b 100644 ---- a/CMake/OtherTests.cmake -+++ b/CMake/OtherTests.cmake -@@ -35,13 +35,13 @@ endmacro() - - set(signature_call_conv) - if(HAVE_WINDOWS_H) -- add_header_include(HAVE_WINSOCK2_H "winsock2.h") -- add_header_include(HAVE_WINDOWS_H "windows.h") - set(_source_epilogue - "${_source_epilogue}\n#ifndef WIN32_LEAN_AND_MEAN\n#define WIN32_LEAN_AND_MEAN\n#endif") -+ add_header_include(HAVE_WINSOCK2_H "winsock2.h") -+ add_header_include(HAVE_WINDOWS_H "windows.h") - set(signature_call_conv "PASCAL") - if(WIN32) -- set(CMAKE_REQUIRED_LIBRARIES ws2_32) -+ set(CMAKE_REQUIRED_LIBRARIES "ws2_32") - endif() - else() - add_header_include(HAVE_SYS_TYPES_H "sys/types.h") -@@ -71,11 +71,11 @@ int main(void) { - }" HAVE_STRUCT_TIMEVAL) - - if(HAVE_WINDOWS_H) -- set(CMAKE_EXTRA_INCLUDE_FILES winsock2.h) -+ set(CMAKE_EXTRA_INCLUDE_FILES "winsock2.h") - else() - set(CMAKE_EXTRA_INCLUDE_FILES) - if(HAVE_SYS_SOCKET_H) -- set(CMAKE_EXTRA_INCLUDE_FILES sys/socket.h) -+ set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h") - endif() - endif() - -@@ -201,7 +201,7 @@ if(NOT DEFINED HAVE_GETADDRINFO_THREADSAFE) - set(_source_epilogue "${_save_epilogue}") - endif() - --if(NOT DEFINED HAVE_CLOCK_GETTIME_MONOTONIC_RAW) -+if(NOT WIN32 AND NOT DEFINED HAVE_CLOCK_GETTIME_MONOTONIC_RAW) - set(_save_epilogue "${_source_epilogue}") - set(_source_epilogue "#undef inline") - -diff --git a/CMake/Platforms/WindowsCache.cmake b/CMake/Platforms/WindowsCache.cmake -index 5daec0e1e077d..66ebab2cfd601 100644 ---- a/CMake/Platforms/WindowsCache.cmake -+++ b/CMake/Platforms/WindowsCache.cmake -@@ -21,113 +21,177 @@ - # SPDX-License-Identifier: curl - # - ########################################################################### --if(NOT UNIX) -- if(WIN32) -+if(NOT WIN32) -+ message(FATAL_ERROR "This file should be included on Windows platform only") -+endif() - -- set(HAVE_WINDOWS_H 1) -- set(HAVE_WS2TCPIP_H 1) -- set(HAVE_WINSOCK2_H 1) -+set(HAVE_LOCALE_H 1) - -- if(MINGW) -- set(HAVE_SNPRINTF 1) -- set(HAVE_UNISTD_H 1) -+if(MINGW) -+ set(HAVE_SNPRINTF 1) -+ set(HAVE_UNISTD_H 1) -+ set(HAVE_LIBGEN_H 1) -+ set(HAVE_STDDEF_H 1) # detected by CMake internally in check_type_size() -+ set(HAVE_STDINT_H 1) -+ set(HAVE_STDBOOL_H 1) -+ set(HAVE_BOOL_T "${HAVE_STDBOOL_H}") -+ set(HAVE_INTTYPES_H 1) -+ set(HAVE_STRTOLL 1) -+ set(HAVE_BASENAME 1) -+ set(HAVE_STRCASECMP 1) -+ set(HAVE_FTRUNCATE 1) -+ set(HAVE_SYS_PARAM_H 1) -+ set(HAVE_SYS_TIME_H 1) -+ set(HAVE_GETTIMEOFDAY 1) -+else() -+ set(HAVE_LIBGEN_H 0) -+ set(HAVE_STRCASECMP 0) -+ set(HAVE_FTRUNCATE 0) -+ set(HAVE_SYS_PARAM_H 0) -+ set(HAVE_SYS_TIME_H 0) -+ set(HAVE_GETTIMEOFDAY 0) -+ if(MSVC) -+ set(HAVE_UNISTD_H 0) -+ set(HAVE_LOCALE_H 1) -+ set(HAVE_STDDEF_H 1) # detected by CMake internally in check_type_size() -+ set(HAVE_STDATOMIC_H 0) -+ if(NOT MSVC_VERSION LESS 1400) -+ set(HAVE_VARIADIC_MACROS_C99 1) -+ else() -+ set(HAVE_VARIADIC_MACROS_C99 0) -+ endif() -+ if(NOT MSVC_VERSION LESS 1600) -+ set(HAVE_STDINT_H 1) -+ else() -+ set(HAVE_STDINT_H 0) -+ endif() -+ if(NOT MSVC_VERSION LESS 1800) -+ set(HAVE_STDBOOL_H 1) - set(HAVE_INTTYPES_H 1) - set(HAVE_STRTOLL 1) -- set(HAVE_BASENAME 1) -- elseif(MSVC) -- if(NOT MSVC_VERSION LESS 1800) -- set(HAVE_INTTYPES_H 1) -- set(HAVE_STRTOLL 1) -- else() -- set(HAVE_INTTYPES_H 0) -- set(HAVE_STRTOLL 0) -- endif() -- if(NOT MSVC_VERSION LESS 1900) -- set(HAVE_SNPRINTF 1) -- else() -- set(HAVE_SNPRINTF 0) -- endif() -- set(HAVE_BASENAME 0) -+ else() -+ set(HAVE_STDBOOL_H 0) -+ set(HAVE_INTTYPES_H 0) -+ set(HAVE_STRTOLL 0) -+ endif() -+ set(HAVE_BOOL_T "${HAVE_STDBOOL_H}") -+ if(NOT MSVC_VERSION LESS 1900) -+ set(HAVE_SNPRINTF 1) -+ else() -+ set(HAVE_SNPRINTF 0) - endif() -+ set(HAVE_BASENAME 0) -+ set(HAVE_STRTOK_R 0) -+ set(HAVE_FILE_OFFSET_BITS 0) -+ set(HAVE_ATOMIC 0) -+ endif() -+endif() - -- set(HAVE_LIBSOCKET 0) -- set(HAVE_GETHOSTNAME 1) -- set(HAVE_LIBZ 0) -+set(HAVE_FCHMOD 0) -+set(HAVE_SOCKETPAIR 0) -+set(HAVE_SENDMSG 0) -+set(HAVE_ALARM 0) -+set(HAVE_FCNTL 0) -+set(HAVE_GETPPID 0) -+set(HAVE_UTIMES 0) -+set(HAVE_GETPWUID_R 0) -+set(HAVE_STRERROR_R 0) -+set(HAVE_SIGINTERRUPT 0) -+set(HAVE_PIPE 0) -+set(HAVE_IF_NAMETOINDEX 0) -+set(HAVE_GETRLIMIT 0) -+set(HAVE_SETRLIMIT 0) -+set(HAVE_FSETXATTR 0) -+set(HAVE_LIBSOCKET 0) -+set(HAVE_SETLOCALE 1) -+set(HAVE_SETMODE 1) -+set(HAVE_GETPEERNAME 1) -+set(HAVE_GETSOCKNAME 1) -+set(HAVE_GETHOSTNAME 1) -+set(HAVE_LIBZ 0) - -- set(HAVE_ARC4RANDOM 0) -- set(HAVE_FNMATCH 0) -- set(HAVE_SCHED_YIELD 0) -- set(HAVE_ARPA_INET_H 0) -- set(HAVE_FCNTL_H 1) -- set(HAVE_IFADDRS_H 0) -- set(HAVE_IO_H 1) -- set(HAVE_NETDB_H 0) -- set(HAVE_NETINET_IN_H 0) -- set(HAVE_NETINET_TCP_H 0) -- set(HAVE_NETINET_UDP_H 0) -- set(HAVE_NET_IF_H 0) -- set(HAVE_IOCTL_SIOCGIFADDR 0) -- set(HAVE_POLL_H 0) -- set(HAVE_POLL_FINE 0) -- set(HAVE_PWD_H 0) -- set(HAVE_STRINGS_H 0) -- set(HAVE_SYS_FILIO_H 0) -- set(HAVE_SYS_WAIT_H 0) -- set(HAVE_SYS_IOCTL_H 0) -- set(HAVE_SYS_PARAM_H 0) -- set(HAVE_SYS_POLL_H 0) -- set(HAVE_SYS_RESOURCE_H 0) -- set(HAVE_SYS_SELECT_H 0) -- set(HAVE_SYS_SOCKET_H 0) -- set(HAVE_SYS_SOCKIO_H 0) -- set(HAVE_SYS_STAT_H 1) -- set(HAVE_SYS_TIME_H 0) -- set(HAVE_SYS_TYPES_H 1) -- set(HAVE_SYS_UN_H 0) -- set(HAVE_SYS_UTIME_H 1) -- set(HAVE_TERMIOS_H 0) -- set(HAVE_TERMIO_H 0) -- set(HAVE_UTIME_H 0) -+set(HAVE_RECV 1) -+set(HAVE_SEND 1) -+set(HAVE_STROPTS_H 0) -+set(HAVE_SYS_XATTR_H 0) -+set(HAVE_ARC4RANDOM 0) -+set(HAVE_FNMATCH 0) -+set(HAVE_SCHED_YIELD 0) -+set(HAVE_ARPA_INET_H 0) -+set(HAVE_FCNTL_H 1) -+set(HAVE_IFADDRS_H 0) -+set(HAVE_IO_H 1) -+set(HAVE_NETDB_H 0) -+set(HAVE_NETINET_IN_H 0) -+set(HAVE_NETINET_TCP_H 0) -+set(HAVE_NETINET_UDP_H 0) -+set(HAVE_NET_IF_H 0) -+set(HAVE_IOCTL_SIOCGIFADDR 0) -+set(HAVE_POLL_H 0) -+set(HAVE_POLL_FINE 0) -+set(HAVE_PWD_H 0) -+set(HAVE_STRINGS_H 0) # mingw-w64 has it (wrapper to string.h) -+set(HAVE_SYS_FILIO_H 0) -+set(HAVE_SYS_WAIT_H 0) -+set(HAVE_SYS_IOCTL_H 0) -+set(HAVE_SYS_POLL_H 0) -+set(HAVE_SYS_RESOURCE_H 0) -+set(HAVE_SYS_SELECT_H 0) -+set(HAVE_SYS_SOCKET_H 0) -+set(HAVE_SYS_SOCKIO_H 0) -+set(HAVE_SYS_STAT_H 1) -+set(HAVE_SYS_TYPES_H 1) -+set(HAVE_SYS_UN_H 0) -+set(HAVE_SYS_UTIME_H 1) -+set(HAVE_TERMIOS_H 0) -+set(HAVE_TERMIO_H 0) -+set(HAVE_UTIME_H 0) # mingw-w64 has it (wrapper to sys/utime.h) - -- set(HAVE_FSEEKO 0) -- set(HAVE__FSEEKI64 1) -- set(HAVE_SOCKET 1) -- set(HAVE_SELECT 1) -- set(HAVE_STRDUP 1) -- set(HAVE_STRICMP 1) -- set(HAVE_STRCMPI 1) -- set(HAVE_MEMRCHR 0) -- set(HAVE_GETTIMEOFDAY 0) -- set(HAVE_CLOSESOCKET 1) -- set(HAVE_SIGSETJMP 0) -- set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1) -- set(HAVE_GETPASS_R 0) -- set(HAVE_GETPWUID 0) -- set(HAVE_GETEUID 0) -- set(HAVE_UTIME 1) -- set(HAVE_GMTIME_R 0) -- set(HAVE_CLOCK_GETTIME_MONOTONIC_RAW 0) -- set(HAVE_GETHOSTBYNAME_R 0) -- set(HAVE_SIGNAL 1) -- set(HAVE_LINUX_TCP_H 0) -- set(HAVE_GLIBC_STRERROR_R 0) -- set(HAVE_MACH_ABSOLUTE_TIME 0) -- set(HAVE_GETIFADDRS 0) -+set(HAVE_FSEEKO 0) -+set(HAVE__FSEEKI64 1) -+set(HAVE_SOCKET 1) -+set(HAVE_SELECT 1) -+set(HAVE_STRDUP 1) -+set(HAVE_STRICMP 1) -+set(HAVE_STRCMPI 1) -+set(HAVE_MEMRCHR 0) -+set(HAVE_CLOSESOCKET 1) -+set(HAVE_SIGSETJMP 0) -+set(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1) -+set(HAVE_GETPASS_R 0) -+set(HAVE_GETPWUID 0) -+set(HAVE_GETEUID 0) -+set(HAVE_UTIME 1) -+set(HAVE_GMTIME_R 0) -+set(HAVE_GETHOSTBYNAME_R 0) -+set(HAVE_SIGNAL 1) -+set(HAVE_SIGACTION 0) -+set(HAVE_LINUX_TCP_H 0) -+set(HAVE_GLIBC_STRERROR_R 0) -+set(HAVE_MACH_ABSOLUTE_TIME 0) -+set(HAVE_GETIFADDRS 0) -+set(HAVE_FCNTL_O_NONBLOCK 0) -+set(HAVE_IOCTLSOCKET 1) -+set(HAVE_IOCTLSOCKET_CAMEL 0) -+set(HAVE_IOCTLSOCKET_CAMEL_FIONBIO 0) -+set(HAVE_IOCTLSOCKET_FIONBIO 1) -+set(HAVE_IOCTL_FIONBIO 0) -+set(HAVE_SETSOCKOPT_SO_NONBLOCK 0) -+set(HAVE_POSIX_STRERROR_R 0) -+set(HAVE_BUILTIN_AVAILABLE 0) -+set(HAVE_MSG_NOSIGNAL 0) -+set(HAVE_STRUCT_TIMEVAL 1) - -- set(HAVE_GETHOSTBYNAME_R_3 0) -- set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0) -- set(HAVE_GETHOSTBYNAME_R_5 0) -- set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0) -- set(HAVE_GETHOSTBYNAME_R_6 0) -- set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0) -+set(HAVE_GETHOSTBYNAME_R_3 0) -+set(HAVE_GETHOSTBYNAME_R_3_REENTRANT 0) -+set(HAVE_GETHOSTBYNAME_R_5 0) -+set(HAVE_GETHOSTBYNAME_R_5_REENTRANT 0) -+set(HAVE_GETHOSTBYNAME_R_6 0) -+set(HAVE_GETHOSTBYNAME_R_6_REENTRANT 0) - -- set(HAVE_O_NONBLOCK 0) -- set(HAVE_IN_ADDR_T 0) -- set(STDC_HEADERS 1) -+set(HAVE_O_NONBLOCK 0) -+set(HAVE_IN_ADDR_T 0) -+set(STDC_HEADERS 1) - -- set(HAVE_SIGACTION 0) -- set(HAVE_MACRO_SIGSETJMP 0) -- else() -- message("This file should be included on Windows platform only") -- endif() --endif() -+set(HAVE_SIZEOF_SUSECONDS_T 0) -+set(HAVE_SIZEOF_SA_FAMILY_T 0) -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ced0e2683cff4..e768b15d8bdd2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -61,6 +61,7 @@ - # variable is NOT DEFINED, the symbol detection will be performed. - - cmake_minimum_required(VERSION 3.7...3.16 FATAL_ERROR) -+message(STATUS "Using CMake version ${CMAKE_VERSION}") - - set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}") - include(Utilities) -@@ -362,7 +363,9 @@ include(CheckCSourceCompiles) - - # On windows preload settings - if(WIN32) -- list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_WINSOCKAPI_=) -+ set(HAVE_WINDOWS_H 1) -+ set(HAVE_WS2TCPIP_H 1) -+ set(HAVE_WINSOCK2_H 1) - include(${CMAKE_CURRENT_SOURCE_DIR}/CMake/Platforms/WindowsCache.cmake) - endif() - -@@ -416,7 +419,7 @@ set(openssl_default ON) - if(WIN32 OR CURL_USE_SECTRANSP OR CURL_USE_SCHANNEL OR CURL_USE_MBEDTLS OR CURL_USE_WOLFSSL) - set(openssl_default OFF) - endif() --cmake_dependent_option(CURL_USE_OPENSSL "Use OpenSSL code. Experimental" ${openssl_default} CURL_ENABLE_SSL OFF) -+cmake_dependent_option(CURL_USE_OPENSSL "Enable OpenSSL for SSL/TLS" ${openssl_default} CURL_ENABLE_SSL OFF) - option(CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG "Disable automatic loading of OpenSSL configuration" OFF) - - count_true(enabled_ssl_options_count -@@ -851,6 +854,7 @@ if(USE_LIBIDN2) - check_library_exists("idn2" "idn2_lookup_ul" "" HAVE_LIBIDN2) - if(HAVE_LIBIDN2) - set(CURL_LIBS "idn2;${CURL_LIBS}") -+ check_include_file_concat("idn2.h" HAVE_IDN2_H) - endif() - else() - set(HAVE_LIBIDN2 OFF) -@@ -1064,10 +1068,46 @@ if(CURL_CA_PATH_SET AND - endif() - - # Check for header files --if(NOT UNIX) -- check_include_file_concat("windows.h" HAVE_WINDOWS_H) -- check_include_file_concat("ws2tcpip.h" HAVE_WS2TCPIP_H) -+if(WIN32) - check_include_file_concat("winsock2.h" HAVE_WINSOCK2_H) -+ check_include_file_concat("ws2tcpip.h" HAVE_WS2TCPIP_H) -+ check_include_file_concat("windows.h" HAVE_WINDOWS_H) -+endif() -+ -+if(WIN32) -+ # detect actual value of _WIN32_WINNT and store as HAVE_WIN32_WINNT -+ curl_internal_test(HAVE_WIN32_WINNT) -+ if(HAVE_WIN32_WINNT) -+ string(REGEX MATCH ".*_WIN32_WINNT=0x[0-9a-fA-F]+" OUTPUT "${OUTPUT}") -+ string(REGEX REPLACE ".*_WIN32_WINNT=" "" OUTPUT "${OUTPUT}") -+ string(REGEX REPLACE "0x([0-9a-f][0-9a-f][0-9a-f])$" "0x0\\1" OUTPUT "${OUTPUT}") # pad to 4 digits -+ string(TOLOWER "${OUTPUT}" HAVE_WIN32_WINNT) -+ message(STATUS "Found _WIN32_WINNT=${HAVE_WIN32_WINNT}") -+ endif() -+ # avoid storing HAVE_WIN32_WINNT in CMake cache -+ unset(HAVE_WIN32_WINNT CACHE) -+ -+ # pre-fill detection results that are based on target OS version -+ if(HAVE_WIN32_WINNT AND (MINGW OR MSVC)) -+ if(HAVE_WIN32_WINNT STRLESS "0x0501") -+ set(HAVE_GETADDRINFO 0) -+ set(HAVE_FREEADDRINFO 0) -+ else() # Windows XP or newer -+ set(HAVE_GETADDRINFO 1) -+ set(HAVE_FREEADDRINFO 1) -+ endif() -+ unset(HAVE_GETADDRINFO CACHE) -+ unset(HAVE_FREEADDRINFO CACHE) -+ if(HAVE_WIN32_WINNT STRLESS "0x0600") -+ set(HAVE_INET_NTOP 0) -+ set(HAVE_INET_PTON 0) -+ else() # Windows Vista or newer -+ set(HAVE_INET_NTOP 1) -+ set(HAVE_INET_PTON 1) -+ endif() -+ unset(HAVE_INET_NTOP CACHE) -+ unset(HAVE_INET_PTON CACHE) -+ endif() - endif() - - check_include_file_concat("inttypes.h" HAVE_INTTYPES_H) -@@ -1088,7 +1128,6 @@ check_include_file_concat("sys/utime.h" HAVE_SYS_UTIME_H) - check_include_file_concat("sys/xattr.h" HAVE_SYS_XATTR_H) - check_include_file_concat("arpa/inet.h" HAVE_ARPA_INET_H) - check_include_file_concat("fcntl.h" HAVE_FCNTL_H) --check_include_file_concat("idn2.h" HAVE_IDN2_H) - check_include_file_concat("ifaddrs.h" HAVE_IFADDRS_H) - check_include_file_concat("io.h" HAVE_IO_H) - check_include_file_concat("libgen.h" HAVE_LIBGEN_H) -@@ -1186,6 +1225,7 @@ check_symbol_exists(gethostbyname_r "${CURL_INCLUDES}" HAVE_GETHOSTBYNAME_R) - check_symbol_exists(signal "${CURL_INCLUDES};signal.h" HAVE_SIGNAL) - check_symbol_exists(strtoll "${CURL_INCLUDES};stdlib.h" HAVE_STRTOLL) - check_symbol_exists(strerror_r "${CURL_INCLUDES};stdlib.h;string.h" HAVE_STRERROR_R) -+check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION) - check_symbol_exists(siginterrupt "${CURL_INCLUDES};signal.h" HAVE_SIGINTERRUPT) - check_symbol_exists(getaddrinfo "${CURL_INCLUDES};stdlib.h;string.h" HAVE_GETADDRINFO) - check_symbol_exists(getifaddrs "${CURL_INCLUDES};stdlib.h" HAVE_GETIFADDRS) -@@ -1225,20 +1265,11 @@ check_type_size("sa_family_t" SIZEOF_SA_FAMILY_T) - set(HAVE_SA_FAMILY_T ${HAVE_SIZEOF_SA_FAMILY_T}) - set(CMAKE_EXTRA_INCLUDE_FILES "") - --set(CMAKE_EXTRA_INCLUDE_FILES "ws2def.h") --check_type_size("ADDRESS_FAMILY" SIZEOF_ADDRESS_FAMILY) --set(HAVE_ADDRESS_FAMILY ${HAVE_SIZEOF_ADDRESS_FAMILY}) --set(CMAKE_EXTRA_INCLUDE_FILES "") -- --# sigaction and sigsetjmp are special. Use special mechanism for --# detecting those, but only if previous attempt failed. --check_symbol_exists(sigaction "signal.h" HAVE_SIGACTION) -- --if(NOT HAVE_SIGSETJMP) -- check_symbol_exists(sigsetjmp "setjmp.h" HAVE_MACRO_SIGSETJMP) -- if(HAVE_MACRO_SIGSETJMP) -- set(HAVE_SIGSETJMP 1) -- endif() -+if(WIN32) -+ set(CMAKE_EXTRA_INCLUDE_FILES "ws2def.h") -+ check_type_size("ADDRESS_FAMILY" SIZEOF_ADDRESS_FAMILY) -+ set(HAVE_ADDRESS_FAMILY ${HAVE_SIZEOF_ADDRESS_FAMILY}) -+ set(CMAKE_EXTRA_INCLUDE_FILES "") - endif() - - # Do curl specific tests -@@ -1283,18 +1314,6 @@ set(CMAKE_EXTRA_INCLUDE_FILES "curl/curl.h") - check_type_size("curl_socket_t" SIZEOF_CURL_SOCKET_T) - set(CMAKE_EXTRA_INCLUDE_FILES "") - --if(WIN32) -- # detect actual value of _WIN32_WINNT and store as HAVE_WIN32_WINNT -- curl_internal_test(HAVE_WIN32_WINNT) -- if(HAVE_WIN32_WINNT) -- string(REGEX MATCH ".*_WIN32_WINNT=0x[0-9a-fA-F]+" OUTPUT "${OUTPUT}") -- string(REGEX REPLACE ".*_WIN32_WINNT=" "" HAVE_WIN32_WINNT "${OUTPUT}") -- message(STATUS "Found _WIN32_WINNT=${HAVE_WIN32_WINNT}") -- endif() -- # avoid storing HAVE_WIN32_WINNT in CMake cache -- unset(HAVE_WIN32_WINNT CACHE) --endif() -- - if(NOT WIN32 AND NOT CMAKE_CROSSCOMPILING) - # on not-Windows and not-crosscompiling, check for writable argv[] - include(CheckCSourceRuns) -@@ -1350,8 +1369,10 @@ if(NEED_REENTRANT) - endforeach() - endif() - --# Check clock_gettime(CLOCK_MONOTONIC, x) support --curl_internal_test(HAVE_CLOCK_GETTIME_MONOTONIC) -+if(NOT WIN32) -+ # Check clock_gettime(CLOCK_MONOTONIC, x) support -+ curl_internal_test(HAVE_CLOCK_GETTIME_MONOTONIC) -+endif() - - # Check compiler support of __builtin_available() - curl_internal_test(HAVE_BUILTIN_AVAILABLE) -diff --git a/acinclude.m4 b/acinclude.m4 -index 5fdd51e52076c..18a56be8f7bea 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -705,10 +705,10 @@ AC_DEFUN([TYPE_SOCKADDR_STORAGE], - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #else - #ifdef HAVE_SYS_TYPES_H - #include -@@ -743,10 +743,10 @@ AC_DEFUN([CURL_CHECK_FUNC_RECV], [ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #else - $curl_includes_bsdsocket - #ifdef HAVE_SYS_TYPES_H -@@ -794,10 +794,10 @@ AC_DEFUN([CURL_CHECK_FUNC_SEND], [ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #else - $curl_includes_bsdsocket - #ifdef HAVE_SYS_TYPES_H -@@ -841,10 +841,10 @@ AC_DEFUN([CURL_CHECK_MSG_NOSIGNAL], [ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #else - #ifdef HAVE_SYS_TYPES_H - #include -@@ -886,10 +886,10 @@ AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #endif - #ifdef HAVE_SYS_TYPES_H - #include -@@ -941,10 +941,10 @@ AC_DEFUN([TYPE_IN_ADDR_T], [ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #else - #ifdef HAVE_SYS_TYPES_H - #include -@@ -983,10 +983,10 @@ AC_DEFUN([TYPE_IN_ADDR_T], [ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #else - #ifdef HAVE_SYS_TYPES_H - #include -@@ -1298,10 +1298,10 @@ AC_DEFUN([CURL_CHECK_FUNC_SELECT], [ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #endif - #ifdef HAVE_SYS_TYPES_H - #include -diff --git a/appveyor.yml b/appveyor.yml -index 9247680e3d35a..b45d93aa84ae6 100644 ---- a/appveyor.yml -+++ b/appveyor.yml -@@ -326,7 +326,6 @@ build_script: - $options += '-DCMAKE_VS_GLOBALS=TrackFileAccess=false' - } - -- cmake --version - Write-Host 'CMake options:' $options - cmake . $options - cmake --build . --config $env:PRJ_CFG --parallel 2 --clean-first -- $env:BUILD_OPT -diff --git a/configure.ac b/configure.ac -index 2d71c838f86b6..0b25f7b95a048 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1145,10 +1145,10 @@ then - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN - #endif --#include - #ifdef HAVE_WINSOCK2_H - #include - #endif -+#include - #endif - ]],[[ - gethostbyname("localhost"); -diff --git a/lib/config-win32.h b/lib/config-win32.h -index e55ef2fd20beb..d1aceaac3cba5 100644 ---- a/lib/config-win32.h -+++ b/lib/config-win32.h -@@ -72,7 +72,9 @@ - #endif - - /* Define if you have the header file. */ --/* #define HAVE_SYS_PARAM_H 1 */ -+#if defined(__MINGW32__) -+#define HAVE_SYS_PARAM_H 1 -+#endif - - /* Define if you have the header file. */ - /* #define HAVE_SYS_SELECT_H 1 */ -@@ -87,7 +89,9 @@ - #define HAVE_SYS_STAT_H 1 - - /* Define if you have the header file. */ --/* #define HAVE_SYS_TIME_H 1 */ -+#if defined(__MINGW32__) -+#define HAVE_SYS_TIME_H 1 -+#endif - - /* Define if you have the header file. */ - #define HAVE_SYS_TYPES_H 1 -@@ -160,7 +164,9 @@ - #define HAVE_GETHOSTNAME 1 - - /* Define if you have the gettimeofday function. */ --/* #define HAVE_GETTIMEOFDAY 1 */ -+#if defined(__MINGW32__) -+#define HAVE_GETTIMEOFDAY 1 -+#endif - - /* Define if you have the ioctlsocket function. */ - #define HAVE_IOCTLSOCKET 1 -diff --git a/lib/setup-win32.h b/lib/setup-win32.h -index 13948389a41f0..5fe4b4c82b09f 100644 ---- a/lib/setup-win32.h -+++ b/lib/setup-win32.h -@@ -53,14 +53,14 @@ - # ifndef NOGDI - # define NOGDI - # endif --# include --# include - # ifdef HAVE_WINSOCK2_H - # include - # ifdef HAVE_WS2TCPIP_H - # include - # endif - # endif -+# include -+# include - # include - # ifdef UNICODE - typedef wchar_t *(*curl_wcsdup_callback)(const wchar_t *str); -diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4 -index 7fefa39670d29..1381f19b38b2d 100644 ---- a/m4/curl-functions.m4 -+++ b/m4/curl-functions.m4 -@@ -447,10 +447,10 @@ curl_includes_winsock2="\ - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif --# include - # ifdef HAVE_WINSOCK2_H - # include - # endif -+# include - #endif - /* includes end */" - CURL_CHECK_HEADER_WINDOWS -@@ -470,13 +470,13 @@ curl_includes_ws2tcpip="\ - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif --# include - # ifdef HAVE_WINSOCK2_H - # include - # ifdef HAVE_WS2TCPIP_H - # include - # endif - # endif -+# include - #endif - /* includes end */" - CURL_CHECK_HEADER_WINDOWS