Wed Jul 13 06:36:56 2011: Request 69443 was acted upon. Transaction: Correspondence added by mdengf...@gmail.com Queue: PAR-Packer Subject: Re: [rt.cpan.org #69443] parl.exe try to load dll from c:\strawberry\lib first Broken in: (no value) Severity: (no value) Owner: RSCHUPP Requestors: mdengf...@gmail.com Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=69443 >
Good news. This issue has been fixed in http://svn.openfoundry.org/par/PAR-Packer/trunk. When I install this latest version on strawberry-5.12.3x64.the parl.exe can be executed sucessful no mater what perl version was installed in c:\strawberry. But there is still a test fail , Here are the details C:\workspace\PAR-Packer>dmake test C:\strawberry\perl\bin\perl.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/3 0-current_exec.t t/40-packer_cd_option.t t/90-rt59710.t t/00-pod.t ............... skipped: Set environment variable PERL_TEST_POD=1 to test POD t/10-parl-generation.t ... ok t/20-pp.t ................ 26/34 The system cannot execute the specified program . t/20-pp.t ................ 27/34 C:\workspace\PAR-Packer\blib\script/pp: Cannot open hello.exe for reading: No such file or directory at C:\workspace\PAR-Packer \blib\lib/PAR/Packer.pm line 1170. # Failed test 'pp_gui_tests # amsg572: sub pp_gui_tests cannot system pp --gui --icon hi.ico -o hello.exe he llo.pl:No such file or directory: # ' # at automated_pp_test.pl line 8445. t/20-pp.t ................ 34/34 # Looks like you failed 1 test of 34. t/20-pp.t ................ Dubious, test returned 1 (wstat 256, 0x100) Failed 1/34 subtests t/30-current_exec.t ...... # Please wait t/30-current_exec.t ...... ok t/40-packer_cd_option.t .. ok t/90-rt59710.t ........... ok Test Summary Report ------------------- t/20-pp.t (Wstat: 256 Tests: 34 Failed: 1) Failed test: 32 Non-zero exit status: 1 Files=6, Tests=74, 1378 wallclock secs ( 0.06 usr + 0.00 sys = 0.06 CPU) Result: FAIL Failed 1/6 test programs. 1/74 subtests failed. dmake: Error code 255, while making 'test_dynamic' C:\workspace\PAR-Packer>pp -o hello.exe -e "print qq[hello world\n]" C:\workspace\PAR-Packer>hello.exe hello world C:\workspace\PAR-Packer>objdump -h hello.exe hello.exe: file format pei-x86-64 Sections: Idx Name Size VMA LMA File off Algn 0 .text 000048c0 0000000000401000 0000000000401000 00000400 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .data 0016b130 0000000000406000 0000000000406000 00004e00 2**5 CONTENTS, ALLOC, LOAD, DATA 2 .rdata 00000580 0000000000572000 0000000000572000 00170000 2**4 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .bss 000089f0 0000000000573000 0000000000573000 00000000 2**5 ALLOC 4 .idata 00000c98 000000000057c000 000000000057c000 00170600 2**2 CONTENTS, ALLOC, LOAD, DATA 5 .CRT 00000068 000000000057d000 000000000057d000 00171400 2**3 CONTENTS, ALLOC, LOAD, DATA 6 .tls 00000048 000000000057e000 000000000057e000 00171600 2**5 CONTENTS, ALLOC, LOAD, DATA 7 .rsrc 00001538 000000000057f000 000000000057f000 00171800 2**2 CONTENTS, ALLOC, LOAD, DATA Thank Roderich for the help Dengfeng 2011/7/13 Roderich Schupp via RT <bug-par-pac...@rt.cpan.org> > <URL: https://rt.cpan.org/Ticket/Display.html?id=69443 > > > On 2011-07-13 03:40:43, mdengf...@gmail.com wrote: > > After the module was installed. I can run the parl.exe correctly. > > Then I copy the parl.exe to c:\ and install strawberry-perl-5.10.4x86 > under > > c:\strawberry. When I try to run the file c:\parl.exe, I got error > > Looks like parl.exe (which in theory should be totally self-contained) > still looks for modules in C:\strawberry\... (i.e. the configuration > from where it was built) in preference to the modules packed > into parl.exe. > > If it finds a module and its DLL in C:\strawberry\... it tries to load > that - and that won't work because Perl 5.12 and 5.10 have incompatible > ABIs. If there's nothing in C:\strawberry\... it falls back to > the built-in modules. > > This behaviour might be caused by the fact that Strawberry Perl 5.12 > contains a new version of XSLoader that breaks PAR::Packer's hack > to intercept loading of DLLs. > > The fix for that is already in PAR::Packer's Subversion repository: > > http://svn.openfoundry.org/par/PAR-Packer/trunk > > Could you try that, i.e. > - re-install Straberry 5.12.3 > - check out the above > - apply the patch from RT 57273 as before > - build it and save parl.exe > > While you're at it: regarding that patch from RT 57273: > - does "dmake test" pass all tests? > - after "dmake install", please try to pack a minimal script > > pp -o hello.exe -e "print qq[hello world\n]" > > I'm interested in the output of > > objdump -h hello.exe > > in particular if it lists a resource section (".rsrc") > (objdump.exe is in C:\strawberry\c\bin). > > Cheers, Roderich > > > > -- --------------------------------------------------------- Market is wrong, But I am right!