--- misc/build/openssl-3.0.20/crypto/bio/bio_sock2.c +++ misc/build/openssl-3.0.20/crypto/bio/bio_sock2.c @@ -268,6 +268,10 @@ * Therefore we always have to use setsockopt here. */ on = options & BIO_SOCK_V6_ONLY ? 1 : 0; +/* Windows < XP needs this: */ +# if !defined(IPPROTO_IPV6) +# define IPPROTO_IPV6 41 +# endif if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (const void *)&on, sizeof(on)) != 0) { --- misc/build/openssl-3.0.20/crypto/init.c +++ misc/build/openssl-3.0.20/crypto/init.c @@ -133,7 +133,7 @@ #if !defined(OPENSSL_USE_NODELETE) \ && !defined(OPENSSL_NO_PINSHARED) -#if defined(DSO_WIN32) && !defined(_WIN32_WCE) +#if defined(DSO_WIN32) && !defined(_WIN32_WCE) && _WIN32_WINNT >= 0x0500 { HMODULE handle = NULL; BOOL ret; @@ -656,7 +656,7 @@ #if !defined(OPENSSL_USE_NODELETE) \ && !defined(OPENSSL_NO_PINSHARED) { -#if defined(DSO_WIN32) && !defined(_WIN32_WCE) +#if defined(DSO_WIN32) && !defined(_WIN32_WCE) && _WIN32_WINNT >= 0x0500 HMODULE handle = NULL; BOOL ret; union { --- misc/build/openssl-3.0.20/crypto/threads_win.c +++ misc/build/openssl-3.0.20/crypto/threads_win.c @@ -54,7 +54,7 @@ return NULL; } -#if !defined(_WIN32_WCE) +#if !defined(_WIN32_WCE) && _WIN32_WINNT >= 0x0403 /* 0x400 is the spin count value suggested in the documentation */ if (!InitializeCriticalSectionAndSpinCount(lock, 0x400)) { OPENSSL_free(lock);