29.09.2024 18:47, Andrew Dunstan wrote:
Yeah, src/include/port/win32/sys/socket.h has: #include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
I'm inclined to think we might need to reverse the order of the last two. TBH I don't really understand how this has worked up to now.
As far as I can see, in my environment _WIN32_WINNT defined with
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x603
#endif
inside C:/msys64/ucrt64/include/_mingw.h, which can be included
from C:/msys64/ucrt64/include/corecrt.h:10,
from C:/msys64/ucrt64/include/crtdefs.h:10,
from ../../../src/include/pg_config_os.h:40,
from ../../../src/include/c.h:56,
from ../../../src/include/postgres_fe.h:25,
from fe-secure-common.c:20
or (if HAVE_CRTDEFS_H is not defined):
from C:/msys64/ucrt64/include/corecrt.h:10,
from C:/msys64/ucrt64/include/corecrt_stdio_config.h:10,
from C:/msys64/ucrt64/include/stdio.h:9,
from ../../../src/include/c.h:59,
from ../../../src/include/postgres_fe.h:25,
from fe-secure-common.c:20
or (if winsock2.h included directly):
from C:/msys64/ucrt64/include/windows.h:9,
from C:/msys64/ucrt64/include/winsock2.h:23
so including winsock2.h is sufficient to include _mingw.h, but it doesn't
redefine _WIN32_WINNT, unfortunately.
Best regards,
Alexander