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

Re: PATCH: The linker complains about the '-bundle_loader "../../src/backend/postgres"' against PostgreSQL 8.4 on OSX

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: PATCH: The linker complains about the '-bundle_loader "../../src/backend/postgres"' against PostgreSQL 8.4 on OSX
Date: 2012-05-03 13:23:12
Message-ID: (view raw or whole thread)
Lists: pgadmin-hackers
On 30.04.2012 15:14, Ashesh Vashi wrote:
> With PostgreSQL 8.4.11, I still face the same issue, resolved as part of
> the following checked-in:
> I tried to resolve the issue by removing the duplicate words for the
> SHLIB_LINK variable in the Makefile for pldebugger.
> I just changed it specifically for PostgreSQL 8.4 on OSX platform, because
> PostgreSQL build script may get changed in future releases (i.e. pldebugger
> is compiling well with PostgreSQL 9.0+ on OSX because of such modification.)
> Please find the attached patch for the same.
> I know - it looks ugly, but I could not think of any other solution at the
> moment.

Hmm, we have to currently jump through a lot of hoops to make the 
Makefile do what we want. First of all, we're building two libraries 
from the same Makefile. The usual PGXS targets don't support that, so I 
had to hack it so that we use the MODULES variable to buld, 
and in addition to that, set NAME=plugin_debugger and include 
src/Makefile.shlib to build

Things would be much simpler if we had a separate subdirectory for 
building and However, it would be even 
simpler if we just built it all into a single library. At the moment, 
there's a runtime dependency between and 
anyway, so that to use any of the functions in, you have to 
load If they were just one library, you could more 
easily do local debugging without having to add to 
shared_preload_libraries. At the moment you get an error about a missing 
symbol if you try to do that, unless you manually LOAD

Another unusual thing we do is that we install to the 
<installdir>/lib/plugins directory, instead of just <installdir>/lib. 
We've had to add special install and uninstall rules for that.

To make that more straightforward, I think we should just install into lib like any other extension. I don't see any 
particular reason why it has to be installed to plugins-directory.

Putting those two together, let's build just a single .so file, called, which contains both the PL/pgSQL hooks and the 
client-facing pldbg_* functions used to do debugging. After that, the 
makefile will be much simpler, which means less trouble with OS-specific 
things like this. Not only now, but also in the future if the pgxs 
makefiles are changed - we make quite a few assumptions of the pgxs 
build system at the moment.

   Heikki Linnakangas

In response to


pgadmin-hackers by date

Next:From: pgAdmin TracDate: 2012-05-04 21:30:42
Subject: Re: [pgAdmin III] #13: Pasting from apps on Mac OS X doesn't always work
Previous:From: pgAdmin TracDate: 2012-05-03 12:08:40
Subject: Re: [pgAdmin III] #13: Pasting from apps on Mac OS X doesn't always work

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