From: | NISHIYAMA Tomoaki <tomoakin(at)staff(dot)kanazawa-u(dot)ac(dot)jp> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Cc: | NISHIYAMA Tomoaki <tomoakin(at)staff(dot)kanazawa-u(dot)ac(dot)jp>, Lars Kanis <kanis(at)comcard(dot)de> |
Subject: | Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64 |
Date: | 2011-11-24 08:48:04 |
Message-ID: | D0CE5EAA-7B84-44DA-9F8E-F0AFD26B2DD5@staff.kanazawa-u.ac.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
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 */
For the win32.h, I really don't understand why _WINSOCKAPI_ was defined before
<winsock2.h>
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)
#define _WINSOCKAPI_
#endif
+/* __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?
On 2011/11/24, at 17:24, Lars Kanis wrote:
> Hi PostgreSQL hackers,
>
> support for Mingw-w64 compiler was added to postgres with commit 91812df. Unfortunately only the 64 bit output is working right now. This issue was already highlighted with initial patch in
> http://archives.postgresql.org/pgsql-bugs/2011-07/msg00059.php
>
> Mingw-w64 uses the same header files for 32 and 64 bit compiles. So the same conditions apply to mingw-w32 bit as for the WIN64 case. In WIN64 "WSAAPI" is defined to nothing, but in 32 bit to stdcall, so it needs to be used in the accept-parameter check, too. Maybe you prefer PASCAL instead of WSAAPI in configure.
>
> I tested successful compilation for the following platforms:
> - i686-w64-mingw32 - gcc v4.6.1
> - x86_64-w64-mingw32 - gcc v4.6.1
> - i586-mingw32msvc - gcc v4.4.4
> - x86_64-linux-gnu - gcc v4.6.1
>
> --
> Kind regards,
> Lars Kanis
>
> <fix-mingw-w64-32bit_v1.patch>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Golub | 2011-11-24 08:55:01 | Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64 |
Previous Message | Lars Kanis | 2011-11-24 08:24:22 | [PATCH] PostgreSQL fails to build with 32bit MinGW-w64 |