libplperl.so and libperl.so

Поиск
Список
Период
Сортировка
От David Walker
Тема libplperl.so and libperl.so
Дата
Msg-id 20041113201538.9605EABD@daahman.cosmicfires.com
обсуждение исходный текст
Ответы Re: libplperl.so and libperl.so  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Your name        : David Walker
Your email address    : david@cosmicfires.com


System Configuration
---------------------
  Architecture (example: Intel Pentium)    : Intel PII(Linux) and Intel
PPro(FBSD)

  Operating System (example: Linux 2.4.18) : Linux 2.6.9 & FreeBSD
4.10-RELEASE-p3

  PostgreSQL version (example: PostgreSQL-7.4.6) :   PostgreSQL-7.4.6

  Compiler used (example:  gcc 2.95.2)    : Linux: gcc version 3.3.4
                                          FreeBSD: gcc version 2.95.4 20020320

Please enter a FULL description of your problem:
------------------------------------------------

If PostgreSQL is compiled with PL/Perl enabled and linked against Perl
compiled with  libperl.so rather than libperl.a, then when postmaster tries to
load libplperl.so, libperl can't be found (Linux, one version of Perl
installed) or is linked with the wrong version of Perl (FreeBSD system Perl in
/usr and ports Perl in /usr/local).



Please describe a way to repeat the problem.   Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

Compile PostgreSQL with PL/Perl enabled and linked against Perl compiled with
libperl.so. Run "createlang plperl test" (assuming you have a database named
"test").
The command will fail with or "libperl.so not found" "Symbol not found".


If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

This problem occurs because the library path to libperl.so is not included in
libplperl.so.

This patch to postgresql-7.4.6/config/perl.m4 fixes the problem:

*** postgresql-7.4.6/config/perl.m4     Sat Nov 13 12:03:28 2004
--- postgresql-7.4.6-orig/config/perl.m4        Tue May 28 09:57:53 2002
***************
*** 30,35 ****
  AC_MSG_CHECKING(for flags to link embedded Perl)
  pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
  pgac_tmp2=`$PERL -MConfig -e 'print $Config{ccdlflags}'`
! perl_embed_ldflags=`echo X"$pgac_tmp1" | sed "s/^X//"`
  AC_SUBST(perl_embed_ldflags)dnl
  AC_MSG_RESULT([$perl_embed_ldflags])])
--- 30,35 ----
  AC_MSG_CHECKING(for flags to link embedded Perl)
  pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
  pgac_tmp2=`$PERL -MConfig -e 'print $Config{ccdlflags}'`
! perl_embed_ldflags=`echo X"$pgac_tmp1" | sed "s/^X//;s%$pgac_tmp2%%"`
  AC_SUBST(perl_embed_ldflags)dnl
  AC_MSG_RESULT([$perl_embed_ldflags])])




Thanks to AndrewSN in #postgresql on FreeNode for figuring out how to fix this.

David Walker
--------
http://howto.mainstreamlinux.com

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

Предыдущее
От: "PostgreSQL Bugs List"
Дата:
Сообщение: BUG #1323: Bug in Driver ODBC
Следующее
От: Stefanos Harhalakis
Дата:
Сообщение: Bogus error message about private key (not a bug).