Re: Latest ecpg patch broke MSVC build - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: Latest ecpg patch broke MSVC build
Date
Msg-id 20071003074754.GA22051@svr2.hagander.net
Whole thread Raw
In response to Re: Latest ecpg patch broke MSVC build  (Hannes Eder <Hannes@HannesEder.net>)
Responses Re: Latest ecpg patch broke MSVC build
List pgsql-hackers
On Wed, Oct 03, 2007 at 09:35:51AM +0200, Hannes Eder wrote:
> Magnus Hagander schrieb:
> >>>Since this is an actual API library, perhaps a proper fix is to create a
> >>>.def file listing the exports in it, the same way we do for libpq? And 
> >>>then
> >>>we could (should!) also filter the exports the same ways as we do for 
> >>>libpq
> >>>these days.
> >>>
> >>>(see the exports.txt file in libpq)
> >>>
> >>>I'll try to find time to look forther at this meanwhile, but if someone 
> >>>can
> >>>confirm that donig an explicit export list is a good way to go, I can
> >>>confirm that donig that fixes the build problem :-)
> >>>
> >>>//Magnus
> >>>
> >>>---------------------------(end of broadcast)---------------------------
> >>>TIP 6: explain analyze is your friend
> >>>  
> >>>      
> >>According to:
> >>
> >>Module-Definition (.def) File EXPORT
> >>http://msdn2.microsoft.com/en-us/library/ms856515.aspx
> >>
> >>whitespace is required between the name and the ordinal in a
> >>.def-file, hence in the .def-file DllMain @12 should be used
> >>instead of DllMain@12.
> >>    
> >
> > you're reading the problem wrong. The 12 is not the ordinal, it's a part 
> > of the decorated name.
> >
> >
> >/Magnus
> >
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 2: Don't 'kill -9' the postmaster
> >  
> but, we are compiling C so the names shouldn't be decorated.

We're not talking C++ decoration, we're talking Windows API decoration.
Take a look at for example:
http://www.geocities.com/yongweiwu/stdcall.htm
(there is a reference on MSDN as well, btu I can't find it right now)

The @12 is "12 bytes in the argument list to the function". The
reason is to make sure the caller calls it with the right number of
arguments so as to prevent stack issues.

//Magnus



pgsql-hackers by date:

Previous
From: Hannes Eder
Date:
Subject: Re: Latest ecpg patch broke MSVC build
Next
From: "Trevor Talbot"
Date:
Subject: Re: Latest ecpg patch broke MSVC build