Re: ecpg generated files ignorable?

Lists: pgsql-hackers
From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Cc: meskes(at)postgresql(dot)org
Subject: ecpg generated files ignorable?
Date: 2008-06-18 23:16:41
Message-ID: 20080618231641.GL5077@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Hi,

I keep seeing these files show up in the source tree in a VPATH build:

? src/interfaces/ecpg/compatlib/libecpg_compatddll.def
? src/interfaces/ecpg/ecpglib/libecpgddll.def
? src/interfaces/ecpg/pgtypeslib/libpgtypesddll.def

I am not sure if these should stay on the source dir (i.e. are they
needed in the tarball). If they are supposed to, then I think they
should be listed in the corresponding .cvsignore file.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, meskes(at)postgresql(dot)org
Subject: Re: ecpg generated files ignorable?
Date: 2008-06-19 01:26:24
Message-ID: 10576.1213838784@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:
> I keep seeing these files show up in the source tree in a VPATH build:

> ? src/interfaces/ecpg/compatlib/libecpg_compatddll.def
> ? src/interfaces/ecpg/ecpglib/libecpgddll.def
> ? src/interfaces/ecpg/pgtypeslib/libpgtypesddll.def

> I am not sure if these should stay on the source dir (i.e. are they
> needed in the tarball). If they are supposed to, then I think they
> should be listed in the corresponding .cvsignore file.

Makefile.shlib builds these in the distprep action, so I suppose
they're supposed to be there. libpq .cvsignore's its equivalent
files, so I'd agree with doing that. It looks like there should be
three such files in each directory, though, not just one?

regards, tom lane


