During the weekend I had no connectivity due to the worm, sorry.

Okay I tried remove my old perl installation and compiled a new one (5.8.0), and then installed a new mod_perl 1.99_08, and got the exactly same error. So I don't think it was because of my Perl installation as I suspected before.

Then I tried nm all the *.so under my /usr/local/lib/perl5, there are dozens of *.so contain symbol Perl_Tstack_sp_ptr, but all have 'U' (unresolved).

Then I nm-ed my modules/mod_perl.so under /usr/local/apache2, no symbol Perl_Tstack_sp_ptr at all.

From your analysis, my mod_perl.so must have perl library linked in, which should have a resolved Perl_Tstack_sp_ptr, but it doesn't contain this symbol at all.

Any more hint?

xd
Stas Bekman wrote:
Xiaodong Shen wrote:

Thanks for the reply.

Several things to clear:

1. I have successfully passed the "make && make test && make install" phase.

2. I have moved into "Server configuration" phase and was doing the "mod_perl rocks" thingy, where the error happens.

3. Before seeing your reply, I already found a solution: I renamed Const.so to Const.so.bak (there are several other xxx.so mod_perl complains about, I removed them as well). It works, mod_perl did rock.

4. However this put me into a bigger misery, I can't explain why!!!

After reading the thread, I delved into my setting and found:

- my perl installation doesn't have libperl.so (libperl.a only).

Meaning that you perl is compiled without shared library support.

- my httpd is DSO enabled.
- my mod_perl is mod_perl.so (mod_perl.a is not used).

Currently mod_perl builds itself as static and dynamic, no matter what you choose, so at the later point you can simply link the static archive.

- my mod_perl.so is not linked against ibperl.so.

So it must have the perl library linked in. do you have that symbol that was reported missing in mod_perl.so? (hint: use 'nm')

So I assume that httpd loads mod_perl.so, which loads other xxx.so, such as Const.so, but when does mod_perl load libperl.so (from the thread I assume those undefined symbols would be resolved by libperl.so)? before laoding Const.so? but why did it not complain about no libperl.so on my system?

see above.

I suppose that we have a problem here of installing dynamic .so objects, when the static build is used and perl trying to load them. But it's also possible that you've the leftovers from an older install as you suggest below.

Now I start to have some ideas, it must have to do with my Perl installation, which contains some leftovers that should have been cleaned up before I made numerous rebuilds, .... everytime Perl uses a package it looks for *.so by going through @INC, lots of library files with same names.

I will let you after I clean up my perl.

Have you installed mod_perl using the shared libperl.so before into the same directory?

__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com



Reply via email to