Subject: pkg/13726: problems w/ perl, mod_perl, and C based perl modules?
To: None <gnats-bugs@gnats.netbsd.org>
From: None <hag@linnaean.org>
List: netbsd-bugs
Date: 08/15/2001 18:51:54
>Number:         13726
>Category:       pkg
>Synopsis:       problems w/ perl, mod_perl, and C based perl modules?
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 15 15:48:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Daniel Hagerty
>Release:        NetBSD 1.5.1
>Organization:
	
>Environment:
	
System: NetBSD perdition.linnaean.org 1.5.2_ALPHA NetBSD 1.5.2_ALPHA (PERDITION) #8: Thu Aug 9 22:12:06 EDT 2001 hag@perdition.linnaean.org:/disks/stripe/hag/work/hacking/os/netbsd/src/sys/arch/i386/compile/PERDITION i386


>Description:
	I've got a NetBSD-1.5 esqueue box running perl, and apache
mod_perl built from recent package source (refreshed in last 48 hours).

On updating a bunch of perl stuff, my mod_perl stopped working with
the error message:

Can't load '/usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd/auto/DBI/DBI.so' for module DBI: /usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd/auto/DBI/DBI.so: Undefined symbol "PL_tainting" (reloc type = 6, symnum = 85) at /usr/pkg/lib/perl5/5.6.1/i386-netbsd/DynaLoader.pm line 206.
 at /usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd/DBI.pm line 185
BEGIN failed--compilation aborted at /usr/pkg/lib/perl5/site_perl/5.6.1/i386-netbsd/DBI.pm line 185.
Compilation failed in require at /usr/pkg/lib/perl5/site_perl/5.6.1/Apache/DBI.pm line 4.
BEGIN failed--compilation aborted at /usr/pkg/lib/perl5/site_perl/5.6.1/Apache/DBI.pm line 4.
Compilation failed in require at (eval 3) line 3.


    I've started playing with this, and I seem to be in dynamic linker
hell.  For some reason, libperl's PL_tainting symbol isn't visible to
DBI.so, while the same symbol is visible to mod_perl.  mod_perl.so has
a dynamic dependancy against libperl; DBI.so doesn't.  But DBI works
under the normal perl.

    Anyway, I'm going to go home and rebuild most of the critical path
ONE MORE TIME, just to make sure that it's not my problem (other than
it obviously being my problem due to using perl).

>How-To-Repeat:
	Build perl, apache, mod_perl, ap-DBI, and make them play
together.  Does yours explode like mine?

	Note that my kernel has setuidshellscripts enabled, which may
be related to my problem.

>Fix:
	If you link C based perl modules against with libperl, they
work, both under standalone perl, and mod_perl.  I'm not sure what the
real solution is.  Do modules need to be exlicitly linked against
libperl?
>Release-Note:
>Audit-Trail:
>Unformatted: