Tue Feb 08 05:46:38 2011: Request 65535 was acted upon.
Transaction: Correspondence added by RSCHUPP
       Queue: PAR
     Subject: 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: new
 Ticket <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





Reply via email to