I upgraded ExtUtils::CBuilder and Module::Build. Now my build test
generates this error when I try to 'require' a basic handler package
that uses Apache2::Request. However, I can run the test script directly
or with `prove -I blib -r t` and it succeeds.
# Error: Can't load
'/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so'
for module APR::Request::Apache2:
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so:
undefined symbol: modperl_xs_sv2request_rec at
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
# at
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm line
3
# Compilation failed in require at
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm line
3.
# BEGIN failed--compilation aborted at
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Apache2/Request.pm line
3.
I can rebuild libapreq2-2.12 and 2.13 with no trouble on its tests. I
tried updating CentOS perl, apr, apr-devel, apr-util, apr-util-devel
packages, but it did not help. Other handlers that do not use
Apache2::Request are fine.
I saw this error in some searches. Rebuilding libapreq2 with apache
stopped did not help. Setting PERL_DL_NONLAZY=0 in env did not help.
(http://my.opera.com/cstrep/blog/2010/05/14/undefined-symbol-modperl-xs-sv2request-rec-at-usr-lib-perl-5-10-dynaloader-pm)
Oh, PERL_DL_NONLAZY is a compiler flag. I'm not sure I understand what
it does. I don't know how to make Module::Build `Build test` behave the
same way, but something seems to have changed in the recent version that
caused this change in behavior.
Thanks. --mark--