Re: Explicit LOAD and dynamic library loading

Поиск
Список
Период
Сортировка
От Stephen Scheck
Тема Re: Explicit LOAD and dynamic library loading
Дата
Msg-id CAKjnHz1M9_tB37OgRkmTEF2ZPDaxBrJ4cC-9_MGBFcEYjm0q5g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Explicit LOAD and dynamic library loading  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Explicit LOAD and dynamic library loading  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Tom,

Not sure what you mean by "oid" system:

[postgres@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@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@sss.pgh.pa.us> wrote:
Stephen Scheck <singularsyntax@gmail.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

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Explicit LOAD and dynamic library loading
Следующее
От: 高健
Дата:
Сообщение: Re: My function run successfully with cursor, but can't change table