I posted this already, but haven't seen it come across so I'm trying
again. Please forgive me if you've seen it before.
I'm trying to build mod_perl as a DSO under Solaris 2.6 with Perl 5.6.0
and I'm having no luck. The system dumps core. I've tried enabling
and disabling expat, I've tried building the core as a DSO, all with no
luck.
Here are the relevant details of my most recent unsuccessful attempt:
1. The Perl build:
Summary of my perl5 (revision 5.0 version 6 subversion 0) configuration:
Platform:
osname=solaris, osvers=2.6, archname=sun4-solaris
uname='sunos usl 5.6 generic_105181-17 sun4u sparc sunw,ultra-5_10 '
config_args='-Dbincompat5005 -Dprefix=/usrl1/home/pweiss/perl-56
-Doptimize=-O -g -Dcc=gcc -Uinstallusrbinperl -Accflags=-DPERL_POLLUTE -ds'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
useperlio=undef d_sfio=undef uselargefiles=define
use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef
Compiler:
cc='gcc', optimize='-O -g', gccversion=2.8.1
cppflags='-DPERL_POLLUTE -DDEBUGGING -I/usr/local/include'
ccflags ='-DPERL_POLLUTE -DDEBUGGING -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
stdchar='unsigned char', d_stdstdio=define, usevfork=false
intsize=4, longsize=4, ptrsize=4, doublesize=8
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, usemymalloc=y, prototype=define
Linker and Libraries:
ld='gcc', ldflags =' -L/usr/local/lib '
libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -lgdbm -ldl -lm -lc -lcrypt -lsec
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING USE_LARGE_FILES
Built under solaris
Compiled at Mar 29 2000 01:37:48
%ENV:
PERL5LIB="/usrl1/home/pweiss/perllib"
@INC:
/usrl1/home/pweiss/perllib
/usrl1/home/pweiss/perl-56/lib/5.6.0/sun4-solaris
/usrl1/home/pweiss/perl-56/lib/5.6.0
/usrl1/home/pweiss/perl-56/lib/site_perl/5.6.0/sun4-solaris
/usrl1/home/pweiss/perl-56/lib/site_perl/5.6.0
/usrl1/home/pweiss/perl-56/lib/site_perl
2. The modperl configuration (I've tried both 1.22 and the latest CVS
version)
perl Makefile.PL EVERYTHING=1 PERL_TRACE=1 USE_DSO=1 PERL_MARK_WHERE=1
3. The apache configuration (its 1.3.12):
./configure \
"--with-layout=Apache" \
"--prefix=/usrl1/home/pweiss/apache" \
"--activate-module=src/modules/perl/libperl.a" \
"--enable-module=rewrite" \
"--enable-module=proxy" \
"--enable-shared=perl" \
"--enable-shared=max" \
"$@"
It then throws both feet in the air. Here is the backtrace:
Starting program: /usrl1/home/pweiss/apache/bin/httpd -d . -f
conf/httpd.conf
Program received signal SIGBUS, Bus error.
0xef1f4820 in Perl_malloced_size (p=0xfffffff5) at malloc.c:1841
(gdb) bt
#0 0xef1f4820 in Perl_malloced_size (p=0xfffffff5) at malloc.c:1841
#1 0xef24899c in Perl_sv_grow (sv=0xaf9b8, newlen=242) at sv.c:1139
#2 0xef253a70 in Perl_sv_vcatpvfn (sv=0xaf9b8, pat=0xf0 <Address 0xf0 out
of bounds>, patlen=240, args=0xeffff67c, svargs=0x0,
svmax=0, maybe_tainted=0x0) at sv.c:6354
#3 0xef2524f0 in Perl_sv_vsetpvfn (sv=0xaf9b8, pat=0xef2a0400 "%240s",
patlen=5, args=0xeffff67c, svargs=0x0, svmax=0,
maybe_tainted=0x0) at sv.c:5691
#4 0xef230d5c in Perl_vform (pat=0xef2a0400 "%240s", args=0xeffff67c) at
util.c:1413
#5 0xef230d1c in Perl_form (pat=0xef2a0400 "%240s") at util.c:1404
#6 0xef1f13c4 in S_init_main_stash () at perl.c:2421
#7 0xef1ede18 in S_parse_body (env=0x0, xsinit=0xef1c77b4 <xs_init>) at
perl.c:914
#8 0xef1edc60 in perl_parse (my_perl=0x0, xsinit=0xef1c77b4 <xs_init>,
argc=2, argv=0xeffff8a8, env=0x0) at perl.c:857
#9 0xef1c2d1c in perl_startup (s=0xa3dd8, p=0xa3db0) at mod_perl.c:701
#10 0xef1c2538 in perl_module_init (s=0xa3dd8, p=0xa3db0) at mod_perl.c:590
#11 0x23af0 in ap_init_modules ()
#12 0x32284 in main ()
(gdb)
I get the same result even if mod_perl is the only DSO and all the others
are
static.
Please help!
Thanks,
Paul