pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Robert Treat <xzilla@users.sourceforge.net>
To: pgsql-interfaces@postgresql.org
Subject: Fwd: Re: ERROR: dynamic load not supported
Date: Thu, 18 Sep 2003 09:09:58 -0400
Message-ID: <200309180909.58297.xzilla@users.sourceforge.net> (raw)

for future reference

----------  Forwarded Message  ----------

Subject: Re: [INTERFACES] ERROR: dynamic load not supported
Date: Wednesday 17 September 2003 15:40
From: Rich Cullingford <rculling@sysd.com>
To: Robert Treat <xzilla@users.sourceforge.net>

Robert Treat wrote:
> I had a similar problem with some pgcrypto functions until i specified
> the specific .so file.
>
> Robert Treat
>
> On Wed, 2003-09-17 at 10:55, Rich Cullingford wrote:
>>All,
>>This is with a new 7.3.4 installation. Every CREATE FUNCTION call I
>>make, e.g.,
>>
>>CREATE FUNCTION plpgsql_call_handler () RETURNS LANGUAGE_HANDLER AS
>>     '<absolute-path-to-pg-install>/lib/plpgsql' LANGUAGE C;
>>
>>fails with this error. I know the specification of absolute paths for
>>the library lookup is deprecated, but it's supposed to still work, and,
>>as of last week, did. "I haven't changed anything." :) (But doubtless
>>have done something stupid.)

Robert,
Thanks for replying!

This turned out to be a nasty incompatibility between the way libtool &
autoconf function in GNU and PG. Here's the note that describes the
problem (attached to the RT ticket that records it):

*******
If you configure a shared config.cache for multiple packages, be aware that
Postgres's use of autoconf variables is incompatible with the way they are
used in packages that use libtool.

Specifically, Postgres uses

AC_CHECK_LIB(dl,       main)
...
AC_CHECK_FUNCS([cbrt ... dlopen fdatasync])

which adds -ldl to LIBS (if libdl exists) and then searches for the dlopen
function in the current set of LIBS; on systems with dlopen in libdl, this
sets the cache variable $ac_cv_func_dlopen = "yes".  If a cached "no" value
is seen, Postgres (maybe incorrectly) believes that dlopen is not
available.

Libtool-based programs, on the other hand, set $ac_cv_func_dlopen = "no"
if dlopen is not present in libc, and use another mechanism to determine if
dlopen is available in libdl instead.  If a cached "yes" value is seen,
libtool (maybe incorrectly) believes that -ldl need not be added to LIBS.

Workaround for this is to use separate configure caches for Postgres and
other (libtool-based) programs.  You can copy the caches as long as you
filter
out the ac_cv_func_dlopen line using something like:

	sed /ac_cv_func_dlopen/d < ../config.cache > config.cache
*****

Watch out if you try to package PG with GNU utilities!
                           Rich Cullingford
                           rculling@sysd.com

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

-- 
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL



view thread (4+ messages)

Message-ID: <200309180909.58297.xzilla@users.sourceforge.net>
Permalink:  ../200309180909.58297.xzilla@users.sourceforge.net/
Also on:    postgresql.org/message-id/200309180909.58297.xzilla@users.sourceforge.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: xzilla@users.sourceforge.net
  Subject: Re: Fwd: Re: ERROR: dynamic load not supported
  In-Reply-To: <200309180909.58297.xzilla@users.sourceforge.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

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