Tue Feb 08 09:50:28 2011: Request 65535 was acted upon. Transaction: Correspondence added by [email protected] Queue: PAR Subject: Re: [rt.cpan.org #65535] Unable to run perl script packaged with pp under cygwin on another Windows XP installation Broken in: (no value) Severity: (no value) Owner: Nobody Requestors: [email protected] Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=65535 >
I actually did the cygwin install. Hence the mention in the bug report of doing a minimal install of cygwin and perl to try to fix the issue. Any thoughts on what's causing the POSIX load_import error? The error message is EXACTLY what appeared on the screen - no "s" at the end of load_import. And it was PAR (pp) that did all the relocation and renaming, so I have no idea what caused the screwy ./C: at the beginning. Thanks for the help. ________________________________ From: Roderich Schupp via RT <[email protected]> To: [email protected] Sent: Tue, February 8, 2011 2:46:39 AM Subject: [rt.cpan.org #65535] Unable to run perl script packaged with pp under cygwin on another Windows XP installation <URL: https://rt.cpan.org/Ticket/Display.html?id=65535 > On 2011-02-07 11:25:16, [email protected] wrote: > I created a perl script parseDealerFiles.exe with pp: > pp -o parseDealerFiles.exe -c read_agency.pl > > The resulting package runs fine on the build system. On other > platforms, however, it fails. That's to be expected. The resulting executable still "lives" in the Cygwin universe, hence needs a minimal Cygwin runtime. If you want a real standalone executable, I suggest you use a "native" Perl distribution, e.g. ActiveState or Strawberry. Back to Cygwin: I just tried a minimal example (note that I have gcc-4 installed and built my PAR::Packer with it). $ pp -o hello.exe -e 'print "hello cygwin\n"' The resulting hello.exe is linked with (in addition to the Windows kernel32.dll) DLL contained in Cygwin package cygwin1.dll cygwin-1.7.7-1 cyggcc_s-1.dll cyggcc_s-1.dll cygssp-0.dll libssp0-4.3.4-3 If you look into the cache area, C:/temp/par-USER/SHA1CHECKSUM or similar, you'll see an executable called "hello" (it's different from hello.exe - it's actually a special purpose Perl interpreter). "hello" is also linked against the above DLLs plus cygperl5_10.dll (which can also be found in the cache area). The latter is in turn linked with cygcrypt-0.dll (contained in crypt-1.1-1) cygwin1.dll cyggcc_s-1.dll cygssp-0.dll So all Cygwin packages mentioned above need to be installed whereever you want to run the executable. (Package "perl" should NOT be needed, as cygperl5_10.dll has been packed in.) > I attempted to fix this problem by installing a minimal version of > cygwin+perl on the clean system. That didn't work either - I hit > some problem with the POSIX module: > Can't locate ./C:/TEMP/par-OCheyette/cache-f3bb3a3b5cf33a95f9828a5031438146c41d2801/inc/lib/auto/POSIX/load_import.al Different problem. Strange path name: - note ".C/:" at the beginning - the file is actually called load_imports.al (note the "s") Cheers, Roderich
