develooper Front page | perl.par | Postings from July 2008

RE: Using pp to generate exe from pl in a cygwin env

Thread Previous | Thread Next
From:
Robert Davis
Date:
July 23, 2008 14:43
Subject:
RE: Using pp to generate exe from pl in a cygwin env
Message ID:
3D162396F23CD448B15411C74930C3955208D2@usalwexmb2.infor.com
The error on the make test looks similar to one I was getting.
The reason you get the error (if it's the same as mine) is that it is
testing if it got all the dependences loaded and with cygwin it can't
because there is cygwin1.dll etc.

The test t/30-current_exec basically changes the path so cygwin1.dll
can't be found. I suggested a patch to skip this test because it was
never going to work.

If you do a force install it works anyways.

When packaging a perl script the cygperl5_8.dll doesn't get added to the
archive and instead libperl.a or something similar gets loaded.

I have found for cygwin perl you need the following dll's
predistributed.

Cygwin1.dll
Cygperl5_8.dll
Cygcrypt-0.dll


Ideally we could find a way to include these in the packaging for pp
when run under cygwin.
Unfortunately another problem you will run into is that only version of
cygwin1.dll can be loaded on a computer so if the target machine has a
different version (in the path or loaded in mem) then it will fail.



> -----Original Message-----
> From: darintr@gmail.com [mailto:darintr@gmail.com] On Behalf Of Darin
> Sent: Wednesday, July 23, 2008 10:54 AM
> To: par@perl.org
> Subject: Using pp to generate exe from pl in a cygwin env
> 
> Hello,
> 
> Any help on this would help loads.
> 
> 
> There was one error from make test.
> 
> $ make test
> make[1]: Entering directory `/cygdrive/c/dev/PAR-Packer-0.980/myldr'
> /usr/bin/perl5.8.7.exe -e "chmod(oct('0600'),
> '../blib/lib/PAR/StrippedPARL/Static.pm');"
> /usr/bin/perl5.8.7.exe encode_append.pl ./static.exe
> ../blib/lib/PAR/StrippedPARL/Static.pm
> /usr/bin/perl5.8.7.exe -e "chmod(oct('0444'),
> '../blib/lib/PAR/StrippedPARL/Static.pm');"
> /usr/bin/perl5.8.7.exe -e "chmod(oct('0600'),
> '../blib/lib/PAR/StrippedPARL/Dynamic.pm');"
> /usr/bin/perl5.8.7.exe encode_append.pl ./par.exe
> ../blib/lib/PAR/StrippedPARL/Dynamic.pm
> /usr/bin/perl5.8.7.exe -e "chmod(oct('0444'),
> '../blib/lib/PAR/StrippedPARL/Dynamic.pm');"
> make[1]: Leaving directory `/cygdrive/c/dev/PAR-Packer-0.980/myldr'
> /cygdrive/c/cygwin/bin/perl5.8.7.exe "-MExtUtils::Command::MM" "-e"
> "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/00-pod.t
> t/10-parl-generation.t  t/20-pp.t t/30-current_exec.t
> t/00-pod................skipped
>        all skipped: Set environment variable PERL_TEST_POD=1 to test
POD
> t/10-parl-generation....ok
> t/20-pp.................skipped
>        all skipped: '/usr/bin/perl5.8.7.exe' not found
> t/30-current_exec.......# Please wait
> t/30-current_exec.......ok 2/4
> #   Failed test 'Found the same file via PATH and full path'
> #   at t/30-current_exec.t line 52.
> #          got: ''
> #     expected: '0 = /cygdrive/c/dev/PAR-Packer-0.980/t/test-10.exec
> # PAR_PROGNAME = /cygdrive/c/dev/PAR-Packer-0.980/t/test-10.exec
> # PAR_TEMP =
/cygdrive/c/dev/PAR-Packer-0.980/t-tmp/par-drajan/cache-666d1f82b13c125a
43eab90caed18f57
> # exec =
> # '
> t/30-current_exec.......NOK 3# Looks like you failed 1 test of 4.
> t/30-current_exec.......dubious
>        Test returned status 1 (wstat 256, 0x100)
> DIED. FAILED test 3
>        Failed 1/4 tests, 75.00% okay (less 1 skipped test: 2 okay,
50.00%)
> Failed Test         Stat Wstat Total Fail  Failed  List of Failed
>
------------------------------------------------------------------------
-------
> t/30-current_exec.t    1   256     4    1  25.00%  3
> 2 tests and 1 subtest skipped.
> Failed 1/4 test scripts, 75.00% okay. 1/35 subtests failed, 97.14%
okay.
> make: *** [test_dynamic] Error 14
> 
> I thought the issue for locating perl bin on a Win32 machine was
> resolved in a previous release.
> 
> Thanks.
> 
> -Darin
> 
> 
> ---------- Forwarded message ----------
> From: Steffen Mueller <smueller@ma2geo.mathematik.uni-karlsruhe.de>
> Date: Wed, Jul 23, 2008 at 4:56 AM
> Subject: Re: Using pp to generate exe from pl in a cygwin env
> To: Darin <d.t.rajan@ieee.org>
> 
> 
> Hi Darin,
> 
> I'm sorry, I can't help you. First and foremost, I do not have an
> instance of cygwin nor any other win32 perl. You'd be *much* better
off
> writing to the PAR mailing list as advertised in the PAR
documentation.
> There's cygwin users on that list and the likelihood of receiving a
> timely response is much greater, too.
> 
> That being said, it's very important that you include a description of
> how you installed the module, potentially with a log.
> 
> The error you're facing is one from the make time. A "make test" run
> would have showed you that the installation is broken:
> PAR::StrippedPARL::Static (and ::Dynamic) is a container for the par
> loader without bootstrapping modules that is generated during make
time.
> When you run pp, a copy of that "parl" binary is normally written to
> disk and then augmented with the newest, installed version of the
> necessary bootstrapping modules (PAR, Archive::Zip and friends). In
your
> installed version of the container module, there's obviously no parl.
> 
> Hope this helps a bit.
> 
> Best regards,
> Steffen

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About