Hi,

again a question about the often discussed mod_perl DSO problem.

I use Apache 1.3.11, mod_ssl -2.5.0-1.3.11, ApacheJServ-1.1 and
mod_perl-1.21

Using Perl 5.005_3 statically compiled (libperl.a) with:

.Configure -Dprefix=/opt/perl -Dcc=/opt/SUNWspro/bin/cc -des

# /opt/perl/bin/perl -V
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=solaris, osvers=2.7, archname=sun4-solaris
    uname='sunos hotzenplotz 5.7 generic_106541-04 sun4m sparc sun4m '
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='/opt/SUNWspro/bin/cc', optimize='-O', gccversion=
    cppflags='-I/usr/local/include -I/opt/gnu/include'
    ccflags ='-I/usr/local/include -I/opt/gnu/include'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='/opt/SUNWspro/bin/cc', ldflags =' -L/usr/local/lib
-L/opt/gnu/lib'
    libpth=/usr/local/lib /opt/gnu/lib /lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-KPIC', lddlflags='-G -L/usr/local/lib -L/opt/gnu/lib'


Characteristics of this binary (from libperl):
  Built under solaris
  Compiled at Nov 11 1999 20:13:12
  %ENV:
    PERLHOME="/opt/perl"
    PERLLIB="/opt/mrtg/lib:/opt/rrdtool/lib/perl"
  @INC:
    /opt/mrtg/lib
    /opt/rrdtool/lib/perl
    /opt/perl/lib/5.00503/sun4-solaris
    /opt/perl/lib/5.00503
    /opt/perl/lib/site_perl/5.005/sun4-solaris
    /opt/perl/lib/site_perl/5.005

on a Solaris system:

hotzenplotz:jewa> uname -a
SunOS hotzenplotz 5.7 Generic_106541-04 sun4m sparc sun4m

configuring Apache with:

./configure --prefix=/opt/apache --runtimedir=/var/httpd \
--logfiledir=/var/httpd --enable-rule=SHARED_CORE --enable-module=most
--enable-shared=max \
--enable-module=ssl --enable-shared=ssl

and Perl with apxs:
perl Makefile.PL \
     USE_APXS=1 \
     WITH_APXS=/opt/apache/bin/apxs \
     EVERYTHING=1

I got a:

Segmentation Fault (coredump)

when starting httpd - nothing new.
Starting httpd with ld debug option gives:
# LD_DEBUG=basic ./httpd -X
00851:
00851: calling init: /usr/lib/libc.so.1
00851:
00851:
00851: calling init: /usr/lib/libmp.so.2
00851:
00851:
00851: calling init: /usr/lib/libnsl.so.1
00851:
00851:
00851: calling init: /usr/lib/libsocket.so.1
00851:
00851:
00851: transferring control: ./httpd
00851:
00851:
00851: calling init: /usr/lib/libc.so.1
00851:
00851:
00851: calling init: /usr/lib/libmp.so.2
00851:
00851:
00851: calling init: /usr/lib/libnsl.so.1
00851:
00851:
00851: calling init: /usr/lib/libsocket.so.1
00851:
00851:
00851: transferring control: ./httpd
00851:
00851: cyclic objects for .init (Befor sorting)
00851:  /opt/apache/libexec/libhttpd.so IDX=2
00851:  /opt/apache/libexec/libperl.so IDX=40
00851: cyclic objects for .init (After sorting)
00851:  /opt/apache/libexec/libperl.so IDX=40
00851:  /opt/apache/libexec/libhttpd.so IDX=2
00851:
00851: calling init: /usr/lib/libgen.so.1
00851:
00851:
00851: calling init: /usr/lib/libcrypt_i.so.1
00851:
00851:
00851: calling init: /opt/apache/libexec/libperl.so
00851:
00851:
00851: calling init: /opt/apache/libexec/mod_jserv.so
00851:
Segmentation Fault

and so I 've tried:

LD_PRELOAD='/opt/apache/libexec/libhttpd.so
/opt/apache/libexec/libperl.so' ${APACHE_DIR}/bin/apachectl startssl

which works nice.

