[Fwd: Re: mod_perl V 2.0.4 and undefined symbol: boot_DynaLoader]

[Fwd: Re: mod_perl V 2.0.4 and undefined symbol: boot_DynaLoader]

am 20.05.2008 03:25:53 von Ron Savage

Hi Folks

Copying this to the list...

-------- Forwarded Message --------
> From: Ron Savage
> To: Heiko Jansen
> Subject: Re: mod_perl V 2.0.4 and undefined symbol: boot_DynaLoader
> Date: Tue, 20 May 2008 11:24:34 +1000
>
> Hi Heiko
>
> On Mon, 2008-05-19 at 15:10 +0200, Heiko Jansen wrote:
> > Am Montag, den 19.05.2008, 20:41 +1000 schrieb Ron Savage:
> > > Hi Heiko
> > >
> > > Thanx for the info. I should have said, I used these commands:
> > [...]
> > > I'm hopeful no other Perl /exe/ is being run.
> >
> > Well - the problem of more than one perl being available is only one of
> > many potential explanations.
> > To be honest I was only guessing what might have happened.
> > You could go ahead and
> > a) grep for "DynaLoader.a" in your mod_perl source dir: as far as I
> > understand it, it must not show up in any Makefile rule anymore
>
> There is no file called that under ~/mod_perl-2.0.4, and that text does
> not appear in any file, either.
>
> > (although if it shows up I don't know how to get rid of it)
> > b) include a command
> > -- snip --
> > /ldd /mod_perl.so
> > exit
> > -- / snip --
> > at the top of your "apachectl" to make sure that the correct libperl.so
> > is chosen even with the environment of "root"
>
> Brilliant. This is the clue (run from the command line):
>
> ldd ./src/modules/perl/mod_perl.so
> linux-gate.so.1 => (0xffffe000)
> libperl.so.5.8 => /usr/lib/libperl.so.5.8 (0xb7e80000)
> libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7e7c000)
> libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7e56000)
> libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7e3e000)
> libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7cf0000)
> libcrypt.so.1 => /lib/i686/cmov/libcrypt.so.1 (0xb7cbe000)
> /lib/ld-linux.so.2 (0x80000000)
>
> You can see it's using libperl.so.5.8. Now the problem is to determine
> why that is. On the laptop that line says:
>
> libperl.so.5.10 => /usr/lib/libperl.so.5.10 (0xb7e04000)
>
> There is no libperl.so.5.8 on the laptop, but on the desktop (where the
> problem is) we have:
>
> ron@zoe:~/mod_perl-2.0.4$ find /usr -name libperl.so\* -exec ls -al {}
> \;
> -rw-r--r-- 1 root root 1153524 2007-11-05 17:27 /usr/lib/libperl.so
> -rw-r--r-- 1 root root 1322236 2008-05-08
> 23:51 /usr/lib/libperl.so.5.10.0
> lrwxrwxrwx 1 root root 10 2008-05-19 09:39 /usr/lib/libperl.so.5.8 ->
> libperl.so
> lrwxrwxrwx 1 root root 17 2008-05-19 09:36 /usr/lib/libperl.so.5.10 ->
> libperl.so.5.10.0
>
> Looks like the Debian upgrade left a mess. I'll clean that up and
> re-unpack mod_perl-2.0.4 and recompile.
>
> Time passes...
>
> Yep, it works. That's good enough.
>
> Oddities:
> (1)
> ron@zoe:~/httpd/prefork$ bin/apachectl start
> httpd: Syntax error on line 10
> of /home/ron/httpd/prefork/conf/httpd.conf: module status_module is
> built-in and can't be loaded
>
> Hmmm. I get the above on one machine, but not the other. On both
> machines /server-status returns:
> Server Version: Apache/2.2.8 (Unix) mod_apreq2-20051231/2.6.0
> mod_perl/2.0.4 Perl/v5.10.0
>
> Line 10 is of course:
> LoadModule status_module modules/mod_status.so
>
> (2)
> Even make test (for mod_perl) almost worked:
> ...
> t/vhost/log.............................ok
> All tests successful, 8 tests and 1 subtest skipped.
> Files=238, Tests=2445, 1434 wallclock secs (1327.69 cusr + 17.32 csys =
> 1345.01 CPU)
> [warning] server localhost:8529 shutdown
> [warning] port 8529 still in use...
> done
> [ error] oh dangit, server dumped core
> ...
> The 2nd part returned all tests successful.
>
> (3)
> For libapreq2-2.08:
> make[1]: Entering directory `/home/ron/libapreq2-2.08/glue'
> cd perl; perl Makefile.PL -apxs /home/ron/httpd/prefork/bin/apxs
> Parse xsbuilder/maps/apreq_types.map...
> mkdir xs
> writing...xs//typemap
> WARNING no convert code for HASH(0x8e92f40) -> {typemapid}
> WARNING no convert code for HASH(0x8e92f40) -> {typemapid}
> WARNING no convert code for HASH(0x8e92e30) -> {typemapid}
> WARNING no convert code for HASH(0x8e92e30) -> {typemapid}
> WARNING no convert code for HASH(0x8e92cb0) -> {typemapid}
> WARNING no convert code for HASH(0x8e92cb0) -> {typemapid}
> WARNING no convert code for HASH(0x8e92c60) -> {typemapid}
> WARNING no convert code for HASH(0x8e92c60) -> {typemapid}
> WARNING no convert code for HASH(0x8e92cc0) -> {typemapid}
> WARNING no convert code for HASH(0x8e92cc0) -> {typemapid}
> Parse xsbuilder/maps/apreq_functions.map...
>
> > c) ask again on the list because most probably there's someone around
> > with more experience and insight then me...
> >
> > Good luck ;-)
> > heiko
> >
> > PS: Only if you tried to compile the same mod_perl with an older Perl on
> > your system before switching to 5.10: Did you run "make distclean"
> > before retrying with the newer Perl?
>
> I was using mod_perl V 2.0.3, and took the opportunity of a new Perl to
> download V 2.0.4 and compile it for the first time.
>
> I do appreciate your help with this.
>
> $many x $thanx;
--
Ron Savage
ron@savage.net.au
http://savage.net.au/index.html