Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error building perl 5.20.1 64bit on win7 VS2010: glob problem in enc2xs? #14451

Open
p5pRT opened this issue Jan 28, 2015 · 4 comments
Open

Error building perl 5.20.1 64bit on win7 VS2010: glob problem in enc2xs? #14451

p5pRT opened this issue Jan 28, 2015 · 4 comments

Comments

@p5pRT
Copy link

p5pRT commented Jan 28, 2015

Migrated from rt.perl.org#123689 (status was 'open')

Searchable as RT123689$

@p5pRT
Copy link
Author

p5pRT commented Jan 28, 2015

From zhouzhen1@gmail.com

Created by zhouzhen1@gmail.com

We are trying to build 5.20.1 64bit on win7 with VS2010 in our
company, and get errors on building encodings. The error messages were
like in #118261 https://rt.perl.org/Public/Bug/Display.html?id=118261
(note that cl usage issue, but the enc2xs error described at the
beginning of that post. )

We guess the problem is at enc2xs, line 125

eval "\@​ARGV = map(glob(\$_),\@​ARGV)" if ($^O eq 'MSWin32');

And we added some print statements (eg. print "DEBUG before glob​: ",
join(' ', @​ARGV), "\n";) before/after this line to check it. And the
log is like below,

if exist ..\..\..\lib\auto\Encode\Byte\Byte.dll.manifest mt -nologo
-man ifest ..\..\..\lib\auto\Encode\Byte\Byte.dll.manifest
-outputresource​:..\..\..\l ib\auto\Encode\Byte\Byte.dll;2
if exist ..\..\..\lib\auto\Encode\Byte\Byte.dll.manifest del
..\..\..\li b\auto\Encode\Byte\Byte.dll.manifest
C​:\Users\zhenyz\AppData\Local\Temp\perlcoretempbuild\miniperl.exe
"-I..\ ..\..\lib" "-I..\..\..\lib" -MExtUtils​::Command -e chmod -- 755
..\..\..\lib\aut o\Encode\Byte\Byte.dll
cd ..
nmake -f Makefile all -nologo
Skip ..\..\..\lib\Encode\CN.pm (unchanged)
Running Mkbootstrap for Encode​::CN ()
C​:\Users\zhenyz\AppData\Local\Temp\perlcoretempbuild\miniperl.exe
"-I..\ ..\..\lib" "-I..\..\..\lib" -MExtUtils​::Command -e chmod -- 644
CN.bs
..\..\..\miniperl.exe "-I..\..\..\lib" ..\bin\enc2xs -"Q" -o
ir_04_t.c - f ir_04_t.fnm
DEBUG before glob​: -Q,-o,ir_04_t.c,-f,ir_04_t.fnm
Use of uninitialized value $flist in open at ..\bin\enc2xs line 149.
Use of uninitialized value $flist in concatenation (.) or string at
..\bin\enc2x s line 149.
Cannot open :No such file or directory at ..\bin\enc2xs line 149.
DEBUG after glob​: -Q,-o,ir_04_t.c,-f
NMAKE : fatal error U1077​: '..\..\..\miniperl.exe' : return code '0x2'
Stop.
NMAKE : fatal error U1077​: '"c​:\Program Files (x86)\Microsoft Visual
Studio 10.0 \VC\BIN\amd64\nmake.EXE"' : return code '0x2'
Stop.
Unsuccessful make(cpan/Encode)​: code=512 at ..\make_ext.pl line 561.
NMAKE : fatal error U1077​: '..\miniperl.exe' : return code '0x2'
Stop.

So it turned out that after this glob, it may lose file name in @​ARGV.
(See the two "DEBUG" output above) This issue happens intermittently,
and if you nmake clean and nmake again, it may happen at another place
that relates to enc2xs. And there is a small chance that it could pass
making.

Thanks.

Perl Info

Flags:
    category=install
    severity=high

Site configuration information for perl 5.20.1:

Configured by nobody at Mon Sep 15 14:11:02 CEST 2014.

@p5pRT
Copy link
Author

p5pRT commented Jan 29, 2015

From @tonycoz

On Wed Jan 28 07​:01​:32 2015, zhouzhen1@​gmail.com wrote​:

We are trying to build 5.20.1 64bit on win7 with VS2010 in our
company, and get errors on building encodings. The error messages were
like in #118261 https://rt.perl.org/Public/Bug/Display.html?id=118261
(note that cl usage issue, but the enc2xs error described at the
beginning of that post. )

We guess the problem is at enc2xs, line 125

eval "\@​ARGV = map(glob(\$_),\@​ARGV)" if ($^O eq 'MSWin32');

And we added some print statements (eg. print "DEBUG before glob​: ",
join(' ', @​ARGV), "\n";) before/after this line to check it. And the
log is like below,

...

..\..\..\miniperl.exe "-I..\..\..\lib" ..\bin\enc2xs -"Q" -o
ir_04_t.c - f ir_04_t.fnm
DEBUG before glob​: -Q,-o,ir_04_t.c,-f,ir_04_t.fnm
Use of uninitialized value $flist in open at ..\bin\enc2xs line 149.
Use of uninitialized value $flist in concatenation (.) or string at
..\bin\enc2x s line 149.
Cannot open :No such file or directory at ..\bin\enc2xs line 149.
DEBUG after glob​: -Q,-o,ir_04_t.c,-f

Do you see the same problem if you run glob manually using miniperl?

eg.

  .\miniperl -le "print for glob(shift)" -- -Q,-o,ir_04_t.c,-f,ir_04_t.fnm

Tony

@p5pRT
Copy link
Author

p5pRT commented Jan 29, 2015

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jan 29, 2015

From zhouzhen1@gmail.com

Hi Tony,

I tried running it for like 20~30 times. And for two times it got errors.

Thanks.

On 1/29/15, Tony Cook via RT <perlbug-followup@​perl.org> wrote​:

On Wed Jan 28 07​:01​:32 2015, zhouzhen1@​gmail.com wrote​:

We are trying to build 5.20.1 64bit on win7 with VS2010 in our
company, and get errors on building encodings. The error messages were
like in #118261 https://rt.perl.org/Public/Bug/Display.html?id=118261
(note that cl usage issue, but the enc2xs error described at the
beginning of that post. )

We guess the problem is at enc2xs, line 125

eval "\@​ARGV = map(glob(\$_),\@​ARGV)" if ($^O eq 'MSWin32');

And we added some print statements (eg. print "DEBUG before glob​: ",
join(' ', @​ARGV), "\n";) before/after this line to check it. And the
log is like below,

...

..\..\..\miniperl.exe "-I..\..\..\lib" ..\bin\enc2xs -"Q" -o
ir_04_t.c - f ir_04_t.fnm
DEBUG before glob​: -Q,-o,ir_04_t.c,-f,ir_04_t.fnm
Use of uninitialized value $flist in open at ..\bin\enc2xs line 149.
Use of uninitialized value $flist in concatenation (.) or string at
..\bin\enc2x s line 149.
Cannot open :No such file or directory at ..\bin\enc2xs line 149.
DEBUG after glob​: -Q,-o,ir_04_t.c,-f

Do you see the same problem if you run glob manually using miniperl?

eg.

.\miniperl -le "print for glob(shift)" -- -Q,-o,ir_04_t.c,-f,ir_04_t.fnm

Tony

--
Best Regards,
Zhou, Zhenyi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants