1. Problem Description:

 On AIX 5.3, with both mod_perl 2.0.5 and 2.0.6-rc2,
 "perl -e 'use Apache2::Request;'" fails because the loader cannot find
 runtime definitions for several symbols:
 "Symbol modperl_hash_tied_object was referenced from module
 
/usr/local/perl/lib/site_perl/5.14.2/aix-thread-multi/auto/APR/Table/Table.so(),
 but a runtime definition of the symbol was not found."

 The problem is shown by the t/apr-ext/brigade.t, t/apr-ext/finfo.t,
 t/apr-ext/pool.t, t/apr-ext/table.t, t/apr-ext/threadmutex.t,
 and t/apr-ext/uri.t test cases as well:


        cd "src/modules/perl" && make
Target "all" is up to date.
        /usr/local/bin/perl -Iblib/arch -Iblib/lib  t/TEST -clean
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/local/bin/perl
/home/user/tmp/mod_perl-2.0.6-rc2/t/TEST -clean
        APACHE_TEST_GROUP= APACHE_TEST_HTTPD= APACHE_TEST_PORT=
APACHE_TEST_USER= APACHE_TEST_APXS=  /usr/local/bin/perl -Iblib/arch
-Iblib/lib  t/TEST -bugreport -verbose=1 apr-ext/brigade.t
apr-ext/finfo.t apr-ext/pool.t apr-ext/table.t apr-ext/threadmutex.t
apr-ext/uri.t
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/local/bin/perl
/home/user/tmp/mod_perl-2.0.6-rc2/t/TEST -bugreport -verbose=1
'apr-ext/brigade.t' 'apr-ext/finfo.t' 'apr-ext/pool.t' 'apr-ext/table.t'
'apr-ext/threadmutex.t' 'apr-ext/uri.t'
/usr/local/apache/bin/httpd  -d /home/user/tmp/mod_perl-2.0.6-rc2/t -f
/home/user/tmp/mod_perl-2.0.6-rc2/t/conf/httpd.conf -D APACHE2 -D
PERL_USEITHREADS
using Apache/2.2.22 (prefork MPM)

waiting 120 seconds for server to start: .[Tue Apr 03 13:09:10 2012]
[info] 6 Apache2:: modules loaded
[Tue Apr 03 13:09:10 2012] [info] 0 APR:: modules loaded
[Tue Apr 03 13:09:10 2012] [info] base server + 29 vhosts ready to run tests
...
waiting 120 seconds for server to start: ok (waited 3 secs)
server localhost:8529 started
server localhost:8530 listening (filter_out_apache)
server localhost:8531 listening (perlsections)
server localhost:8532 listening (inherit)
server localhost:8533 listening (TestModperl::merge)
server localhost:8534 listening (TestModperl::perl_options)
server localhost:8535 listening (TestModperl::perl_options2)
server localhost:8536 listening (TestModperl::setupenv)
server localhost:8537 listening (TestModules::proxy)
server localhost:8538 listening (TestUser::rewrite)
server localhost:8539 listening (TestVhost::config)
server localhost:8540 listening (TestVhost::log)
server localhost:8541 listening (TestProtocol::echo_bbs)
server localhost:8542 listening (TestProtocol::echo_bbs2)
server localhost:8543 listening (TestProtocol::echo_block)
server localhost:8544 listening (TestProtocol::echo_filter)
server localhost:8545 listening (TestProtocol::echo_nonblock)
server localhost:8546 listening (TestProtocol::echo_timeout)
server localhost:8547 listening (TestProtocol::pseudo_http)
server localhost:8548 listening (TestPreConnection::note)
server localhost:8549 listening (TestHooks::hookrun)
server localhost:8550 listening (TestHooks::init)
server localhost:8551 listening (TestHooks::stacked_handlers2)
server localhost:8552 listening (TestHooks::startup)
server localhost:8553 listening (TestHooks::trans)
server localhost:8554 listening (TestFilter::both_str_con_add)
server localhost:8555 listening (TestFilter::in_bbs_inject_header)
server localhost:8556 listening (TestFilter::in_bbs_msg)
server localhost:8557 listening (TestFilter::in_str_msg)
server localhost:8558 listening (TestDirective::perlmodule)
server localhost:8559 listening (TestDirective::perlrequire)
server localhost:8560 listening (TestAPI::add_config)
server localhost:8561 listening (TestDirective::perlloadmodule3)
server localhost:8562 listening (TestDirective::perlloadmodule4)
server localhost:8563 listening (TestDirective::perlloadmodule5)
server localhost:8564 listening (TestDirective::perlloadmodule6)
server localhost:8565 listening (TestHooks::push_handlers_anon)
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Brigade/Brigade.so' for
module APR::Brigade: rtld: 0712-001 Symbol modperl_croak was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Brigade/Brigade.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/brigade.pm line 15
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/brigade.pm line 15.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/brigade.pm line 15.
Compilation failed in require at t/apr-ext/brigade.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/brigade.t line 7.
t/apr-ext/brigade.t ......
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Finfo/Finfo.so'
for module APR::Finfo: rtld: 0712-001 Symbol modperl_croak was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Finfo/Finfo.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/finfo.pm line 14
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/finfo.pm line 14.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/finfo.pm line 14.
Compilation failed in require at t/apr-ext/finfo.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/finfo.t line 7.
t/apr-ext/finfo.t ........
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so'
for module APR::Table: rtld: 0712-001 Symbol modperl_hash_tied_object
was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tied_object_rv was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tie was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/pool.pm line 11
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/pool.pm line 11.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/pool.pm line 11.
Compilation failed in require at t/apr-ext/pool.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/pool.t line 7.
t/apr-ext/pool.t .........
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so'
for module APR::Table: rtld: 0712-001 Symbol modperl_hash_tied_object
was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tied_object_rv was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tie was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/table.pm line 11
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/table.pm line 11.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/table.pm line 11.
Compilation failed in require at t/apr-ext/table.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/table.t line 7.
t/apr-ext/table.t ........
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so'
for module APR::Table: rtld: 0712-001 Symbol modperl_hash_tied_object
was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tied_object_rv was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tie was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/threadmutex.pm
line 40
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/threadmutex.pm line 40.
t/apr-ext/threadmutex.t ..
1..5
# Running under perl version 5.014002 for aix
# Current time local: Tue Apr  3 13:09:19 2012
# Current time GMT:   Tue Apr  3 11:09:19 2012
# Using Test.pm version 1.25_02
# Using Apache/Test.pm version 1.37
ok 1
# testing : lock == APR::Const::SUCCESS
# expected: 0
# received: 0
ok 2
# testing : unlock == APR::Const::SUCCESS
# expected: 0
# received: 0
ok 3
Dubious, test returned 8 (wstat 2048, 0x800)
Failed 2/5 subtests
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/URI/URI.so' for
module APR::URI: rtld: 0712-001 Symbol modperl_uri_new was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/URI/URI.so(), but a
runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/uri.pm line 11
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/uri.pm line 11.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/uri.pm line 11.
Compilation failed in require at t/apr-ext/uri.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/uri.t line 7.
t/apr-ext/uri.t ..........
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run


Contents of error_log:

END in modperl_extra.pl, pid=901248
[Tue Apr 03 13:09:14 2012] [notice] Apache/2.2.22 (Unix) world
domination series/2.0 mod_perl/2.0.6-rc2 Perl/v5.14.2 configured --
resuming normal operations
[Tue Apr 03 13:09:14 2012] [info] Server built: Mar 29 2012 15:19:34
[Tue Apr 03 13:09:14 2012] [debug] prefork.c(1023): AcceptMutex: sysvsem
(default: sysvsem)
[Tue Apr 03 13:09:21 2012] [info] Child process pid=159934 is exiting
[Tue Apr 03 13:09:21 2012] [info] Child process pid=159934 is exiting -
server push
END in modperl_extra.pl, pid=159934
[Tue Apr 03 13:09:21 2012] [info] Child process pid=901256 is exiting
[Tue Apr 03 13:09:21 2012] [info] Child process pid=901256 is exiting -
server push
END in modperl_extra.pl, pid=901256
[Tue Apr 03 13:09:23 2012] [info] removed PID file
/home/user/tmp/mod_perl-2.0.6-rc2/t/logs/httpd.pid (pid=1011966)
[Tue Apr 03 13:09:23 2012] [notice] caught SIGTERM, shutting down
END in modperl_extra.pl, pid=1011966


2. Used Components and their Configuration:

*** mod_perl version 2.000006

*** using /home/user/tmp/mod_perl-2.0.6-rc2/lib/Apache2/BuildConfig.pm

*** Makefile.PL options:
  MP_APR_LIB     => aprext
  MP_APXS        => /usr/local/apache/bin/apxs
  MP_COMPAT_1X   => 1
  MP_GENERATE_XS => 1
  MP_LIBNAME     => mod_perl
  MP_USE_DSO     => 1


*** /usr/local/apache/bin/httpd -V
Server version: Apache/2.2.22 (Unix)
Server built:   Mar 29 2012 15:19:34
Server's Module Magic Number: 20051115:30
Server loaded:  APR 1.4.5, APR-Util 1.4.1
Compiled using: APR 1.4.5, APR-Util 1.4.1
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/local/apache"
 -D SUEXEC_BIN="/usr/local/apache/bin/suexec"
 -D DEFAULT_PIDLOG="/var/httpd/logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/httpd/logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

*** /usr/bin/ldd /usr/local/apache/bin/httpd
/usr/local/apache/bin/httpd needs:
         /usr/local/apache/lib/libaprutil-1.so
         /usr/local/apache/lib/libapr-1.so
         /usr/lib/libpthread.a(shr_xpg5.o)
         /usr/lib/libc.a(shr.o)
         /usr/lib/librtl.a(shr.o)
         /usr/local/apache/lib/libexpat.a(libexpat.so.0)
         /usr/lib/libiconv.a(shr4.o)
         /usr/lib/libpthreads.a(shr_comm.o)
         /unix
         /usr/lib/libcrypt.a(shr.o)


*** (apr|apu)-config linking info

 -L/usr/local/apache/lib -laprutil-1     -lexpat -liconv
 -L/usr/local/apache/lib -lapr-1 -lpthread -Wl,-brtl



*** /usr/local/perl/bin/perl -V
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:

  Platform:
    osname=aix, osvers=5.3.0.0, archname=aix-thread-multi
    uname='aix host 3 5 00ce7e0f4c00 '
    config_args='-d -Dcc=cc_r -Duseshrplib -Dusethreads
-Dprefix=/usr/local/perl -Dcf_email=root'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc_r -q32', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN
-DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong',
    optimize='-O',
    cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1
-qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT'
    ccversion='7.0.0.16', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='ld', ldflags =' -brtl -bdynamic -L/usr/local/lib -b32
-bmaxdata:0x80000000'
    libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
    libs=-lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lpthreads -lc
    perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads -lc
    libc=/lib/libc.a, so=a, useshrplib=true, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='
-bE:/usr/local/perl/lib/5.14.2/aix-thread-multi/CORE/perl.exp'
    cccdlflags=' ', lddlflags='-bhalt:4 -G -bI:$(PERL_INC)/perl.exp
-bE:$(BASEEXT).exp -bnoentry -lpthreads -lc -lm -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV USE_ITHREADS USE_LARGE_FILES
                        USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
  Built under aix
  Compiled at Mar 28 2012 12:52:40
  %ENV:
    PERL_LWP_USE_HTTP_10="1"
  @INC:
    /usr/local/perl/lib/site_perl/5.14.2/aix-thread-multi
    /usr/local/perl/lib/site_perl/5.14.2
    /usr/local/perl/lib/5.14.2/aix-thread-multi
    /usr/local/perl/lib/5.14.2
    .

*** Packages of interest status:

Apache2            : -
Apache2::Request   : 2.13
CGI                : 3.52
ExtUtils::MakeMaker: 6.62
LWP                : 6.04
mod_perl           : -
mod_perl2          : 2.000006





-- 
Peter Heimann

Reply via email to