"Wayne M. Syvinski" <matthew@techcelsior.com> writes:
> Compiled PostgreSQL 7.3.3. from ports. I didn't know that shared
> libraries were required from Perl to use plperl.
> So I recompiled Perl 5.8.0 from ports - amended Makefile to allow
> threads and shared libraries
> (-Dusethreads=y -Duseithreads=y -Duseshrplib=y) (I enabled threads
> because I needed them to try something in MySQL)
> Then I compiled plperl from ports.
> I logged in as root and su to pgsql (postgres user) and type:
> CREATE FUNCTION plperl_call_handler() RETURNS opaque AS
> '/usr/local/lib/postgresql/plperl.so' LANGUAGE 'C';
> This didn't work. I get back <deletia> Undefined symbol
> "Perl_sv_2pv_flags".
I'm wondering whether you compiled plperl against the Perl include files
that match the Perl library you were using. This is an easy mistake to
make if you build/install Perl in a nonstandard place (and "the standard
place" isn't very well-defined, either). Check the -I arguments that
were used at compile time for plperl, and check the dynamic link search
path used at runtime.
regards, tom lane