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

NISHIYAMA Tomoaki <tomoakin@staff.kanazawa-u.ac.jp>

From: NISHIYAMA Tomoaki <tomoakin@staff.kanazawa-u.ac.jp>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: NISHIYAMA Tomoaki <tomoakin@staff.kanazawa-u.ac.jp>, Magnus Hagander <magnus@hagander.net>, pgsql-hackers@postgresql.org
Date: 2011-12-04T03:55:35Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Remove troublesome Asserts in cost_mergejoin().

  2. Enable building with the Mingw64 compiler.

Hi,

On 2011/12/04, at 9:45, Andrew Dunstan wrote:
>> Yes, but there's a deal more work to do here. This whole thing is falling over in my build environment (64 bit Windows 7, MinGW/MSys, the machine that runs pitta on the buildfarm.)
>> 
>> This is a long way from a done deal.
> 
> In particular, it's a major mess because it does this (or at least the version I'm using does):
> 
>   #define stat _stat64
> 
> which plays merry hell with pgwin32_safestat(). Working around that looks very unpleasant indeed.


Thank you for testing and reporting.
Would you mind giving me a bit more information on the environment?
--especially for the MinGW/MSYS versions and any other component that is required.

I tested on a virtual machine running 64 bit Windows 7 SP1,
installing MinGW/MSYS in the clean state and then compile.  
The versions coming with pre-packaged repository catalogues of 20110802
(gcc 4.5.2) and latest catalogue (gcc-4.6.1-2) compiles successfully.


On 2011/12/04, at 9:45, Andrew Dunstan wrote:

> 
> 
> On 12/03/2011 06:12 PM, Andrew Dunstan wrote:
>> 
>> 
>> On 12/03/2011 09:59 AM, Magnus Hagander wrote:
>>> On Sat, Dec 3, 2011 at 15:49, NISHIYAMA Tomoaki
>>> <tomoakin@staff.kanazawa-u.ac.jp>  wrote:
>>>> Hi,
>>>> 
>>>>> Have you verified if tihs affects _MSC_VER<  1400? Suddently that
>>>>> branch would care about HAVE_CRTDEFS_H, and I'm not sure if that's
>>>>> something we need to worry about.
>>>> 
>>>> I have no MSVC. In that sense it is not verified in fact, and I hope
>>>> those who knows well would kindly comment on it.
>>>> 
>>>> However, it appears that pg_config.h is not created through
>>>> configure, but just copied from pg_config.h.win32 in those
>>>> compilers and thus HAVE_CRTDEFS_H will not be defined.
>>>> So, I think this code fragment will not be enabled in
>>>> _MSC_VER<  1400
>>> Hmm, true. Unless HAVE_CRTDEFS_H is defined by the sytem, which it
>>> likely isn't - I was confusing it with the kind of defines that MSVC
>>> tends to stick in their own headerfiles, and thought that's what you
>>> were testing for.
>>> 
>> 
>> 
>> Yes, but there's a deal more work to do here. This whole thing is falling over in my build environment (64 bit Windows 7, MinGW/MSys, the machine that runs pitta on the buildfarm.)
>> 
>> This is a long way from a done deal.
> 
> 
> In particular, it's a major mess because it does this (or at least the version I'm using does):
> 
>   #define stat _stat64
> 
> 
> which plays merry hell with pgwin32_safestat(). Working around that looks very unpleasant indeed.
> 
> 
> 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
>