On 11/24/2011 06:29 AM, Lars Kanis wrote:
Isn't it better to check the value of macros itsef rather than checking for
system dependent macros that does not directly relate to the issue?
specifically for getaddrinfo.c case I think
#if EAI_NODATA != EAI_NONAME
is a better check than checking for
#if !defined(__MINGW64_VERSION_MAJOR)&& !defined(WIN32_ONLY_COMPILER) /*
MSVC/WIN64 duplicate */
Yes it's better and it works for all described test environments.
For the win32.h, I really don't understand why _WINSOCKAPI_ was defined before
some google suggests that defining _WINSOCKAPI_ before<windows.h> prevents
inclusion of winsock.h but that does not have relation to inclusion of
<winsock2.h> and if<winsock2.h> is included first, it should be ok.
If this guess is right, perhaps it could be better to remove the three lines.
#if !defined(WIN64) || defined(WIN32_ONLY_COMPILER)
No, this broke some compilers, IIRC (probably the native mingw compiler,
which is in use by several buildfarm members). Getting this right was
very tricky and time-consuming when I was adding support for the 64 bit
mingw-w64 compiler, and there were a couple of rounds of breakage.
I'm therefore much more inclined to go the way of your earlier patch,
which seems much less risky.
I only changed this for consistency. For me, it works without that define in
+/* __MINGW64_VERSION_MAJOR is related to both 32/64 bit gcc compiles by
+ * mingw-w64, however it gots defined only after
Why not use __MINGW32__, which is defined without including any headers?
Because it's defined by other than mingw-w64 compilers.
We have a bunch of compilers to support here. There are LOTS of compiler
scenarios on Windows (several versions of MSVC, 32bit and 64bit
mingw-w64, native mingw gcc, and a couple of Cygwin based compilers),
and keeping track of them all and making sure they don't break can be a
Sent via pgsql-hackers mailing list (email@example.com)
To make changes to your subscription: