Re: Building extensions on Windows using VS2008 - Mailing list pgsql-general

From Magnus Hagander
Subject Re: Building extensions on Windows using VS2008
Date
Msg-id AANLkTikfe16XAi4kZAaxHo4yFr2hR-t9mrsiDtBWaVCM@mail.gmail.com
Whole thread Raw
In response to Re: Building extensions on Windows using VS2008  (Craig Ringer <craig@postnewspapers.com.au>)
List pgsql-general
On Sun, Feb 20, 2011 at 05:39, Craig Ringer <craig@postnewspapers.com.au> wrote:
> On 02/20/2011 09:38 AM, deepak wrote:
>>
>>
>>    build.pl <http://build.pl> parses the Makefile to determine the list
>>    of sources, etc. Essentially, your extension is built using the unix
>>    Makefile.  Since you've already built Pg its self from sources you
>>    will have used build.pl <http://build.pl> to do it (right?) and
>>    it'll be easy for you to add the contrib module and re-run.
>>
>>    The downside of this approach is that build.pl <http://build.pl>
>>    isn't a complete Makefile parser, and is easily confused by anything
>>    but the most trivial Makefile syntax. I had problems when I was
>>    putting the crashdump module together because build.pl
>>    <http://build.pl> didn't understand ifndef .
>>
>>    --
>>    Craig Ringer
>>
>>
>> Ok, I hadn't realized that the VS build system extrapolates information
>> from unix Makefiles..
>>
>> I briefly tried adding a new contrib module for my extension and
>> re-running the VS build (src\tools\msvc\build.bat), and still get the
>> same error.
>> (about redefinition of errcode).  Somehow, it seems to me that there's
>> an inherent incompatibility..
>
> OK, so you're building it within the main Pg build system. Pg was
> successfully compiled, including files that use elog.h . Yet your extension
> doesn't compile, complaining about a macro/typedef conflict.
>
> This makes me wonder: what's different?

First check would be that you are including postgres.h *at the top* of
your files. It will bring in some defines that affects the windows
header files.

It does (through c.h) have specific handling of errcode on MSVC, for
example.... See around line 60.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

pgsql-general by date:

Previous
From: Craig Ringer
Date:
Subject: Re: How to make the user-defined function or type being accessed in the global database server?
Next
From: Dmitriy Igrishin
Date:
Subject: Disconnecting idle connections on timeout.