mod_perl V 2.0.4 and undefined symbol: boot_DynaLoader

mod_perl V 2.0.4 and undefined symbol: boot_DynaLoader

am 19.05.2008 11:34:48 von Ron Savage

Hi Folks

Debian: 2.6.24-1-686
gcc: 4.2.3
Perl: 5.10.0
Apache: 2.2.8
mod_perl: 2.0.4

Debian upgraded Perl to 5.10.0 today, so I tried upgrading mod_perl to
2.0.4. This is the end of 'make test':
<===8<>===>
make[1]: Leaving directory `/home/ron/mod_perl-2.0.4/xs'
/usr/bin/perl -Iblib/arch -Iblib/lib \
t/TEST -clean
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/bin/perl /home/ron/mod_perl-2.0.4/t/TEST
-clean
APACHE_TEST_GROUP= APACHE_TEST_HTTPD= APACHE_TEST_PORT=
APACHE_TEST_USER= APACHE_TEST_APXS= \
/usr/bin/perl -Iblib/arch -Iblib/lib \
t/TEST -bugreport -verbose=0
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/bin/perl /home/ron/mod_perl-2.0.4/t/TEST
-bugreport -verbose=0
/home/ron/httpd/prefork/bin/httpd -d /home/ron/mod_perl-2.0.4/t
-f /home/ron/mod_perl-2.0.4/t/conf/httpd.conf -D APACHE2 -D
PERL_USEITHREADS
using Apache/2.2.8 (prefork MPM)

waiting 120 seconds for server to start: .httpd: Syntax error on line 33
of /home/ron/mod_perl-2.0.4/t/conf/httpd.conf: Cannot
load /home/ron/mod_perl-2.0.4/src/modules/perl/mod_perl.so into
server: /home/ron/mod_perl-2.0.4/src/modules/perl/mod_perl.so: undefined
symbol: boot_DynaLoader
[ error]
server has died with status 255 (t/logs/error_log wasn't created, start
the server in the debug mode)
sh: line 1: 6612
Terminated /usr/bin/perl /home/ron/mod_perl-2.0.4/t/TEST
-bugreport -verbose=0
make: *** [run_tests] Error 143
<===8><===>

On my laptop I just ignored the error, ran 'sudo make install', and
restarted Apache. It worked.

On my desktop, same software, restarting Apache gives:
<===8><===>
ron@zoe:~/mod_perl-2.0.4$ ~/httpd/prefork/bin/apachectl start
httpd: Syntax error on line 9
of /home/ron/httpd/prefork/conf/httpd.conf: Cannot
load /home/ron/httpd/prefork/modules/mod_perl.so into
server: /home/ron/httpd/prefork/modules/mod_perl.so: undefined symbol:
boot_DynaLoader
<===8><===>

I did not find any reference to this in the mail archives, although
Googling did give, for a non-Apache context, a suggestion it was due to
the order of parameters in the gcc command line. Hence the gcc version
number above.

Any ideas?

--
Ron Savage
ron@savage.net.au
http://savage.net.au/index.html

Re: mod_perl V 2.0.4 and undefined symbol: boot_DynaLoader

am 19.05.2008 12:06:01 von Heiko Jansen

Am Montag, den 19.05.2008, 19:34 +1000 schrieb Ron Savage:

> of /home/ron/httpd/prefork/conf/httpd.conf: Cannot
> load /home/ron/httpd/prefork/modules/mod_perl.so into
> server: /home/ron/httpd/prefork/modules/mod_perl.so: undefined symbol:
> boot_DynaLoader
> <===8><===>
>
> I did not find any reference to this in the mail archives, although
> Googling did give, for a non-Apache context, a suggestion it was due to
> the order of parameters in the gcc command line. Hence the gcc version
> number above.
>
> Any ideas?

I don't have a solution at hand, but maybe the info I can provide helps
tracking down the problem: Up to Perl 5.8.8 if one wanted to link a
program dynamically against libperl.so you also had to link your
software statically against DynaLoader.a.
("-lperl /lib/auto/DynaLoader/DynaLoader.a").
For newer Perl versions this is no longer necessary but when doing so
will cause the musings about "boot_DynaLoader".
Maybe you compile/link with one and run with another perl installation?

hth
heiko