Thread

  1. plperl difficulties

    Ragnar Hakonarson <rhakonarson@conquestnetwork.com> — 2000-05-22T18:54:59Z

    Hi,
    
    I have statically linked the DynaLoader with plperl.so and modified plperl.c
    so that plperl functions executes 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?
    
    Any help is highly appreciated :)
    
    Regards
    Ragnar