Re: Explicit LOAD and dynamic library loading

From: Stephen Scheck <singularsyntax(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Explicit LOAD and dynamic library loading
Date: 2013-06-13 06:03:37
Message-ID: CAKjnHz1M9_tB37OgRkmTEF2ZPDaxBrJ4cC-9_MGBFcEYjm0q5g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Tom,

Not sure what you mean by "oid" system:

[postgres(at)dev1 lib]$ uname -a
Linux dev1 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011
x86_64 x86_64 x86_64 GNU/Linux

[postgres(at)dev1 lib]$ ldd bar.so
linux-vdso.so.1 => (0x00007fff1c7ff000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa4c96ac000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa4c9c5d000)

pinguinito:~/sandbox/postgresql-9.2.4 sscheck$ head -10 config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by PostgreSQL configure 9.2.4, which was
generated by GNU Autoconf 2.63. Invocation command line was

$ ./configure --prefix=/home/sscheck/sandbox/postgresql-9.2.4-build
--enable-debug CFLAGS=-O0

You'll have to bear with me, I'm not well versed in the subtleties of
rpath, shared vs. static linking, etc. (actually almost completely
ignorant). Looking at configure help though "--disable-rpath" is not
present...

After digging into the PGXS docs a bit more, I think if I change the
Makefile a bit this may work:

MODULES = foo bar
MODULE_big = bar
OBJS = bar.o
SHLIB_LINK = foo.o

Thanks for taking a look at this.

-Steve

On Wed, Jun 12, 2013 at 8:08 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Stephen Scheck <singularsyntax(at)gmail(dot)com> writes:
> > However, whenever I run one of the UDTs defined in bar, I get this error
> > message:
>
> > dev=# SELECT * FROM test1 WHERE (info(bar_dat)).some_prop = 10;
> > ERROR: could not load library
> > "/vol/data/home/postgres/pg-builds/9.2.4/lib/bar.so":
> > /vol/data/home/postgres/pg-builds/9.2.4/lib/bar.so: undefined symbol:
> > foo_func1
>
> I'm betting an rpath problem. Is this a Linux-oid system? What does
> "ldd /vol/data/home/postgres/pg-builds/9.2.4/lib/bar.so" say? Is there
> any option to set rpath in the link command for bar.so?
>
> regards, tom lane
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message 高健 2013-06-13 09:58:38 Re: My function run successfully with cursor, but can't change table
Previous Message Tom Lane 2013-06-13 03:08:23 Re: Explicit LOAD and dynamic library loading