Libpq problem on Windows.

Started by Dave Pageover 21 years ago3 messages
#1Dave Page
dpage@vale-housing.co.uk

I posted a message to pgsql-hackers-win32 regarding a problem with libpq
exports on Win32 the other day, but have yet to receive any replies.
Magnus & I have discussed the problem over IM and we both believe it is
important to fix, but neither of us are fluent enough in make-ese to do
so.

Basically the issue is that the symbols exported by the mingw build of
libpq.dll do not match those exported by the VC++/Borland builds. What
we seem to get is:

- Mingw exports *all* symbols appropiate for the given build.
- VC++/Borland builds appear to export only the published API, but not
the SSL related symbols (even with SSL enabled in the build).

I can probably sort the second problem by adding a second set of .def
files for SSL builds, however it seems to me that the mingw build should
not export all symbols. Whether or nt that is changed, the 2 build types
certainly need to be brought into sync otherwise Windows users may end
up seeing unexplained crashes.

Any comments on what should be done (and whether I should hack the
BCC/VC++ stuff)?

Regards, Dave.

#2Magnus Hagander
mha@sollentuna.net
In reply to: Dave Page (#1)
Re: Libpq problem on Windows.

Bruce, while we're pondering on how to solve this, can you put this up
on the open items list so we don't miss it? It's a pretty major issue.

//Magnus

Show quoted text

-----Original Message-----
From: Dave Page [mailto:dpage@vale-housing.co.uk]
Sent: Thursday, September 30, 2004 11:35 PM
To: pgsql-hackers@postgresql.org
Subject: [HACKERS] Libpq problem on Windows.

I posted a message to pgsql-hackers-win32 regarding a problem
with libpq exports on Win32 the other day, but have yet to
receive any replies.
Magnus & I have discussed the problem over IM and we both
believe it is important to fix, but neither of us are fluent
enough in make-ese to do so.

Basically the issue is that the symbols exported by the mingw
build of libpq.dll do not match those exported by the
VC++/Borland builds. What we seem to get is:

- Mingw exports *all* symbols appropiate for the given build.
- VC++/Borland builds appear to export only the published
API, but not the SSL related symbols (even with SSL enabled
in the build).

I can probably sort the second problem by adding a second set
of .def files for SSL builds, however it seems to me that the
mingw build should not export all symbols. Whether or nt that
is changed, the 2 build types certainly need to be brought
into sync otherwise Windows users may end up seeing
unexplained crashes.

Any comments on what should be done (and whether I should
hack the BCC/VC++ stuff)?

Regards, Dave.

---------------------------(end of
broadcast)---------------------------
TIP 8: explain analyze is your friend

#3Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Magnus Hagander (#2)
Re: Libpq problem on Windows.

OK, added:

o fix MinGW libpq to export only required symbols
o fix MSVC build to export SSL symbols

---------------------------------------------------------------------------

Magnus Hagander wrote:

Bruce, while we're pondering on how to solve this, can you put this up
on the open items list so we don't miss it? It's a pretty major issue.

//Magnus

-----Original Message-----
From: Dave Page [mailto:dpage@vale-housing.co.uk]
Sent: Thursday, September 30, 2004 11:35 PM
To: pgsql-hackers@postgresql.org
Subject: [HACKERS] Libpq problem on Windows.

I posted a message to pgsql-hackers-win32 regarding a problem
with libpq exports on Win32 the other day, but have yet to
receive any replies.
Magnus & I have discussed the problem over IM and we both
believe it is important to fix, but neither of us are fluent
enough in make-ese to do so.

Basically the issue is that the symbols exported by the mingw
build of libpq.dll do not match those exported by the
VC++/Borland builds. What we seem to get is:

- Mingw exports *all* symbols appropiate for the given build.
- VC++/Borland builds appear to export only the published
API, but not the SSL related symbols (even with SSL enabled
in the build).

I can probably sort the second problem by adding a second set
of .def files for SSL builds, however it seems to me that the
mingw build should not export all symbols. Whether or nt that
is changed, the 2 build types certainly need to be brought
into sync otherwise Windows users may end up seeing
unexplained crashes.

Any comments on what should be done (and whether I should
hack the BCC/VC++ stuff)?

Regards, Dave.

---------------------------(end of
broadcast)---------------------------
TIP 8: explain analyze is your friend

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073