Skip site navigation (1) Skip section navigation (2)

libpq and libecpg problems on MacOs-X (Panther/10.3.3)

From: Richard Frith-Macdonald <richard(at)brainstorm(dot)co(dot)uk>
To: pgsql-ports(at)postgresql(dot)org
Subject: libpq and libecpg problems on MacOs-X (Panther/10.3.3)
Date: 2004-04-04 09:37:38
Message-ID: B63DB18A-861B-11D8-A590-000A95CD7044@brainstorm.co.uk (view raw or flat)
Thread:
Lists: pgsql-ports
When trying to use postgresql on my MacOS-X system (10.3.3) I 
encountered the problem that the libecpg and libpq dynamic libraries 
could not be linked into my applications.

Upon investigation, it turns out that the postgresql libraries on 
MacOS-X/Darwin are being built as 'bundles' ... which means that you 
can dynamically load them into a running program using the dlopen() 
api, but you can't link them at application build time.  This may be 
correct behavior for some of the modules in postgres (eg the perl 
module), but is certainly wrong for libecpg and libpq ... which are 
meant to be linked with C (and other language) applications.

I attach a patch which fixes this for MacOS-X 10.3.3, by altering the 
makefiles to understand the two ways of building a library/bundle and 
having a variable setting 'BUNDLE=no' to day that the normal dynamic 
library should be built rather than a bundle.  The patch alters the 
libecpg and libpq makefiles to set this variable, so these two are 
built as normal dynamic libraries, while the other code continues to be 
built as bundles.

Probably there are other parts of the system which should not be 
bundles either ... but I don't use them so I don't know.
Possibly behavior differs in older versions of MacOS-X ... again, I 
don't have the old systems so I don't know.


Attachment: patch.diff
Description: application/octet-stream (3.8 KB)

Responses

pgsql-ports by date

Next:From: Richard Frith-MacdonaldDate: 2004-04-04 09:40:09
Subject: Re: libpq and libecpg problems on MacOs-X (Panther/10.3.3)
Previous:From: Tom LaneDate: 2004-04-04 05:04:46
Subject: Re: [ODBC] invalid input syntax for type tid: "(,)"

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group