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

Has anyone encountered "boot_AIX_Perfstat" symbol not found errors while building AIX::Perstat? I ran through the generated Makefiles and tried adding the expall flag but didn't do any good.

Replies are listed 'Best First'.
Re: symbol errors building AIX::Perfstat
by Illuminatus (Curate) on Nov 16, 2009 at 20:39 UTC
    Sorry, I don't have access to an AIX machine, but I have one suggestion. You could try to build a small program that makes use of the C perfstat API. See if the symbol is defined in the resulting executable. If it is, take a look at the link command, and use nm on all of the object/lib files to see where/if it gets defined.
      When you build a AIX::Perfstat, Perfstat.xs file get run through xsubpp, then compiled. Then when you use AIX::Perfstat; it calls DynaLoader::bootstrap which calls
      • DynaLoader::dl_load_file ('auto/AIX/Perfstat.so') and then
      • $boot_symbol_ref = DynaLoader::dl_find_symbol('boot_AIX_Perfstat') and then
      • my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file); and then
      • &$xs;
      Now assuming the user has a compiler, and actually compiled Perfstat.so, the way to get boot_ symbol not found error is though errors in Makefile.PL, or a broken/outdated version of ExtUtils::MakeMaker/ExtUtils::ParseXS (aka xsubpp)... AIX-Perfstat-0.04.1/Makefile.PL look all right to me, so I would suspect the dependencies (ExtUtils::)