Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64

Поиск
Список
Период
Сортировка
От NISHIYAMA Tomoaki
Тема Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64
Дата
Msg-id 91BDAB66-3197-4478-A9DF-F7354557E435@staff.kanazawa-u.ac.jp
обсуждение исходный текст
Ответ на Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64  (Magnus Hagander <magnus@hagander.net>)
Список pgsql-hackers
Hi,

A new patch:
check for the presence of crtdefs.h in configure

-#if _MSC_VER >= 1400 || defined(WIN64)
+#if _MSC_VER >= 1400 || HAVE_CRTDEFS_H
 #define errcode __msvc_errcode
 #include <crtdefs.h>
 #undef errcode

Perhaps there is no guarantee that mingw (not -w64) may not have crtdefs.h in the future versions.
the 3 lines
 #define errcode __msvc_errcode
 #include <crtdefs.h>
 #undef errcode
should be valid as far as crtdefs.h exists and errcode is not defined previously.
Because this is the first system include file, we can be sure errcode is not
defined by this point.
So, I believe its better to just test for the presence of crtdefs.h rather than
try to figure out the name of compiler.

check for fseeko and ftello macro definition before defining to avoid
warning in mingw-w64 4.7.0 20110827

This patch was tested to build successfully on
mingw gcc version 4.6.1
mingw-w64 i686-w64-mingw32 gcc version 4.5.4 20110812
mingw-w64 x86_64-w64-mingw32 gcc version 4.7.0 20110827





On 2011/12/02, at 1:29, Andrew Dunstan wrote:

>
>
> On 11/27/2011 09:18 AM, NISHIYAMA Tomoaki wrote:
>> Hi,
>>
>>>>>> +/* __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.
>>> I see. That's because mingw (not -w64).
>>> Should it be ok if mingw is ok with that condition?
>>
>> This really breaks mingw gcc 4.6.1 :( it does not have crtdefs.h)
>> If moving downward do not break MSVC, perhaps its the good way.
>> Otherwise, we might check for the presence of crtdefs.h with configure?
>>
>
>
> I have looked at this a bit. It's fairly ugly, and the only moderately clean way I see forward is a configure test to
checkfor a mingw-w64 compiler, e.g. by running gcc -E -dM over a file which just includes stdio.h and checking for the
definednessof __MINGW64__VERSION_MAJOR, or something similar. 
>
>
> cheers
>
> andrew
>
>
>
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>


Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Kohei KaiGai
Дата:
Сообщение: Re: [v9.2] Fix Leaky View Problem
Следующее
От: Kohei KaiGai
Дата:
Сообщение: Re: Prep object creation hooks, and related sepgsql updates