Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm
Wed Feb 03 17:40:08 2010: Request 54074 was acted upon. Transaction: Correspondence added by m.noon...@comcast.net Queue: PAR-Packer Subject: Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm Broken in: 1.002 Severity: Normal Owner: Nobody Requestors: m.noon...@comcast.net Status: open Ticket https://rt.cpan.org/Ticket/Display.html?id=54074 > Here is a fix for the "Can't call method "remove" on an undefined value " problem. Change line 106 of myldr/Makefile.PL to what you see below. } elsif ( ($cc =~ m/^gcc\b/i) or ($cc =~ m/\bgcc.exe\b/i) or ($cc =~ m/^cc\b/i and $gccversion)) { This, along wiht Alexey's other patch for commenting out if ($Config{_delim} eq '\\') { s{\\}{/}g for @inc } in script/par.pl, results in all tests passing on Windows XP, ActiveState 5.10.1. Thanks
Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm
Quoth m.noon...@comcast.net (Malcolm Nooning): > On 2/3/2010 3:54 PM, Alexey Borzenkov via RT wrote: > > https://rt.cpan.org/Ticket/Display.html?id=54074> > > > > On Wed Feb 03 08:15:48 2010, m.noon...@comcast.net wrote: > > > >> cc='C:/MinGW/bin/gcc.exe' > >> > > Aha! You see, here's your problem. myldr/Makefile.PL checks for $cc > being /^gcc\b/i and your > > $cc clearly doesn't start with gcc. You need to either rebuild Perl so > that cc is not absolute, or > > ask Steffen Muller to check basename of $cc... That's not the right solution either, since on my system (FreeBSD) I have cc='cc'; but it's still gcc. I believe that $Config{gccversion} is only defined if we are using gcc, but you may need to check with Merijn/p5p. Ben
Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm
Here is a fix for the "Can't call method "remove" on an undefined value " problem. Change line 106 of myldr/Makefile.PL to what you see below. } elsif ( ($cc =~ m/^gcc\b/i) or ($cc =~ m/\bgcc.exe\b/i) or ($cc =~ m/^cc\b/i and $gccversion)) { This, along wiht Alexey's other patch for commenting out if ($Config{_delim} eq '\\') { s{\\}{/}g for @inc } in script/par.pl, results in all tests passing on Windows XP, ActiveState 5.10.1. Thanks
Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm
Wed Feb 03 16:44:49 2010: Request 54074 was acted upon. Transaction: Correspondence added by m.noon...@comcast.net Queue: PAR-Packer Subject: Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm Broken in: 1.002 Severity: Normal Owner: Nobody Requestors: m.noon...@comcast.net Status: open Ticket http://rt.cpan.org/Ticket/Display.html?id=54074 > You suggested writing to Steffen Muller to check the basename of $cc because, to restate the problem, I cannot by hand do pp --gui --icon hi.ico -o hello.exe hello.pl because my MinGW's cc is not /^gcc\b/i, which is what is looked for. This also causes the 31st of the t/20-pp.t test file to fail, which is the same thing I am trying to do by hand above. My cc is not necessarily gcc, either, as I use a Microsoft compiler sometimes, too. I am sure others do, too. Recompiling ActiveState perl to get a module to work does not seem the way to go. Steffen, can you alter the Par::Packer code to check what cc is in use? My Windows XP ActiveState Perl 5.10.1 gets the error Can't call method "remove" on an undefined value at C:/Perl/site/lib/Win32/Exe.pm line 220, as reported in the rt bug. Thanks On 2/3/2010 3:54 PM, Alexey Borzenkov via RT wrote: > https://rt.cpan.org/Ticket/Display.html?id=54074> > > On Wed Feb 03 08:15:48 2010, m.noon...@comcast.net wrote: > >> cc='C:/MinGW/bin/gcc.exe' >> > Aha! You see, here's your problem. myldr/Makefile.PL checks for $cc being > /^gcc\b/i and your > $cc clearly doesn't start with gcc. You need to either rebuild Perl so that > cc is not absolute, or > ask Steffen Muller to check basename of $cc... > >
Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm
You suggested writing to Steffen Muller to check the basename of $cc because, to restate the problem, I cannot by hand do pp --gui --icon hi.ico -o hello.exe hello.pl because my MinGW's cc is not /^gcc\b/i, which is what is looked for. This also causes the 31st of the t/20-pp.t test file to fail, which is the same thing I am trying to do by hand above. My cc is not necessarily gcc, either, as I use a Microsoft compiler sometimes, too. I am sure others do, too. Recompiling ActiveState perl to get a module to work does not seem the way to go. Steffen, can you alter the Par::Packer code to check what cc is in use? My Windows XP ActiveState Perl 5.10.1 gets the error Can't call method "remove" on an undefined value at C:/Perl/site/lib/Win32/Exe.pm line 220, as reported in the rt bug. Thanks On 2/3/2010 3:54 PM, Alexey Borzenkov via RT wrote: https://rt.cpan.org/Ticket/Display.html?id=54074> On Wed Feb 03 08:15:48 2010, m.noon...@comcast.net wrote: cc='C:/MinGW/bin/gcc.exe' Aha! You see, here's your problem. myldr/Makefile.PL checks for $cc being /^gcc\b/i and your $cc clearly doesn't start with gcc. You need to either rebuild Perl so that cc is not absolute, or ask Steffen Muller to check basename of $cc...
Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm
Tue Feb 02 08:21:09 2010: Request 54074 was acted upon. Transaction: Correspondence added by m.noon...@comcast.net Queue: PAR-Packer Subject: Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm Broken in: 1.002 Severity: Normal Owner: Nobody Requestors: m.noon...@comcast.net Status: open Ticket https://rt.cpan.org/Ticket/Display.html?id=54074 > >To fix, open script/par.pl and remove the line that #if ($Config{_delim} eq '\\') { s{\\}{/}g for @inc } Granted that this solves the problem with PodStrip.pm problem, there is still the problem in that the test cannot do pp --gui --icon hi.ico -o hello.exe hello.pl I cannot do it by hand, either, as shown in the paste further below. Also, there is a weird parlu9ejbKb.exe, also shown below. By the way, this is with Perl 5.10.1, mingw with gcc 3.4.5. ---Paste C:\tmp>dir 02/02/2010 08:12 AM17 hello.pl 04/04/2007 04:25 PM 5,694 hi.ico C:\tmp>pp --gui --icon hi.ico -o hello.exe hello.pl Set up gcc environment - 3.4.5 (mingw special) Can't call method "remove" on an undefined value at C:/Perl/site/lib/Win32/Exe.pm line 220. C:\tmp>dir 02/02/2010 08:12 AM17 hello.pl 04/04/2007 04:25 PM 5,694 hi.ico 02/02/2010 08:14 AM 1,937,553 parlu9ejbKb.exe
Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm
Wed Feb 03 08:15:48 2010: Request 54074 was acted upon. Transaction: Correspondence added by m.noon...@comcast.net Queue: PAR-Packer Subject: Re: [rt.cpan.org #54074] PAR test fails a gui test with Win32/Exe.pm Broken in: 1.002 Severity: Normal Owner: Nobody Requestors: m.noon...@comcast.net Status: open Ticket https://rt.cpan.org/Ticket/Display.html?id=54074 > perl -MWin32::Exe -e "print \"$Win32::Exe::VERSION\n\" 0.11 > do parl.exe? parldyn.exe and static.exe have icons? Yes, but, um, not special ones. They show the same windows icons as any ".exe" file. For comparison purposes, they are the same as the icons that Windows gives C:\perl\bin\a2p, and C:\perl\bin\perlglob. Same with C:\temp\PAR-Packer-1.002\myldr\par is the same, too. > linked against win32.coff How would I check for this? C:\>perl -V Set up gcc environment - 3.4.5 (mingw special) Summary of my perl5 (revision 5 version 10 subversion 1) configuration: Platform: osname=MSWin32, osvers=5.00, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='C:/MinGW/bin/gcc.exe', ccflags ='-DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DUSE_SITECUSTOMIZE -DPRIVLIB_LAST_IN_INC -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-strict-aliasing -mms-bitfields', optimize='-O2', cppflags='-DWIN32' ccversion='', gccversion='3.4.5 (mingw special)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='C:\MinGW\bin\g++.exe', ldflags ='-L"C:\Perl\lib\CORE"' libpth=\lib libs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt perllibs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl510.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-mdll -L"C:\Perl\lib\CORE"' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_SITECUSTOMIZE Locally applied patches: ActivePerl Build 1006 [291086] 32728 64-bit fix for Time::Local Built under MSWin32 Compiled at Aug 24 2009 13:48:26 @INC: C:/Perl/site/lib C:/Perl/lib . C:\>