in reply to Re^3: Graph 0.69 on AIX
in thread Graph 0.69 on AIX

Many thanks for your continued help.

Running with the -xs flag I still get the same result during tests:

t/weak..........skipped all skipped: weaken requires XS version

I looked at the code for Module::Install:Can, and the guts involve $Config::Config{cc} so I did check:

$ perl -MConfig -e 'print $Config::Config{cc}' gcc

Which I guess isn't surprising since I haven't had troubles building other xs-based modules. The check in weak.t looks at @Scalar::Util::EXPORT_FAIL, and it does look like the code being executed is in: perl5.8.7/lib/5.8.7/Scalar/Util.pm.

So after that I'm still not quite sure what's going on. In the make output I see:

gcc -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_D +LOPEN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGE_FILES +-O -DVERSION=\"1.18\" -DXS_VERSION=\"1.18\" "-I/db2blast/Paul/perl +5.8.7/lib/5.8.7/aix/CORE" -DPERL_EXT Util.c Running Mkbootstrap for List::Util () chmod 644 Util.bs rm -f blib/arch/auto/List/Util/Util.so gcc -Wl,-bhalt:4 -Wl,-bexpall -Wl,-G -Wl,-bnoentry -lc -L/usr/local/l +ib Util.o -o blib/arch/auto/List/Util/Util.so \ \ chmod 755 blib/arch/auto/List/Util/Util.so cp Util.bs blib/arch/auto/List/Util/Util.bs chmod 644 blib/arch/auto/List/Util/Util.bs

and during make install I get:

Installing /db2blast/Paul/perl5.8.7/lib/5.8.7/aix/auto/List/Util/Util. +so Files found in blib/arch: installing files in blib/lib into architectu +re dependent library tree Writing /db2blast/Paul/perl5.8.7/lib/5.8.7/aix/auto/List/Util/.packlis +t Appending installation info to /db2blast/Paul/perl5.8.7/lib/5.8.7/aix/ +perllocal.pod

Which I had thought indicates successful building of the xs code. I also tried uninstalling with:

cpan> o conf make_install_arg UNINST=1 make_install_arg [UNINST=1] cpan> force install Scalar::Util

Which led to the same result. Might you have any other ideas of what I could try or where I could look?

Replies are listed 'Best First'.
Re^5: Graph 0.69 on AIX
by randyk (Parson) on Dec 13, 2005 at 20:36 UTC
    From the dialogues that you reported, it looks like the xs version of the package got built and installed OK. I'm not sure why the t/weak.t test still reported that the xs version was needed - perhaps a make distclean is needed before rerunning perl Makefile.PL. In any case, does this fix the original problem with the Graph module?

      Hi again,

      Unfortunately it doesn't -- the check you initially pointed out in Graph/Makefile.PL still fails:

      # Some Debian distributions have a broken List::Util (see rt.cpan.org +#9568) eval 'require Scalar::Util; import Scalar::Util qw(weaken)'; if ($@) { die <<__EOF__; $@ You do not have Scalar::Util::weaken, cannot continue, aborting. __EOF__ }

      It doesn't appear I have an "extra" version of Scalar::Util anywhere, either:

      ./lib/5.8.7/aix/auto/List/Util/Util.so ./lib/5.8.7/aix/auto/List/Util/Util.bs ./lib/5.8.7/aix/List/Util.pm ./lib/5.8.7/aix/Scalar/Util.pm ./lib/5.8.7/CGI/Util.pm ./lib/5.8.7/Hash/Util.pm ./lib/site_perl/5.8.7/HTTP/Headers/Util.pm ./lib/site_perl/5.8.7/Data/Stag/Util.pm ./lib/site_perl/5.8.7/Bio/Graphics/Util.pm ./lib/site_perl/5.8.7/Crypt/DSA/Util.pm ./lib/site_perl/5.8.7/Crypt/OpenPGP/Util.pm

      It appears that the xs is getting installed okay, but is not being exported and so weaken() appears in @EXPORT_FAIL. I'm willing to put in more time trying to debug this, but I don't even have a clue where to start on seeing why the export fails. Any pointers on where to start looking?

        I'd suggest filing a bug report with rt.cpan.org, to see if that generates some further ideas.