in reply to Perl_croak_xs_usage problem

If you have dumpbin.exe on your system, and you run it against the module named in the very first error message:

Can't load 'C:/Perl/lib/auto/IO/IO.dll' for module IO: load_file: The specified procedure could not be found at C:/Perl/lib/XSLoader.pm +line 70.

You'll find that it attempts to import this entrypoint (amongst many others), from perl510.dll:

C:\test>dumpbin /imports \perl64\lib\auto\IO\IO.dll Microsoft (R) COFF/PE Dumper Version 7.00.9466 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file \perl64\lib\auto\IO\IO.dll File Type: DLL Section contains the following imports: perl510.dll ... 42E Perl_sv_newmortal 21C Perl_croak_xs_usage 8F PerlIO_tmpfile ...

And if you dump the exports from perl510.dll, you should see it there:

C:\test>dumpbin /exports \perl64\bin\perl510.dll | find "usage" 541 21C 00035690 Perl_croak_xs_usage

For it not to be found in the DLL (you'd get a different error if the DLL wasn't found), suggests that the entrypoint is either:

  1. being exported under different name.

    Unlikely if this is a AS install.

  2. being imported under a different name (by IO.dll).

    Again unlikely as IO.dll comes with the AS distribution.

My guess is that one or other (or both) of those two DLLs is being embedded in your .par and being found instead of those in your current AS distribution.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP PCW It is as I've been saying!(Audio until 20090817)

Replies are listed 'Best First'.
Re^2: Perl_croak_xs_usage problem
by markuhs (Scribe) on Oct 01, 2009 at 15:44 UTC
    Just come from re-installing...
    No change! :-(

    Why should PAR work until last week and today it does not anymore?

      At the risk of stating the obvious, something changed!

      Without access to the .par in question and your system, diagnosis is impossible. Ie. You're the only one who can work out what is going on.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        Well, print "hello\n" is enough to create the error msg I would send the .par if I could figure out how to stick it in here! pp --version Set up gcc environment - 3.4.5 (mingw-vista special r3) PAR Packager, version 0.991 (PAR version 0.994) perl -v This is perl, v5.10.1 built for MSWin32-x86-multi-thread Where to go from here ?
      I'm seeing exactly the same problem, your not alone on this one :(