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

The full install log is below, but I'm not sure why I'm not installing the xs version -- the README and perldocs didn't suggest how to do so, and in Makefile.PL I only saw a reference to can_cc(), which I couldn't find any documentation on? Any more guidance on where I could go looking?
The can_cc() routine referenced in the Makefile.PL refers to the included Module::Install::Can (a private helper module). For some reason this fails for you, which is why the XS version wasn't built. You might try building the package as
perl Makefile.PL -xs
which should override the setting returned by can_cc().

Replies are listed 'Best First'.
Re^4: Graph 0.69 on AIX
by Anonymous Monk on Dec 13, 2005 at 19:10 UTC

    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?

      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?