plperl
От | Ragnar Hakonarson |
---|---|
Тема | plperl |
Дата | |
Msg-id | NEBBIFOICLBACOFMLADIMEBACAAA.rhakonarson@conquestnetwork.com обсуждение исходный текст |
Список | 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.oeloglvl.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-eccopts -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 modulePg: /usr/lib/perl5/site_perl/5.005/i586-linux/auto/Pg/Pg.so:undefinedsymbol: PL_sv_undef at /usr/lib/perl5/5.00503/i586-linux/DynaLoader.pmline169. at /caseTracking/packages/SP.pm line 7 BEGIN failed--compilation abortedat /caseTracking/packages/SP.pm line 7.BEGIN failed--compilationaborted at (eval 1) line 2. Any ideas? Regards Ragnar
В списке pgsql-hackers по дате отправления: