Обсуждение: small fix for Windows build
My not yet complete attempt at doing a Windows build produces several of these warnings during the build phase: Hash %ENV missing the % in argument 1 of each() at -e line 1. I believe the attached patch is the fix for that.
Вложения
On 04/04/2011 04:41 PM, Peter Eisentraut wrote: > My not yet complete attempt at doing a Windows build produces several of > these warnings during the build phase: > > Hash %ENV missing the % in argument 1 of each() at -e line 1. > > I believe the attached patch is the fix for that. > I am not seeing any such errors on currawong or mastodon. So I'm not sure what you're doing that's causing you to get the errors, or if your platform is different. But I think we need to get to the bottom of it before changing something that's working. cheers andrew
On Mon, Apr 4, 2011 at 23:08, Andrew Dunstan <andrew@dunslane.net> wrote: > > > On 04/04/2011 04:41 PM, Peter Eisentraut wrote: >> >> My not yet complete attempt at doing a Windows build produces several of >> these warnings during the build phase: >> >> Hash %ENV missing the % in argument 1 of each() at -e line 1. >> >> I believe the attached patch is the fix for that. >> > > I am not seeing any such errors on currawong or mastodon. So I'm not sure > what you're doing that's causing you to get the errors, or if your platform > is different. But I think we need to get to the bottom of it before changing > something that's working. +1. Are you perhaps running this under some non-standard shell? Or maybe we've hit another windows version incompatibility - what version of Windows are you seeing this on? -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/
On mån, 2011-04-04 at 17:08 -0400, Andrew Dunstan wrote: > > On 04/04/2011 04:41 PM, Peter Eisentraut wrote: > > My not yet complete attempt at doing a Windows build produces several of > > these warnings during the build phase: > > > > Hash %ENV missing the % in argument 1 of each() at -e line 1. > > > > I believe the attached patch is the fix for that. > > > > I am not seeing any such errors on currawong or mastodon. So I'm not > sure what you're doing that's causing you to get the errors, or if your > platform is different. But I think we need to get to the bottom of it > before changing something that's working. My Perl installation is 5.12, which is the latest from ActiveState. According to <http://dev.perl.org/perl5/news/2010/perl-5.12.0.html>, "Perl now warns the user about the use of deprecated features by default." (I also see a bunch of other warnings, btw.) The code in question is perl -e "require 'src/tools/msvc/buildenv.pl'; while(($k,$v) = each %ENV) { print qq[\@SET $k=$v\n]; }" > bldenv.bat The % is apparently interpolated, and I guess that since there is no bat variable %ENV, it just removes the % and effectively executes perl -e "require 'src/tools/msvc/buildenv.pl'; while(($k,$v) = each ENV) { print qq[\@SET $k=$v\n]; }" > bldenv.bat which will draw a warning when run with -w in any recent Perl version. If you replace the % by %%, one % will remain in the final command. I suggest that someone who is more fluent with the Windows build either run the whole build with Perl 5.12, or with Perl 5.10 plus warnings, and clean it up. In the future, this stuff might break.