From: Michael Meskes <meskes(at)postgresql(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, meskes(at)postgresql(dot)org
Subject: Re: ecpg generated files ignorable?
Date: 2008-06-20 10:37:01
Message-ID: 20080620103701.GB3242@feivel.credativ.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Wed, Jun 18, 2008 at 09:26:24PM -0400, Tom Lane wrote:
> > ? src/interfaces/ecpg/compatlib/libecpg_compatddll.def
> > ? src/interfaces/ecpg/ecpglib/libecpgddll.def
> > ? src/interfaces/ecpg/pgtypeslib/libpgtypesddll.def

IIRC these are for MS VC++.

> > I am not sure if these should stay on the source dir (i.e. are they
> > needed in the tarball). If they are supposed to, then I think they
> > should be listed in the corresponding .cvsignore file.
>
> Makefile.shlib builds these in the distprep action, so I suppose
> they're supposed to be there. libpq .cvsignore's its equivalent
> files, so I'd agree with doing that. It looks like there should be
> three such files in each directory, though, not just one?

Well, in my source tree I have two, one for MS VC++ and one for Borland
C++ Builder. And yes, I can build a third one for MS VC++ as well by
just issuing the corresponding make call. However, I have no idea
whether we need both, the only differ in the lib name:
--- libecpgddll.def 2008-06-20 12:33:29.000000000 +0200
+++ libecpgdll.def 2008-06-20 12:33:16.000000000 +0200
@@ -1,5 +1,5 @@
; DEF file for MS VC++
-LIBRARY LIBECPGD
+LIBRARY LIBECPG
EXPORTS
ECPGallocate_desc @ 1
ECPGconnect @ 2

Maybe someone with more Windows knowledge can explain this? Magnus?

Michael

--
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes(at)jabber(dot)org
Go VfL Borussia! Go SF 49ers! Use Debian GNU/Linux! Use PostgreSQL!


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, meskes(at)postgresql(dot)org, Magnus Hagander <magnus(at)hagander(dot)net>
Subject: Re: ecpg generated files ignorable?
Date: 2008-06-27 12:56:11
Message-ID: 20080627125611.GC28169@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Michael Meskes wrote:
> On Wed, Jun 18, 2008 at 09:26:24PM -0400, Tom Lane wrote:

> > Makefile.shlib builds these in the distprep action, so I suppose
> > they're supposed to be there. libpq .cvsignore's its equivalent
> > files, so I'd agree with doing that. It looks like there should be
> > three such files in each directory, though, not just one?

There are three -- two of them are .cvsignore'd. Should we just
.cvsignore the third one, or remove it from the build, or ...?

libpq has the three of them in .cvsignore so I guess this is what ecpg
should do as well.

> Well, in my source tree I have two, one for MS VC++ and one for Borland
> C++ Builder. And yes, I can build a third one for MS VC++ as well by
> just issuing the corresponding make call. However, I have no idea
> whether we need both, the only differ in the lib name:
> --- libecpgddll.def 2008-06-20 12:33:29.000000000 +0200
> +++ libecpgdll.def 2008-06-20 12:33:16.000000000 +0200
> @@ -1,5 +1,5 @@
> ; DEF file for MS VC++
> -LIBRARY LIBECPGD
> +LIBRARY LIBECPG
> EXPORTS
> ECPGallocate_desc @ 1
> ECPGconnect @ 2
>
> Maybe someone with more Windows knowledge can explain this? Magnus?

The weird thing is that the three files are generated for me
unconditionally (of course, I didn't issue a specific make call).

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: Michael Meskes <meskes(at)postgresql(dot)org>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, meskes(at)postgresql(dot)org, Magnus Hagander <magnus(at)hagander(dot)net>
Subject: Re: ecpg generated files ignorable?
Date: 2008-06-27 14:41:02
Message-ID: 20080627144102.GA19961@feivel.credativ.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

On Fri, Jun 27, 2008 at 08:56:11AM -0400, Alvaro Herrera wrote:
> There are three -- two of them are .cvsignore'd. Should we just
> .cvsignore the third one, or remove it from the build, or ...?

I'd say so.

Michael
--
Michael Meskes
Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes(at)jabber(dot)org
Go VfL Borussia! Go SF 49ers! Use Debian GNU/Linux! Use PostgreSQL!


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, meskes(at)postgresql(dot)org
Subject: Re: ecpg generated files ignorable?
Date: 2008-06-28 13:33:23
Message-ID: 48663DA3.9060609@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Alvaro Herrera wrote:
> Michael Meskes wrote:
>> Well, in my source tree I have two, one for MS VC++ and one for Borland
>> C++ Builder. And yes, I can build a third one for MS VC++ as well by
>> just issuing the corresponding make call. However, I have no idea
>> whether we need both, the only differ in the lib name:
>> --- libecpgddll.def 2008-06-20 12:33:29.000000000 +0200
>> +++ libecpgdll.def 2008-06-20 12:33:16.000000000 +0200
>> @@ -1,5 +1,5 @@
>> ; DEF file for MS VC++
>> -LIBRARY LIBECPGD
>> +LIBRARY LIBECPG
>> EXPORTS
>> ECPGallocate_desc @ 1
>> ECPGconnect @ 2
>>
>> Maybe someone with more Windows knowledge can explain this? Magnus?

(without looking at the actual code :-P):

LIBRARY should match the name of the DLL file. LIBECPGD is the debugging
version, which is the one linked against the debugging version of the
runtime. It needs to exist in any case where CRT pointers (FILE*,
va_args, things like that) is passed between DLLs. If one is linked
against release and one against debug, a crash will occur, so to build
you need to have a debug-linked version of the DLL as well.

Wow. That turned into quite a messy explanation, I hope it's readable :)

//magnus


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, meskes(at)postgresql(dot)org
Subject: Re: ecpg generated files ignorable?
Date: 2008-07-17 21:18:16
Message-ID: 20080717211816.GS3934@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Magnus Hagander wrote:

> LIBRARY should match the name of the DLL file. LIBECPGD is the debugging
> version, which is the one linked against the debugging version of the
> runtime. It needs to exist in any case where CRT pointers (FILE*,
> va_args, things like that) is passed between DLLs. If one is linked
> against release and one against debug, a crash will occur, so to build
> you need to have a debug-linked version of the DLL as well.
>
> Wow. That turned into quite a messy explanation, I hope it's readable :)

I could read it ;-) so I committed the suggested fix which is to list
them in .cvsignore too along the other ones. Thanks.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.