Hello. I've searched the internet and found many things relating to this,
but I thought I would present my own specific problem. I'm trying to install
mod_perl with IBM HTTP Server (which is really just apache 1.3.12) on AIX
4.3.3.

Everything installs fine, but when I tried to use Net::LDAP, apache
segfaults.
When I analyze the core file, I'm told that boot_IO is where the problem
occurred.
Has anyone conquered this problem? The mod_perl readme says that if you are
installing on AIX with perl 5.00503 you have to apply a patch to prevent
segfaulting when an XS module is called. I applied it and re-compiled.

I also tried using perl 5.6.1, which yielded the same results. I've traced
it
down to the 'use IO::Handle;' clause. I'm using the VisualAge C (vac)
compiler
to compile everything (gcc hasn't worked very well for most things on this
platform.)

The following details the method to my madness:

# lslpp -l |grep vac
  vac.msg.en_US.C            5.0.1.0  COMMITTED  C for AIX Compiler
Messages -
  vacpp.cmp.rte              4.0.2.0  COMMITTED  VisualAge C++ Compiler
  vac.C                      5.0.1.0  COMMITTED  C for AIX Compiler
# lslpp -l |grep xlC
  xlC.aix43.rte              4.0.2.2  APPLIED    C Set ++ Runtime for AIX
4.3
  xlC.cpp                    4.3.0.1  COMMITTED  C for AIX Preprocessor
  xlC.msg.en_US.cpp          4.3.0.1  COMMITTED  C for AIX Preprocessor
  xlC.msg.en_US.rte          4.0.2.0  COMMITTED  C Set ++ Runtime
  xlC.rte                    4.0.2.0  COMMITTED  C Set ++ Runtime

<installed the mod_perl patch on perl_5.00503/ext/DynaLoader/dl_aix.xs>

# cd /usr/build/perl_5.00503
# ./Configure -de
# make
# make install

# perl -MCPAN -e shell;
(answer configuration questions...)

cpan> install HTML::HeadParser
cpan> install LWP::UserAgent

# cd /usr/build/mod_perl-1.25
# perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/HTTPServer/bin/apxs
EVERYTHING=1
# make
# make install

# cd /usr/HTTPServer/bin
# ./apachectl configtest
Syntax OK

At this point, lots of perl scripts will run fine under mod_perl, until one
of
them calls 'use IO::Handle;' ... then:

# ./apachectl configtest
./apachectl[145]: 19372 Segmentation fault(coredump)

Now I analyze the core file to find out what is causing the dump.. surprise!

# dbx /usr/HTTPServer/bin/httpd core
Type 'help' for help.
reading symbolic information ...warning: no source compiled with -g

[using memory image in core]

Segmentation fault in boot_IO at 0xd178d39c ($t1)
0xd178d39c (boot_IO+0xc) 80830000        lwz   r4,0x0(r3)

----------------------------------------------------

Thinking it might be IBM HTTP Server implimentation, I built apache from
source with the following method (I did this with Apache 1.3.12 and
Apache 1.3.20):

# cd /usr/build/apache_1.3.12
# ./configure --enable-module=so \
              --enable-module=proxy \
              --enable-shared=proxy \
              --prefix=/usr/local/apache
# make
# make install

Then I repeated the mod_perl installation. Same darn segfault.

This is what my perl -V looks like:
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=aix, osvers=4.3.3.0, archname=aix
    uname='aix funny 3 4 000001716600 '
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O', gccversion=
    cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384'
    ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384'
    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=8
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='ld', ldflags ='-s'
    libpth=/lib /usr/lib /usr/ccs/lib
    libs=-lnsl -ldbm -ldl -lld -lm -lc -lcrypt -lbsd -lPW -lC_r
    libc=/lib/libc.a, so=a, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='-bE:perl.exp'
    cccdlflags=' ',
lddlflags='-bhalt:4 -bM:SRE -bI:$(PERL_INC)/perl.exp -bE:$(BASEEXT).exp -b
noentry -lc'


Characteristics of this binary (from libperl):
  Built under aix
  Compiled at Aug 14 1999 08:59:55
  @INC:
    /usr/opt/perl5/lib/5.00503/aix
    /usr/opt/perl5/lib/5.00503
    /usr/opt/perl5/lib/site_perl/5.005/aix
    /usr/opt/perl5/lib/site_perl/5.005

Does anyone have any insight into this? It's becoming a very painful battle.

Thanks,
Matt Glosson

Reply via email to