Randy Kobes wrote:
On Tue, 29 Jun 2004, Stas Bekman wrote:


It seems that perl 5.6.x is no longer working with mp2, and that's a pretty
recent breakage I believe.

The server fails to start:

Cannot load
/home/stas/apache.org/mp2-pool/src/modules/perl/mod_perl.so into
server: /home/stas/apache.org/mp2-pool/src/modules/perl/mod_perl.so:
undefined symbol: boot_DynaLoader

This happens because

  my $ldopts = ExtUtils::Embed::ldopts();

from Apache::Build doesn't get Dynaloader.a included. This in turn happens
because something happens to catdir. In ExtUtils::Embed::ldopts, the line

  $root = $MM->catdir(@ns);

passes "DynaLoader" as the only contents of @ns, but catdir receives
some bogus object parameter: MY=HASH(0x9379394)

Here is the output from debuger:

  DB<4> n
ExtUtils::Embed::ldopts(/home/stas/perl/5.6.1/lib/5.6.1/ExtUtils/Embed.pm:188):
188:            $root = $MM->catdir(@ns);

     DB<4> p $sub
DynaLoader

     DB<5> p @ns
DynaLoader

     DB<6> s
File::Spec::Functions::CODE(0x81e9664)(/home/stas/perl/5.6.1/lib/5.6.1/File/Spec/Functions.pm:41):
41:         *{$meth} = sub {&$sub('File::Spec', @_)};

     DB<6> p "@_"
MY=HASH(0x9379394) DynaLoader

Someone messes with catdir, but I can't figure out where does this
happen.

Randy, is it possible that some recent win32 changes have caused that?
I see that problem on linux, but is it possible that some catdir
override has happened?


Hi Stas,

Although anything's possible, of course, I don't see at the
moment where this happened due to recent win32 changes. The
changes concerning decoupling APR from mod_perl specific to
Win32 were all wrapped around if(WIN32) {}, except for
building xs/APR/aprext/, which should do nothing on
non-Win32, as the dynamic and static targets were skipped.
Before this sequence of changes there were some Win32 ones
in the tests, but these probably are irrelevant to this
problem.

It's quite possible. Next I'll try to checkout snapshots at various dates over the last few months and see when it got broken. Ideally we should run the smoke against all perls more often, but my notebook is already more useful for cooking eggs than coding, so I do it only once in a while and then when things go broken, one needs to figure it out the hard way.


I think it may be the order of things in Makefile.PL that have caused this breakage. I'll work more on this tomorrow.

Unfortunately, I don't have a perl-5.6 available (except
for a Win32 one, but that can't build mp2). Do you know if
it was working before I committed your large patch for
decoupling APR from mod_perl.so (before any of the Win32
stuff was put in)?

Nope, I haven't run smoke against 5.6.x for quite some time. I think since 1.99_14 was released.


I looked at my ExtUtils::Embed. One, version 1.2505, has
  $root = $MM->catdir(@ns);
where
   my $MM = bless {} => 'MY';
from a few lines earlier. Perhaps the stray MY object
reference is related to this "MY". Can you see what
happens if you upgrade ExtUtils::Embed - version
1.25061 has the corresponding line
   $root = File::Spec->catdir(@ns);

CPAN has only 1.2505 or at least that's what it shows:

Going to read /home/stas/.cpan/sources/modules/03modlist.data.gz
Module id = ExtUtils::Embed
DESCRIPTION Utilities for embedding Perl in C/C++ apps
CPAN_USERID DOUGM (Doug MacEachern <[EMAIL PROTECTED]>)
CPAN_VERSION 1.2505
CPAN_FILE D/DO/DOUGM/ExtUtils-Embed-1.14.tar.gz
DSLI_STATUS Sdpf (standard,developer,perl,functions)
MANPAGE ExtUtils::Embed - Utilities for embedding Perl in C/C++ applications
INST_FILE /home/stas/perl/5.6.1/lib/5.6.1/ExtUtils/Embed.pm
INST_VERSION 1.2505


Though I can't quite figure out how that objects becomes an argument to catdir.

--
__________________________________________________________________
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]



Reply via email to