Tue Feb 07 12:57:02 2017: Request 120131 was acted upon.
Transaction: Correspondence added by [email protected]
Queue: PAR-Packer
Subject: Re: [rt.cpan.org #120131] PAR::Packer DynaLoader Problem On
Strawberry Perl 5.24.1
Broken in: (no value)
Severity: (no value)
Owner: Nobody
Requestors: [email protected]
Status: rejected
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=120131 >
Roderich,
You are correct e88b1fb1.xs.dll is identical to PNG.xs.dll but what that
means is:
[james.r@jrushworth PNG]$ objdump -ax PNG.xs.dll | perl -ne 'print if
/DLL Name/'
DLL Name: msvcrt.dll
DLL Name: libpng16-16__.dll
DLL Name: KERNEL32.dll
DLL Name: perl524.dll
C:\Users\james\AppData\Local\Temp\par-6a616d6573\cache-c1546264452e74db829440ed61c603745f7769ed>objdump
-ax e88b1fb1.xs.dll | perl -ne "print if /DLL Name/"
DLL Name: msvcrt.dll
DLL Name: libpng16-16__.dll
DLL Name: KERNEL32.dll
DLL Name: perl524.dll
objdump for both files shows exactly the same links.
The original error message tells us that it can't find e88b1fb1.xs.dll
but the same file is in the executable called PNG.xs.dll. Why is it able
to find the file if Strawberry Perl is installed on the machine but not
if it isn't. One of the things I tried is installing Strawberry Perl on
the machine immediately after getting the error message and starting a
new command prompt with Strawberry Perl in the path and having the
executable run with no error.
ttfn
jr
Roderich Schupp via RT wrote:
> <URL: https://rt.cpan.org/Ticket/Display.html?id=120131 >
>
> On 2017-02-07 11:34:00, [email protected] wrote:
>> I tried the pp command with the --link libpng16-16__.dll option and
>> found libpng16-16__.dll included with the executable (it definitely
>> wasn't without the --link option) but running the executable on a
>> Windows 10 machine with no Perl installed produced exactly the same
>> error.
>>
>> It seems to me that e88b1fb1.xs.dll is some kind of dynamic file which
>> gets created if Perl is installed but not if there is no Perl.
>
> No, it's not a dynamic file, it's actually one of the files that you see with
>
> unzip -l your.exe
>
> but extracted into the cache area with a different name (it's the CRC32
> checksum
> of the original file's contents). My guess would be .../Tk/PNG/PNG.xs.dll
> (verify by comparing the output of md5sum or sha1sum for the two files).
>
> Anyway, look up the DLLs that this file is actually linked with, e.g.
>
> objdump -ax
> C:\Users\NTHOMP~1\AppData\Local\Temp\par-6e74686f6d70736f6e\cache-a689a490f84fa6e443fb002bba992a32a268b542\e88b1fb1.xs.dll
> | perl -ne 'print if /DLL
> Name/'
>
> Most likely it's not only linked with some libpng*, but also some libz*.
> Add another --link option for that, rinse and repeat.
>
> Cheers, Roderich
>
>
>
>
>
>
>
>
>
--
James P. Rushworth
Senior Support Analyst
Divestco Geomatics
P: 587-952-8168 www.divestco.com
C: 403-370-0519 300, 520 - 3 Avenue SW
F: 587-952-8372 Calgary, AB T2P 0R3
This e-mail is intended solely for the person or entity to which it is
addressed and may contain confidential or privileged information. Any
use of this e-mail by any other person is prohibited. If you have
received this e-mail in error, please contact the sender. We honour
similar requests relating to the privacy of email communications.