pg.ddx.io pgsql-interfaces@postgresql.org mailing list archive
help / color / mirror / Atom feedRe: BCC55 and libpq 8.2
16+ messages / 5 participants
[nested] [flat]
* Re: BCC55 and libpq 8.2
@ 2006-12-29 02:13 L Bayuk <lbayuk@pobox.com>
0 siblings, 3 replies; 16+ messages in thread
From: L Bayuk @ 2006-12-29 02:13 UTC (permalink / raw)
To: fabio guidi <f.guidi@libero.it>; +Cc: pgsql-interfaces
On Wed, Dec 20, 2006 at 07:51:00PM +0100, fabio guidi wrote:
>...
> Hello to all, i'm trying to build libpq for postgresql 8.2 with borland
> bcc5.5
> ...
I finally found myself in front of Windows PC, with PostgreSQL-8.2.0
source, Borland BCC32 compiler, and a little time. I was trying to build my
Pgtclng DLL (http://pgfoundry.org/projects/pgtclng/) which requires the
libpq DLL. The bad news is that (as you found) a bunch of stuff got broken
in 8.2.0 regarding BCC builds of libpq. The good news is that I succeeded.
I built the libpq DLL, my Pgtclng DLL, and even the psql program. I tested
Pgtclng pretty hard with my test suite and it passed, so I am confident the
libpq build was good in so far as Pgtclng uses it. But it got some scary
compiler warnings that I still want to look into.
I will try to post a patch soon for the bcc32.mak files, but I also had to
change some other files used by all other builds and I can't see them
patching those files for BCC. I don't have patch files yet, but if you want
to try it yourself here are the details. Unless I missed something, after
these changes "make -N -f bcc32.mak" inside interfaces/libpq should build
it for you. There are also a few fixes for building psql I have to post
some other time. Sorry I don't have this as a patch yet but I figured you
have waited long enough and might want to try it.
In include/c.h :
Change: #if defined(__BORLANDC__) || (_MSC_VER >= 1400)
to: #if (_MSC_VER >= 1400)
In include/port.h :
Delete the random() declaration, or change it so it looks like this:
#if !defined(__BORLANDC__)
#ifndef HAVE_RANDOM
extern long random(void);
#endif
#endif
In include/, copy pg_config.h.win32 to pg_config.h
In include/, copy port/win32.h to pg_config_os.h and make the following
changes. I made these conditional on __BORLANDC__, but if you are only
trying to build the thing just delete or change these lines:
Remove #include <sys/utime.h>
Remove #define SIGUSR1 and SIGUSR2.
Remove declarations of ssize_t and mode_t.
Remove #define's of _S_IRWXU through S_ISREG.
Replace the definitions so inline and __inline__ are defined to nothing.
(Might not be necessary, but it was in my notes from prior releases.)
In interfaces/libpq/bcc32.mak:
Add "snprintf.obj" to the LIB32_OBJS macro, and add the block which
builds it: Copy the applicable lines from win32.mak.
I always had to make these two changes to bcc32.mak for Pgtclng, but
this could be specific to linking with Tcl so you might not need it.
1) Add -c to LINK32_FLAGS (makes it case sensitive).
2) Change runtime library from cw32mti.lib to cw32mt.lib (static version)
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-01 21:50 Mark Morgan Lloyd <markMLl.pgsql-interfaces@telemetry.co.uk>
parent: L Bayuk <lbayuk@pobox.com>
2 siblings, 1 reply; 16+ messages in thread
From: Mark Morgan Lloyd @ 2007-01-01 21:50 UTC (permalink / raw)
To: pgsql-interfaces
L Bayuk wrote:
>
> On Wed, Dec 20, 2006 at 07:51:00PM +0100, fabio guidi wrote:
> >...
> > Hello to all, i'm trying to build libpq for postgresql 8.2 with borland
> > bcc5.5
> > ...
>
> I finally found myself in front of Windows PC, with PostgreSQL-8.2.0
> source, Borland BCC32 compiler, and a little time. I was trying to build my
> Pgtclng DLL (http://pgfoundry.org/projects/pgtclng/) which requires the
> libpq DLL. The bad news is that (as you found) a bunch of stuff got broken
> in 8.2.0 regarding BCC builds of libpq. The good news is that I succeeded.
> I built the libpq DLL, my Pgtclng DLL, and even the psql program.
Thanks for that from me as well. Do you find the resulting psql reliable? I got
it built for 8.1 but found it very flaky and ended up doing that sort of work
using an ssh session to the (Linux) server.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-01 22:42 fabio guidi <f.guidi@libero.it>
parent: L Bayuk <lbayuk@pobox.com>
2 siblings, 0 replies; 16+ messages in thread
From: fabio guidi @ 2007-01-01 22:42 UTC (permalink / raw)
To: pgsql-interfaces
L Bayuk ha scritto:
>On Wed, Dec 20, 2006 at 07:51:00PM +0100, fabio guidi wrote:
>
>
>>...
>>Hello to all, i'm trying to build libpq for postgresql 8.2 with borland
>>bcc5.5
>>...
>>
>>
>
>I finally found myself in front of Windows PC, with PostgreSQL-8.2.0
>source, Borland BCC32 compiler, and a little time. I was trying to build my
>Pgtclng DLL (http://pgfoundry.org/projects/pgtclng/) which requires the
>libpq DLL. The bad news is that (as you found) a bunch of stuff got broken
>in 8.2.0 regarding BCC builds of libpq. The good news is that I succeeded.
>I built the libpq DLL, my Pgtclng DLL, and even the psql program. I tested
>Pgtclng pretty hard with my test suite and it passed, so I am confident the
>libpq build was good in so far as Pgtclng uses it. But it got some scary
>compiler warnings that I still want to look into.
>
>I will try to post a patch soon for the bcc32.mak files, but I also had to
>change some other files used by all other builds and I can't see them
>patching those files for BCC. I don't have patch files yet, but if you want
>to try it yourself here are the details. Unless I missed something, after
>these changes "make -N -f bcc32.mak" inside interfaces/libpq should build
>it for you. There are also a few fixes for building psql I have to post
>some other time. Sorry I don't have this as a patch yet but I figured you
>have waited long enough and might want to try it.
>
>In include/c.h :
> Change: #if defined(__BORLANDC__) || (_MSC_VER >= 1400)
> to: #if (_MSC_VER >= 1400)
>
>In include/port.h :
> Delete the random() declaration, or change it so it looks like this:
> #if !defined(__BORLANDC__)
> #ifndef HAVE_RANDOM
> extern long random(void);
> #endif
> #endif
>
>In include/, copy pg_config.h.win32 to pg_config.h
>In include/, copy port/win32.h to pg_config_os.h and make the following
>changes. I made these conditional on __BORLANDC__, but if you are only
>trying to build the thing just delete or change these lines:
> Remove #include <sys/utime.h>
> Remove #define SIGUSR1 and SIGUSR2.
> Remove declarations of ssize_t and mode_t.
> Remove #define's of _S_IRWXU through S_ISREG.
> Replace the definitions so inline and __inline__ are defined to nothing.
> (Might not be necessary, but it was in my notes from prior releases.)
>
>In interfaces/libpq/bcc32.mak:
> Add "snprintf.obj" to the LIB32_OBJS macro, and add the block which
> builds it: Copy the applicable lines from win32.mak.
> I always had to make these two changes to bcc32.mak for Pgtclng, but
> this could be specific to linking with Tcl so you might not need it.
> 1) Add -c to LINK32_FLAGS (makes it case sensitive).
> 2) Change runtime library from cw32mti.lib to cw32mt.lib (static version)
>
>---------------------------(end of broadcast)---------------------------
>TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
>
>
>
Thanks a lot, i'm reading only now your problem solution ...
fabio
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-02 01:31 L Bayuk <lbayuk@pobox.com>
parent: Mark Morgan Lloyd <markMLl.pgsql-interfaces@telemetry.co.uk>
0 siblings, 0 replies; 16+ messages in thread
From: L Bayuk @ 2007-01-02 01:31 UTC (permalink / raw)
To: Mark Morgan Lloyd <markMLl.pgsql-interfaces@telemetry.co.uk>; +Cc: pgsql-interfaces
On Mon, Jan 01, 2007 at 09:50:18PM +0000, Mark Morgan Lloyd wrote:
> >...
> > I built the libpq DLL, my Pgtclng DLL, and even the psql program.
>
> Thanks for that from me as well. Do you find the resulting psql reliable? I got
> it built for 8.1 but found it very flaky and ended up doing that sort of work
> using an ssh session to the (Linux) server.
I can hardly say if my bcc-built psql 8.2.0 is reliable. After I got libpq
and pgtcl-ng built, I went ahead and tried psql. Got it to compile,
connected, and did a few simple selects. That's all. I don't normally
build or use psql on Windows, and I don't have any kind of test setup for it.
If you have a suggestion how I might get psql to misbehave, I'll try it
out, but I have a feeling whatever you saw isn't easy to reproduce on
demand.
I should have a cleaned-up patch soon. Turns out most of the work is just
copying updates from the win32.mak files into the bcc32.mak files.
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-06 01:57 Bruce Momjian <bruce@momjian.us>
parent: L Bayuk <lbayuk@pobox.com>
2 siblings, 1 reply; 16+ messages in thread
From: Bruce Momjian @ 2007-01-06 01:57 UTC (permalink / raw)
To: L Bayuk <lbayuk@pobox.com>; +Cc: fabio guidi <f.guidi@libero.it>; pgsql-interfaces; PostgreSQL-patches <pgsql-patches@postgresql.org>
I have created the following patch based on your description of how to
get BCC compiled. Please let me know how it works against a stock
PostgreSQL 8.2.X and I can include the patch in 8.2.2. Sorry it didn't
make it in time for 8.2.1.
---------------------------------------------------------------------------
L Bayuk wrote:
> On Wed, Dec 20, 2006 at 07:51:00PM +0100, fabio guidi wrote:
> >...
> > Hello to all, i'm trying to build libpq for postgresql 8.2 with borland
> > bcc5.5
> > ...
>
> I finally found myself in front of Windows PC, with PostgreSQL-8.2.0
> source, Borland BCC32 compiler, and a little time. I was trying to build my
> Pgtclng DLL (http://pgfoundry.org/projects/pgtclng/) which requires the
> libpq DLL. The bad news is that (as you found) a bunch of stuff got broken
> in 8.2.0 regarding BCC builds of libpq. The good news is that I succeeded.
> I built the libpq DLL, my Pgtclng DLL, and even the psql program. I tested
> Pgtclng pretty hard with my test suite and it passed, so I am confident the
> libpq build was good in so far as Pgtclng uses it. But it got some scary
> compiler warnings that I still want to look into.
>
> I will try to post a patch soon for the bcc32.mak files, but I also had to
> change some other files used by all other builds and I can't see them
> patching those files for BCC. I don't have patch files yet, but if you want
> to try it yourself here are the details. Unless I missed something, after
> these changes "make -N -f bcc32.mak" inside interfaces/libpq should build
> it for you. There are also a few fixes for building psql I have to post
> some other time. Sorry I don't have this as a patch yet but I figured you
> have waited long enough and might want to try it.
>
> In include/c.h :
> Change: #if defined(__BORLANDC__) || (_MSC_VER >= 1400)
> to: #if (_MSC_VER >= 1400)
>
> In include/port.h :
> Delete the random() declaration, or change it so it looks like this:
> #if !defined(__BORLANDC__)
> #ifndef HAVE_RANDOM
> extern long random(void);
> #endif
> #endif
>
> In include/, copy pg_config.h.win32 to pg_config.h
> In include/, copy port/win32.h to pg_config_os.h and make the following
> changes. I made these conditional on __BORLANDC__, but if you are only
> trying to build the thing just delete or change these lines:
> Remove #include <sys/utime.h>
> Remove #define SIGUSR1 and SIGUSR2.
> Remove declarations of ssize_t and mode_t.
> Remove #define's of _S_IRWXU through S_ISREG.
> Replace the definitions so inline and __inline__ are defined to nothing.
> (Might not be necessary, but it was in my notes from prior releases.)
>
> In interfaces/libpq/bcc32.mak:
> Add "snprintf.obj" to the LIB32_OBJS macro, and add the block which
> builds it: Copy the applicable lines from win32.mak.
> I always had to make these two changes to bcc32.mak for Pgtclng, but
> this could be specific to linking with Tcl so you might not need it.
> 1) Add -c to LINK32_FLAGS (makes it case sensitive).
> 2) Change runtime library from cw32mti.lib to cw32mt.lib (static version)
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faq
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
Attachments:
[text/x-diff] /pgpatches/bcc (5.9K, ../../200701060157.l061v0A19508@momjian.us/2-%2Fpgpatches%2Fbcc)
download | inline diff:
Index: src/include/c.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/c.h,v
retrieving revision 1.215
diff -c -c -r1.215 c.h
*** src/include/c.h 5 Jan 2007 22:19:50 -0000 1.215
--- src/include/c.h 6 Jan 2007 01:40:05 -0000
***************
*** 59,65 ****
#include "postgres_ext.h"
#include "pg_trace.h"
! #if defined(__BORLANDC__) || (_MSC_VER >= 1400)
#define errcode __msvc_errcode
#include <crtdefs.h>
#undef errcode
--- 59,65 ----
#include "postgres_ext.h"
#include "pg_trace.h"
! #if _MSC_VER >= 1400
#define errcode __msvc_errcode
#include <crtdefs.h>
#undef errcode
Index: src/include/port.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/port.h,v
retrieving revision 1.107
diff -c -c -r1.107 port.h
*** src/include/port.h 5 Jan 2007 22:19:50 -0000 1.107
--- src/include/port.h 6 Jan 2007 01:40:05 -0000
***************
*** 343,349 ****
extern size_t strlcpy(char *dst, const char *src, size_t siz);
#endif
! #ifndef HAVE_RANDOM
extern long random(void);
#endif
--- 343,349 ----
extern size_t strlcpy(char *dst, const char *src, size_t siz);
#endif
! #if !defined(HAVE_RANDOM) && !defined(__BORLANDC__)
extern long random(void);
#endif
Index: src/include/port/win32.h
===================================================================
RCS file: /cvsroot/pgsql/src/include/port/win32.h,v
retrieving revision 1.64
diff -c -c -r1.64 win32.h
*** src/include/port/win32.h 2 Jan 2007 21:25:50 -0000 1.64
--- src/include/port/win32.h 6 Jan 2007 01:40:05 -0000
***************
*** 17,23 ****
--- 17,25 ----
#include <signal.h>
#include <errno.h>
#include <direct.h>
+ #ifndef __BORLANDC__
#include <sys/utime.h> /* for non-unicode version */
+ #endif
#undef near
/* Must be here to avoid conflicting with prototype in windows.h */
***************
*** 149,156 ****
--- 151,160 ----
#define SIGTTIN 21
#define SIGTTOU 22 /* Same as SIGABRT -- no problem, I hope */
#define SIGWINCH 28
+ #ifndef __BORLANDC__
#define SIGUSR1 30
#define SIGUSR2 31
+ #endif
struct timezone
{
***************
*** 258,266 ****
/* Things that exist in MingW headers, but need to be added to MSVC */
! #ifdef WIN32_ONLY_COMPILER
typedef long ssize_t;
typedef unsigned short mode_t;
/*
* Certain "standard edition" versions of MSVC throw a warning
--- 262,271 ----
/* Things that exist in MingW headers, but need to be added to MSVC */
! #if defined(WIN32_ONLY_COMPILER) && !defined(__BORLANDC__)
typedef long ssize_t;
typedef unsigned short mode_t;
+ #endif
/*
* Certain "standard edition" versions of MSVC throw a warning
***************
*** 271,276 ****
--- 276,282 ----
#define inline __inline
#define __inline__ __inline
+ #ifndef __BORLANDC__
#define _S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
#define _S_IXUSR _S_IEXEC
#define _S_IWUSR _S_IWRITE
***************
*** 280,285 ****
--- 286,292 ----
#define S_IXUSR _S_IXUSR
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+ #endif
#define F_OK 0
#define W_OK 2
Index: src/interfaces/libpq/bcc32.mak
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/bcc32.mak,v
retrieving revision 1.25
diff -c -c -r1.25 bcc32.mak
*** src/interfaces/libpq/bcc32.mak 21 Nov 2006 23:26:47 -0000 1.25
--- src/interfaces/libpq/bcc32.mak 6 Jan 2007 01:40:05 -0000
***************
*** 76,82 ****
CLEAN :
-@erase "$(INTDIR)\getaddrinfo.obj"
-@erase "$(INTDIR)\pgstrcasecmp.obj"
- -@erase "$(INTDIR)\strlcpy.obj"
-@erase "$(INTDIR)\thread.obj"
-@erase "$(INTDIR)\inet_aton.obj"
-@erase "$(INTDIR)\crypt.obj"
--- 76,81 ----
***************
*** 99,104 ****
--- 98,105 ----
-@erase "$(INTDIR)\wchar.obj"
-@erase "$(INTDIR)\encnames.obj"
-@erase "$(INTDIR)\pthread-win32.obj"
+ -@erase "$(INTDIR)\snprintf.obj"
+ -@erase "$(INTDIR)\strlcpy.obj"
-@erase "$(OUTDIR)\$(OUTFILENAME).lib"
-@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib"
-@erase "$(OUTDIR)\libpq.res"
***************
*** 113,119 ****
"$(INTDIR)\win32.obj" \
"$(INTDIR)\getaddrinfo.obj" \
"$(INTDIR)\pgstrcasecmp.obj" \
- "$(INTDIR)\strlcpy.obj" \
"$(INTDIR)\thread.obj" \
"$(INTDIR)\inet_aton.obj" \
"$(INTDIR)\crypt.obj" \
--- 114,119 ----
***************
*** 133,138 ****
--- 133,140 ----
"$(INTDIR)\pqsignal.obj" \
"$(INTDIR)\wchar.obj" \
"$(INTDIR)\encnames.obj" \
+ "$(INTDIR)\snprintf.obj" \
+ "$(INTDIR)\strlcpy.obj" \
"$(INTDIR)\pthread-win32.obj"
***************
*** 187,197 ****
$(CPP_PROJ) ..\..\port\pgstrcasecmp.c
<<
- "$(INTDIR)\strlcpy.obj" : ..\..\port\strlcpy.c
- $(CPP) @<<
- $(CPP_PROJ) ..\..\port\strlcpy.c
- <<
-
"$(INTDIR)\thread.obj" : ..\..\port\thread.c
$(CPP) @<<
$(CPP_PROJ) ..\..\port\thread.c
--- 189,194 ----
***************
*** 233,237 ****
--- 230,244 ----
$(CPP_PROJ) /I"." ..\..\backend\utils\mb\encnames.c
<<
+ "$(INTDIR)\snprintf.obj" : ..\..\port\snprintf.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\port\snprintf.c
+ <<
+
+ "$(INTDIR)\strlcpy.obj" : ..\..\port\strlcpy.c
+ $(CPP) @<<
+ $(CPP_PROJ) ..\..\port\strlcpy.c
+ <<
+
.c.obj:
$(CPP) $(CPP_PROJ) $<
Index: src/interfaces/libpq/win32.mak
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/win32.mak,v
retrieving revision 1.42
diff -c -c -r1.42 win32.mak
*** src/interfaces/libpq/win32.mak 21 Nov 2006 23:26:47 -0000 1.42
--- src/interfaces/libpq/win32.mak 6 Jan 2007 01:40:05 -0000
***************
*** 74,81 ****
-@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib"
-@erase "$(OUTDIR)\libpq.res"
-@erase "$(OUTDIR)\$(OUTFILENAME).dll"
- # -@erase "*.pch"
- # -@erase "$(OUTDIR)\libpq.pch"
-@erase "$(OUTDIR)\$(OUTFILENAME)dll.exp"
-@erase "$(INTDIR)\pg_config_paths.h"
--- 74,79 ----
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-07 23:19 L Bayuk <lbayuk@pobox.com>
parent: Bruce Momjian <bruce@momjian.us>
0 siblings, 1 reply; 16+ messages in thread
From: L Bayuk @ 2007-01-07 23:19 UTC (permalink / raw)
To: Bruce Momjian <bruce@momjian.us>; +Cc: pgsql-interfaces
On Fri, Jan 05, 2007 at 08:57:00PM -0500, Bruce Momjian wrote:
>
> I have created the following patch based on your description of how to
> get BCC compiled. Please let me know how it works against a stock
> PostgreSQL 8.2.X and I can include the patch in 8.2.2. Sorry it didn't
> make it in time for 8.2.1.
I understand about 8.2.1, and sorry for not getting to this sooner. I did
have a patch file ready. I've compared it with the one you attached, and I
have some questions.
1. In the past, I've had to define "inline" to nothing to get libpq to compile
with BCC, but I don't know if it is still necessary. I had that in my patch
but you left it out. Do you know that this is no longer necessary, or
should I test it?
2. I also have a patch for bin/psql/bcc32.mak which basically synchronizes
it to changes in win32.mak. With this patch, psql compiles with BCC -
but it does not run well. (See my previous post on INTERFACES.) Can we
include the patch anyway? Maybe someone will try to fix what's wrong
someday and this patch will help.
3. To build libpq with BCC for use with pgtcl-ng, I had to add "-c" to the
LINK32_FLAGS (makes symbols case sensitive, due to PQflush() vs pqFlush()
if I recall), and change the runtime library from cw32mti.lib to cw32mt.lib
(static version). I don't know if these are specific to linking with Tcl
libraries, but I can't see it would hurt anyone else. Can I include these
in the patch?
I will try your patch, and look into the inline thing as soon as I can,
perhaps Monday.
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-08 15:54 Bruce Momjian <bruce@momjian.us>
parent: L Bayuk <lbayuk@pobox.com>
0 siblings, 1 reply; 16+ messages in thread
From: Bruce Momjian @ 2007-01-08 15:54 UTC (permalink / raw)
To: L Bayuk <lbayuk@pobox.com>; +Cc: pgsql-interfaces
L Bayuk wrote:
> On Fri, Jan 05, 2007 at 08:57:00PM -0500, Bruce Momjian wrote:
> >
> > I have created the following patch based on your description of how to
> > get BCC compiled. Please let me know how it works against a stock
> > PostgreSQL 8.2.X and I can include the patch in 8.2.2. Sorry it didn't
> > make it in time for 8.2.1.
>
> I understand about 8.2.1, and sorry for not getting to this sooner. I did
> have a patch file ready. I've compared it with the one you attached, and I
> have some questions.
>
> 1. In the past, I've had to define "inline" to nothing to get libpq to compile
> with BCC, but I don't know if it is still necessary. I had that in my patch
> but you left it out. Do you know that this is no longer necessary, or
> should I test it?
We adjusted inline for 8.2 so I figured you will need to retest this
before we add it.
> 2. I also have a patch for bin/psql/bcc32.mak which basically synchronizes
> it to changes in win32.mak. With this patch, psql compiles with BCC -
> but it does not run well. (See my previous post on INTERFACES.) Can we
> include the patch anyway? Maybe someone will try to fix what's wrong
> someday and this patch will help.
Yes, let's do that.
> 3. To build libpq with BCC for use with pgtcl-ng, I had to add "-c" to the
> LINK32_FLAGS (makes symbols case sensitive, due to PQflush() vs pqFlush()
> if I recall), and change the runtime library from cw32mti.lib to cw32mt.lib
> (static version). I don't know if these are specific to linking with Tcl
> libraries, but I can't see it would hurt anyone else. Can I include these
> in the patch?
I did some research and it seems the MS linker is case-sensitive by
default, while BCC is case-insensitive by default, so that -c option is
something we definately should add to the bcc makefile.
> I will try your patch, and look into the inline thing as soon as I can,
> perhaps Monday.
Great. Just send me a patch that works on your setup and I will apply
it. Thanks.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-09 00:34 L Bayuk <lbayuk@pobox.com>
parent: Bruce Momjian <bruce@momjian.us>
0 siblings, 1 reply; 16+ messages in thread
From: L Bayuk @ 2007-01-09 00:34 UTC (permalink / raw)
To: Bruce Momjian <bruce@momjian.us>; +Cc: pgsql-interfaces
On Mon, Jan 08, 2007 at 10:54:23AM -0500, Bruce Momjian wrote:
> L Bayuk wrote:
> >...
> > 1. In the past, I've had to define "inline" to nothing...
> We adjusted inline for 8.2 so I figured you will need to retest this
> before we add it.
Tested and works as is in 8.2.0. No need to #define inline (as nothing).
>...
> > 3. To build libpq with BCC for use with pgtcl-ng, I had to add "-c" to the
> > LINK32_FLAGS (makes symbols case sensitive, due to PQflush() vs pqFlush()
> > if I recall), and change the runtime library from cw32mti.lib to cw32mt.lib
> > (static version). I don't know if these are specific to linking with Tcl
> > libraries, but I can't see it would hurt anyone else. Can I include these
> > in the patch?
>
> I did some research and it seems the MS linker is case-sensitive by
> default, while BCC is case-insensitive by default, so that -c option is
> something we definately should add to the bcc makefile.
I think I was wrong. According to the Borland Linker documentation, -c
defaults on (case sensitive). But when I link without -c, it warns about
pqFlush vs PQflush. Confusing. I'm going to try it again, both ways.
Why are there two functions anyway? I suppose historical reasons.
Since PQflush(c) is { return pqFlush(c); } I guess if the linker gets
the case thing wrong we loop until overrunning the stack.
I would also prefer to use cm32mt.lib; it makes blibpq.dll bigger but
otherwise it requires another DLL at runtime, I think (cw3250mt.dll).
> > I will try your patch, and look into the inline thing as soon as I can,
> > perhaps Monday.
>
> Great. Just send me a patch that works on your setup and I will apply
> it. Thanks.
Don't apply your patch. There is an extra #endif in port/win32.h after the
patch which breaks it. I will fix, add the psql/bcc32.mak stuff, test it,
and post it on [PATCHES].
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-09 03:48 Bruce Momjian <bruce@momjian.us>
parent: L Bayuk <lbayuk@pobox.com>
0 siblings, 2 replies; 16+ messages in thread
From: Bruce Momjian @ 2007-01-09 03:48 UTC (permalink / raw)
To: L Bayuk <lbayuk@pobox.com>; +Cc: pgsql-interfaces
L Bayuk wrote:
> On Mon, Jan 08, 2007 at 10:54:23AM -0500, Bruce Momjian wrote:
> > L Bayuk wrote:
> > >...
> > > 1. In the past, I've had to define "inline" to nothing...
> > We adjusted inline for 8.2 so I figured you will need to retest this
> > before we add it.
>
> Tested and works as is in 8.2.0. No need to #define inline (as nothing).
>
> >...
> > > 3. To build libpq with BCC for use with pgtcl-ng, I had to add "-c" to the
> > > LINK32_FLAGS (makes symbols case sensitive, due to PQflush() vs pqFlush()
> > > if I recall), and change the runtime library from cw32mti.lib to cw32mt.lib
> > > (static version). I don't know if these are specific to linking with Tcl
> > > libraries, but I can't see it would hurt anyone else. Can I include these
> > > in the patch?
> >
> > I did some research and it seems the MS linker is case-sensitive by
> > default, while BCC is case-insensitive by default, so that -c option is
> > something we definately should add to the bcc makefile.
>
> I think I was wrong. According to the Borland Linker documentation, -c
> defaults on (case sensitive). But when I link without -c, it warns about
> pqFlush vs PQflush. Confusing. I'm going to try it again, both ways.
Ah, interesting.
> Why are there two functions anyway? I suppose historical reasons.
> Since PQflush(c) is { return pqFlush(c); } I guess if the linker gets
> the case thing wrong we loop until overrunning the stack.
Yes, I assume historical, so feel free to add -c, but add a
documentation comment about it so we remember.
> I would also prefer to use cm32mt.lib; it makes blibpq.dll bigger but
> otherwise it requires another DLL at runtime, I think (cw3250mt.dll).
Sure.
> > > I will try your patch, and look into the inline thing as soon as I can,
> > > perhaps Monday.
> >
> > Great. Just send me a patch that works on your setup and I will apply
> > it. Thanks.
>
> Don't apply your patch. There is an extra #endif in port/win32.h after the
> patch which breaks it. I will fix, add the psql/bcc32.mak stuff, test it,
> and post it on [PATCHES].
OK, great. Thanks.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-10 00:41 L Bayuk <lbayuk@pobox.com>
parent: Bruce Momjian <bruce@momjian.us>
1 sibling, 0 replies; 16+ messages in thread
From: L Bayuk @ 2007-01-10 00:41 UTC (permalink / raw)
To: Bruce Momjian <bruce@momjian.us>; +Cc: pgsql-interfaces
On Mon, Jan 08, 2007 at 10:48:02PM -0500, Bruce Momjian wrote:
> >
> > I think I was wrong. According to the Borland Linker documentation, -c
> > defaults on (case sensitive). But when I link without -c, it warns about
> > pqFlush vs PQflush. Confusing. I'm going to try it again, both ways.
>
> Ah, interesting.
>
> > Why are there two functions anyway? I suppose historical reasons.
> > Since PQflush(c) is { return pqFlush(c); } I guess if the linker gets
> > the case thing wrong we loop until overrunning the stack.
>
> Yes, I assume historical, so feel free to add -c, but add a
> documentation comment about it so we remember.
On closer look I saw that the warning about pqFlush vs PQflush was from the
library tool (TLIB), not the linker. The linker is apparently
case-sensitive by default, so there is no need for -c there. As to the
library tool, the help file says it is not case sensitive, -c makes it so,
but there is a warning against its use. Since it seems to work as is (no
-c) I think it is best to leave it alone.
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-15 12:01 CN <cnliou9@fastmail.fm>
parent: Bruce Momjian <bruce@momjian.us>
1 sibling, 1 reply; 16+ messages in thread
From: CN @ 2007-01-15 12:01 UTC (permalink / raw)
To: pgsql-interfaces
On Fri, 5 Jan 2007 20:57:00 -0500 (EST), Bruce Momjian <bruce@momjian.us>
wrote:
> I have created the following patch based on your description of how to
> get BCC compiled. Please let me know how it works against a stock
> PostgreSQL 8.2.X and I can include the patch in 8.2.2.
I tried the CVS version just now and noticed that
(1) I have to do "ln -s libpq.rc.in libpq.rc".
(2) File blibpqdll.def is missing. I then got one from
http://src.opensolaris.org/source/xref/sfw/usr/src/cmd/postgres/postgresql-8.1.4/src/interfaces/libp...
Then it compiles fine and appears to work with _old_ libwine.
By the way, I have not received any response to BUG #2827. Hopefully
someone will help.
Regards,
CN
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-15 22:18 Bruce Momjian <bruce@momjian.us>
parent: CN <cnliou9@fastmail.fm>
0 siblings, 2 replies; 16+ messages in thread
From: Bruce Momjian @ 2007-01-15 22:18 UTC (permalink / raw)
To: CN <cnliou9@fastmail.fm>; +Cc: pgsql-interfaces
CN wrote:
> On Fri, 5 Jan 2007 20:57:00 -0500 (EST), Bruce Momjian <bruce@momjian.us>
> wrote:
>
> > I have created the following patch based on your description of how to
> > get BCC compiled. Please let me know how it works against a stock
> > PostgreSQL 8.2.X and I can include the patch in 8.2.2.
>
> I tried the CVS version just now and noticed that
>
> (1) I have to do "ln -s libpq.rc.in libpq.rc".
Interesting question. I looked at the install instructions and there is
no mention of this for MSVC or BCC:
http://www.postgresql.org/docs/8.2/static/install-win32.html
I looked at the win32.mak file, and see no refererence to libpq.rc.in,
so how is the MSVC working? Should we add rules for both?
> (2) File blibpqdll.def is missing. I then got one from
> http://src.opensolaris.org/source/xref/sfw/usr/src/cmd/postgres/postgresql-8.1.4/src/interfaces/libp...
>
> Then it compiles fine and appears to work with _old_ libwine.
Uh, it is supposed to be build by this rule:
$(srcdir)/blibpqdll.def: exports.txt
echo '; DEF file for Borland C++ Builder' > $@
echo 'LIBRARY BLIBPQ' >> $@
echo 'EXPORTS' >> $@
sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/ _\1@ \2/' < $< >> $@
echo '' >> $@
echo '; Aliases for MS compatible names' >> $@
sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/ \1= _\1/' < $< | sed 's/ *$$//' >> $@
Is there a reason this failed?
> By the way, I have not received any response to BUG #2827. Hopefully
> someone will help.
Yes, I saw that. It is not clear whether this is a libpq problem or a
Wine problem. We are unsure how to debug this. I wonder whether it is
a problem with getaddrinfo. We did fix an addrinfo issue in 8.2.1:
* Improve handling of getaddrinfo() on AIX (Tom)
I wonder if that fixes it.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-16 01:31 L Bayuk <lbayuk@pobox.com>
parent: Bruce Momjian <bruce@momjian.us>
1 sibling, 1 reply; 16+ messages in thread
From: L Bayuk @ 2007-01-16 01:31 UTC (permalink / raw)
To: Bruce Momjian <bruce@momjian.us>; +Cc: CN <cnliou9@fastmail.fm>; pgsql-interfaces
On Mon, Jan 15, 2007 at 05:18:20PM -0500, Bruce Momjian wrote:
> CN wrote:
> > I tried the CVS version just now and noticed that
> >
> > (1) I have to do "ln -s libpq.rc.in libpq.rc".
>
> Interesting question. I looked at the install instructions and there is
> no mention of this for MSVC or BCC:
>
> http://www.postgresql.org/docs/8.2/static/install-win32.html
>
> I looked at the win32.mak file, and see no refererence to libpq.rc.in,
> so how is the MSVC working? Should we add rules for both?
libpq.rc is included in the source distribution of PostgreSQL.
I think it gets created from libpq.rc.in during release generation
(via "make distprep"?). So it does not need to go in any *.mak files.
But it wasn't there because he built from CVS.
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-16 03:09 CN <cnliou9@fastmail.fm>
parent: Bruce Momjian <bruce@momjian.us>
1 sibling, 1 reply; 16+ messages in thread
From: CN @ 2007-01-16 03:09 UTC (permalink / raw)
To: pgsql-interfaces
On Tue, 16 Jan 2007 06:18:20 +0800, Bruce Momjian <bruce@momjian.us> wrote:
>> (2) File blibpqdll.def is missing. I then got one from
>> http://src.opensolaris.org/source/xref/sfw/usr/src/cmd/postgres/postgresql-8.1.4/src/interfaces/libp...
>>
>> Then it compiles fine and appears to work with _old_ libwine.
>
> Uh, it is supposed to be build by this rule:
>
> $(srcdir)/blibpqdll.def: exports.txt
> echo '; DEF file for Borland C++ Builder' > $@
> echo 'LIBRARY BLIBPQ' >> $@
> echo 'EXPORTS' >> $@
> sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/ _\1@ \2/' < $<
> >> $@
> echo '' >> $@
> echo '; Aliases for MS compatible names' >> $@
> sed -e '/^#/d' -e 's/^\(.* \)\([0-9][0-9]*\)/ \1= _\1/' < $<
> | sed 's/ *$$//' >> $@
>
> Is there a reason this failed?
Oops! Probably it is because I didn't run "configure" in advance. Maybe
MinGW or Cygwin is mandatory as I guess BCB doesn't come with "sed"
although pgsql document says they are optional if only client library is
to be built in Windowz.
>
>> By the way, I have not received any response to BUG #2827. Hopefully
>> someone will help.
>
> Yes, I saw that. It is not clear whether this is a libpq problem or a
> Wine problem. We are unsure how to debug this. I wonder whether it is
> a problem with getaddrinfo. We did fix an addrinfo issue in 8.2.1:
>
> * Improve handling of getaddrinfo() on AIX (Tom)
>
> I wonder if that fixes it.
>
That problem remains in the CVS version I checked out about 20 hours ago.
Regards,
CN
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-16 04:49 Bruce Momjian <bruce@momjian.us>
parent: L Bayuk <lbayuk@pobox.com>
0 siblings, 0 replies; 16+ messages in thread
From: Bruce Momjian @ 2007-01-16 04:49 UTC (permalink / raw)
To: L Bayuk <lbayuk@pobox.com>; +Cc: CN <cnliou9@fastmail.fm>; pgsql-interfaces
L Bayuk wrote:
> On Mon, Jan 15, 2007 at 05:18:20PM -0500, Bruce Momjian wrote:
> > CN wrote:
> > > I tried the CVS version just now and noticed that
> > >
> > > (1) I have to do "ln -s libpq.rc.in libpq.rc".
> >
> > Interesting question. I looked at the install instructions and there is
> > no mention of this for MSVC or BCC:
> >
> > http://www.postgresql.org/docs/8.2/static/install-win32.html
> >
> > I looked at the win32.mak file, and see no refererence to libpq.rc.in,
> > so how is the MSVC working? Should we add rules for both?
>
> libpq.rc is included in the source distribution of PostgreSQL.
> I think it gets created from libpq.rc.in during release generation
> (via "make distprep"?). So it does not need to go in any *.mak files.
> But it wasn't there because he built from CVS.
Ah, yes, I see it in libpq/Makefile now. I didn't realize that.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
^ permalink raw reply [nested|flat] 16+ messages in thread
* Re: BCC55 and libpq 8.2
@ 2007-01-16 04:51 Bruce Momjian <bruce@momjian.us>
parent: CN <cnliou9@fastmail.fm>
0 siblings, 0 replies; 16+ messages in thread
From: Bruce Momjian @ 2007-01-16 04:51 UTC (permalink / raw)
To: CN <cnliou9@fastmail.fm>; +Cc: pgsql-interfaces
> > * Improve handling of getaddrinfo() on AIX (Tom)
> >
> > I wonder if that fixes it.
> >
>
> That problem remains in the CVS version I checked out about 20 hours
> ago.
Hmm. Thanks for testing. No one else on Win32 has reported that
problem, so my guess is that there is some wine problem there.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
^ permalink raw reply [nested|flat] 16+ messages in thread
end of thread, other threads:[~2007-01-16 04:51 UTC | newest]
Thread overview: 16+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2006-12-29 02:13 Re: BCC55 and libpq 8.2 L Bayuk <lbayuk@pobox.com>
2007-01-01 21:50 ` Mark Morgan Lloyd <markMLl.pgsql-interfaces@telemetry.co.uk>
2007-01-02 01:31 ` L Bayuk <lbayuk@pobox.com>
2007-01-01 22:42 ` fabio guidi <f.guidi@libero.it>
2007-01-06 01:57 ` Bruce Momjian <bruce@momjian.us>
2007-01-07 23:19 ` L Bayuk <lbayuk@pobox.com>
2007-01-08 15:54 ` Bruce Momjian <bruce@momjian.us>
2007-01-09 00:34 ` L Bayuk <lbayuk@pobox.com>
2007-01-09 03:48 ` Bruce Momjian <bruce@momjian.us>
2007-01-10 00:41 ` L Bayuk <lbayuk@pobox.com>
2007-01-15 12:01 ` CN <cnliou9@fastmail.fm>
2007-01-15 22:18 ` Bruce Momjian <bruce@momjian.us>
2007-01-16 01:31 ` L Bayuk <lbayuk@pobox.com>
2007-01-16 04:49 ` Bruce Momjian <bruce@momjian.us>
2007-01-16 03:09 ` CN <cnliou9@fastmail.fm>
2007-01-16 04:51 ` Bruce Momjian <bruce@momjian.us>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox