Closed wyoung closed 8 years ago
I've since discovered that this has something to do with Devel::PPPort
, and that the base API function in question is gv_fetchpvn_flags()
, but according to man Devel::PPPort
, gv_fetchpvn_flags()
is from Perl 5.9.2 and isn't supported. Yet, I cannot see that Mouse is even trying to call this function, so where is the link error coming from?
For what it's worth, since starting down this path, I've blown away my old CPAN module installation directory, in order to rebuild all modules afresh against my current Perl version, so I can't see that there could be any old cruft sitting around confusing things.
More info: apparently Devel::PPPort
does provide this function now, detecting when it's run on a system too old to have it natively. And, it appears to be present:
$ nm -C /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/Devel/PPPort/PPPort.so | grep fetchpvn
0000000000012590 t DPPP_my_gv_fetchpvn_flags
If you look at the output in the original post, it looks like the problem is that Mouse
is not linking to PPPort.so
. I have no idea how to make it do so, but while waiting for an answer, I will try to figure it out on my own.
All tests are successful when forcing pure-Perl:
$ PERL_ONLY=1 ./Build test
I'm going to install this and move on, then see if Dancer works despite the problems.
I dug into the Minilla docs, and couldn't see a way to affect how it links binaries, so I'm stuck on that front.
I've found the problem: it was introduced in Devel::PPPort
3.33, the very next version past the one we last successfully tested against on CentOS 5. Rolling back to 3.32 solves the Mouse make test
failures.
I'm taking this up with them now.
Thanks you saved my deploy tonight! I had similar problem also on CentOS5 but with Data::Clone, if gave the same error and downgrading helped. I'll try to help get it fixed.
Mouse builds just fine on this system, but
make test
gives pages and pages of complaints, of which this is the first bit before it starts repeating itself:There's a lot more, but I think it all stems from that strange link error complaining about
undefined symbol: DPPP_my_gv_fetchpvn_flags
. What does it want?I'm not using Mouse directly, but instead am getting it as a dependency via
Dancer
→Dancer::Template::Xslate
→Text::Xslate
.This is with the latest platform-provided Perl, v5.8.8. (Don't complain about it, CentOS 5 is still in support, and this is what they provide.) If I need to downgrade to an older version of Mouse, please let me know which version.