Then I 've tried to use the developer Perl version 5.005_63 because I ve
read that this version should avoid the perl malloc problems
but now  I can't get "mod_perl" compiled:

# perl -V
Summary of my perl5 (revision 5.0 version 5 subversion 63)
configuration:
  Platform:
    osname=solaris, osvers=2.7, archname=sun4-solaris
    uname='sunos hotzenplotz 5.7 generic_106541-04 sun4m sparc sun4m '
    config_args='-Dprefix=/opt/perl -Dcc=/opt/gnu/bin/gcc -des'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
    use64bits=undef usemultiplicity=undef
  Compiler:
    cc='/opt/gnu/bin/gcc', optimize='-O', gccversion=2.95 19990728
(release)
    cppflags='-fno-strict-aliasing -I/usr/local/include
-I/opt/gnu/include'
    ccflags ='-fno-strict-aliasing -I/usr/local/include
-I/opt/gnu/include -DUSE_LONG_LONG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BI

TS=64'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='/opt/gnu/bin/gcc', ldflags =' -L/usr/local/lib -L/opt/gnu/lib '
    libpth=/usr/local/lib /opt/gnu/lib /lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -lgdbm -ldb -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=' -Wl,-E'
    cccdlflags='-fPIC', lddlflags=' -W,l-E -G -L/usr/local/lib
-L/opt/gnu/lib'


Characteristics of this binary (from libperl):
  Compile-time options:
  Built under solaris
  Compiled at Feb  8 2000 11:43:53
  %ENV:
    PERLHOME="/opt/perl"
    PERLLIB="/opt/mrtg/lib:/opt/rrdtool/lib/perl"
  @INC:
    /opt/mrtg/lib
    /opt/rrdtool/lib/perl
    /opt/perl/lib/5.00563/sun4-solaris
    /opt/perl/lib/5.00563
    /opt/perl/lib/site_perl/5.00563/sun4-solaris
    /opt/perl/lib/site_perl

perl Makefile.PL \
     USE_APXS=1 \
     WITH_APXS=/opt/apache/bin/apxs \
     EVERYTHING=1

make
(cd ./apaci && make)
/opt/gnu/bin/gcc -fPIC -O -fno-strict-aliasing -I/usr/local/include
-I/opt/gnu/include -DUSE_LONG_LONG -D_LARGEFILE_SOURCE -D_FI
LE_OFFSET_BITS=64 -I/opt/perl/lib/5.00563/sun4-solaris/CORE
-DMOD_PERL_VERSION=\"1.21\" -DMOD_PERL_STRING_VERSION=\"mod_perl/1.
21\" -I/opt/apache/include -DMOD_PERL -DSOLARIS2=270 -DMOD_SSL=205100
-DEAPI -DUSE_EXPAT -I../lib/expat-lite -fPIC -DSHARED_CORE
 -c mod_perl.c && mv mod_perl.o mod_perl.lo
mod_perl.c: In function `perl_restart':
mod_perl.c:333: warning: assignment makes pointer from integer without a
cast
mod_perl.c: In function `mod_perl_set_cwd':
mod_perl.c:374: warning: passing arg 2 of `Perl_sv_setsv' makes pointer
from integer without a cast
mod_perl.c: In function `perl_handler':
mod_perl.c:783: `PL_siggv' undeclared (first use in this function)
mod_perl.c:783: (Each undeclared identifier is reported only once
mod_perl.c:783: for each function it appears in.)
mod_perl.c: In function `perl_call_handler':
mod_perl.c:1359: warning: assignment makes pointer from integer without
a cast
mod_perl.c:1384: warning: initialization makes pointer from integer
without a cast
*** Error code 1
make: Fatal error: Command failed for target `mod_perl.lo'
Current working directory
/export/data_00/apache-latest/mod_perl-1.21/apaci
*** Error code 1
make: Fatal error: Command failed for target `apxs_libperl'

Then I 've read that one has to use the the CVS version of Perl ...
What's the status , any solutions or suggestions for this "neverending"
:-) Solaris-mod_perl-DSO problem ?

Thanks
    Uwe Walther



Reply via email to