entropic has asked for the wisdom of the Perl Monks concerning the following question:

I have been trying to figure out this problem for a few days now... I am trying to install a set of dependent modules for mogilefs. Yesterday, I was hung up on installing IO::AIO due to error: undefined symbol. I forget specifically what symbol, but google says it's a method in the perl API. After chatting with people in the chatterbox, it was decided that I needed to upgrade from Perl 5.8.8 to 5.10. - Now I have done that, and I have installed IO::AIO seemingly successfully, and I'm getting hung-up on the next module: Gearman::Client::Async - same basic problem:

Running make test PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" " +test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/allinone........Can't load '/usr/local/lib/perl5/5.10.0/x86_64-linux +/auto/IO/IO.so' for module IO: /usr/local/lib/perl5/5.10.0/x86_64-lin +ux/auto/IO/IO.so: undefined symbol: PL_sv_undef at /usr/local/lib/per +l5/5.10.0/x86_64-linux/XSLoader.pm line 64. at /usr/local/lib/perl5/5.10.0/x86_64-linux/IO.pm line 11


another symbol that should be in the perl API... what gives? this is driving me mad. This is a Brand spanking new Debian Etch amd64 machine. Completely fresh out of the box. These are the packages I have updated via apt-get:

apt-get install openssh-server build-essential libmysqlclient15-dev subversion

then I downloaded and compiled, make, make test, make install:
perl-5.10.0.tar.gz
Then installed:
perl -MCPAN -e shell; install IO::AIO - seemed to work fine install Gearman::Client::Async - FAIL (see msg above)
Please Help?

Replies are listed 'Best First'.
Re: undefined symbol
by chromatic (Archbishop) on Oct 15, 2008 at 22:36 UTC

    Where did you install Perl 5.10? Did you overwrite your system version? Did you use the correct version of Perl to run CPAN?

      I downloaded the perl 5.10 source and did default installation recommended in the INSTALL file:
      sh Configure -de make make test make install
      then i did:
      perl --version
      and it confirmed 5.10 then:
      perl -MCPAN -e shell; install Gearman::Client::Async
      failure...

        Okay. You overwrite your OS version with a different version of Perl. Restore the system version of Perl, then configure 5.10 again to install to a different location.

Re: undefined symbol
by syphilis (Archbishop) on Oct 16, 2008 at 10:37 UTC
    Can't load '/usr/local/lib/perl5/5.10.0/x86_64-linux /auto/IO/IO.so' for module IO

    That message suggests to me that the following should produce the same error message:
    perl -MIO -le 'print $IO::VERSION'
    And given that IO is a core module, we would then be led to wonder how 'make test' for your perl-5.10.0 build passed.

    Did 'make test' pass all tests when you built your perl-5.10.0 ?

    Cheers,
    Rob
Re: undefined symbol
by Anonymous Monk on Oct 19, 2008 at 19:54 UTC
    Same problem with Debian4-etch-amd64 and IO::AIO. On installation perl Makefile.pl looks good, make builds the file, but make test won't pass: Can't load '/usr/src/IO-AIO-3.1/blib/arch/auto/IO/AIO/AIO.so' for module IO::AIO: /usr/src/IO-AIO-3.1/blib/arch/auto/IO/AIO/AIO.so: undefined symbol: SvREFCNT_inc_NN at /usr/lib/perl/5.8/DynaLoader.pm line 225. at /usr/lib/perl/5.8/DynaLoader.pm line 218