[...]Kailden K wrote:
1. Problem Description:
On AIX 4.3.3, for mod_perl version 1.99_12 (yesterday's CVS)
Compile seems to work but make test fails to load shared libraries,
It looks like I got a clean compile/test/install for an AIX 4.3.3 box with mod_perl_1.99_12 and Apache 2.0.48 with an MPM of prefork, as you indicated.
Great! So 'make test' is 100% pass?
worker mpm uses threads, so it's possible that your perl and apache aren't compiled with the same threads lib? Or something like that? Just a guess.
Please take a look at modperl-2.0/todo/bugs_build. Last time I've messed with the mp2 build on AIX I've cheated and used -berok to ignore linking errors, hoping that they will resolve at run time. I guess this is where it bites back. A proper solution, resolving symbols at build time, needs to be provided instead. If you know the AIX linker or know someone who does, a patch to do it properly would be very helpful.
Prior to moving to the prefork mpm 2.0.48 build, I did mess around with removing the -berok from the linking section of /lib/Apache/Build.pm and compiling by specifying the location of all the .exp files and CORE/-lperl as indicated in the comments, (including -lbsd and -lm and apache_global.exp) and everything would compile, but make test would still fail, although it was a different error. Now that a have a prefork version of apache installed (and the latest version), perhaps I will go back and try removing the -berok again...though I'm not familiar enough with mod_perl development to be able to dynamically determine the paths of the .exp files as it looks like you would then need to do. (or even to know if I'm just chasing a wild goose)
Most of my conclusions are documented in Apache/Build.pm:
if (AIX) { my $Wl = $self->ldopts_prefix;
# it's useless to import symbols from libperl.so this way, # because perl.exp is incomplete. a better way is to link # against -lperl which has all the symbols $val =~ s|${Wl}-bI:\$\(PERL_INC\)/perl\.exp||; # also in the case of Makefile.modperl PERL_INC is defined
# this works with at least ld(1) on powerpc-ibm-aix5.1.0.0: # -berok ignores symbols resolution problems (they will be # resolved at run-time # -brtl prepares the object for run-time loading # LDFLAGS already inserts -brtl $val .= " ${Wl}-berok"; # XXX: instead of -berok, could make sure that we have: # -Lpath/to/CORE -lperl # -bI:$path/apr.exp -bI:$path/aprutil.exp -bI:$path/httpd.exp # -bI:$path/modperl_*.exp # - don't import modperl_*.exp in Makefile.modperl which # exports -bE:$path/modperl_*.exp # - can't rely on -bI:$path/perl.exp, because it's incomplete, # use -lperl instead # - the issue with using apr/aprutil/httpd.exp is to pick the # right path if httpd wasn't yet installed }
I've tried all kind of things but as i was working remotely and had to do other work I eventually gave up. If you can make sense of these and come up with a working thing, that would be fantastic! Feel free to ask any questions that you may have while messing with it.
As you work with it, please use the cvs version so you and us can stay in sync: http://perl.apache.org/download/source.html#Development_mod_perl_2_0_Source_Distribution
__________________________________________________________________ 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
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]