plperl

From: "Ragnar Hakonarson" <rhakonarson(at)conquestnetwork(dot)com>
To: <pgsql-hackers(at)postgresql(dot)org>
Subject: plperl
Date: 2000-05-22 10:37:32
Message-ID: NEBBIFOICLBACOFMLADIMEBACAAA.rhakonarson@conquestnetwork.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

I have statically linked the DynaLoader with plperl.so and modified plperl.c
so that plperl functions executed do not execute within the 'safe
compartment'.

plperl.c have been changed as follows:

extern void boot_Opcode _((CV * cv));
extern void boot_SPI _((CV * cv));
extern void boot_DynaLoader _((CV* cv)); <------ Added

static void plperl_init_shared_libs(void) {
char *file = __FILE__;
dXSUB_SYS; <------- Added

newXS("Opcode::bootstrap", boot_Opcode, file);
newXS("SPI::bootstrap", boot_SPI, file);
newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);
<--------added
}

I then compile plperl.c as follows:

gcc -o blib/arch/auto/plperl/plperl.so -shared -L/usr/local/lib plperl.o
eloglvl.o SPI.o /usr/lib/perl5/5.00503/i586-linux/auto/Opcode/Opcode.so
-L/usr/lib/perl5/5.00503/i586-linux/CORE -lperl `perl -MExtUtils::Embed -e
ccopts -e ldopts`

When I try to import a perl module that relies on a C module I get the
following error message:

ERROR: creation of function failed : Can't load
'/usr/lib/perl5/site_perl/5.005/i586-linux/auto/Pg/Pg.so' for module
Pg: /usr/lib/perl5/site_perl/5.005/i586-linux/auto/Pg/Pg.so: undefined
symbol: PL_sv_undef at /usr/lib/perl5/5.00503/i586-linux/DynaLoader.pm
line 169.

at /caseTracking/packages/SP.pm line 7 BEGIN failed--compilation aborted
at /caseTracking/packages/SP.pm line 7.
BEGIN failed--compilation aborted at (eval 1) line 2.

Any ideas?

Regards
Ragnar

Browse pgsql-hackers by date

  From Date Subject
Next Message Chris Bitmead 2000-05-22 11:18:25 Re: Thus spoke SQL3 (on OO)
Previous Message Mike Mascari 2000-05-22 10:12:40 Re: Re: [HACKERS] Postgresql OO Patch