When building OpenSSL 1.0.1e in the context of a larger build, the build fails
with the following error:
perl crypto\bn\asm\x86_64-gf2m.pl tmp32dll\x86_64-gf2m.asm
ml64 /c /Cp /Cx /Zi /Fotmp32dll\x86_64-gf2m.obj tmp32dll\x86_64-gf2m.asm
Assembling: tmp32dll\x86_64-gf2m.asm
tmp32dll\x86_64-gf2m.asm(1) : error A2088: END directive required at end of file
Microsoft (R) Macro Assembler (x64) Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio
8\VC\BIN\x86_amd64\ml64.EXE"' : return code '0x1'
Stop.
The build finishes successfuly when nmake is invoked again. The failure is much
less probable in stand-alone OpenSSL builds.
Used software:
* Windows 7 Professional SP1, 64 bit
* Microsoft Visual Studio 2010 10.0.40219.1 SP1Rel command prompt
(vcvarsall.bat amd64)
* Perl v5.16.2, Binary build 1602 [296513] provided by ActiveState
http://www.ActiveState.com
Workaround:
---
--- util/pl/VC-32.plMon Feb 11 16:26:04 2013
+++ util/pl/workaroud_VC-32.pl Fri Mar 1 16:21:19 2013
@@ -58,6 +58,7 @@
\$(TMP_D)$o$bname.asm: $source
set ASM=\$(ASM)
\$(PERL) $source \$\@
+ sleep 1
$target: \$(TMP_D)$o$bname.asm
\$(ASM) $afile\$\@ \$(TMP_D)$o$bname.asm
---
I think that the proper solution would be to use temporary files instead of
pipes when generating ASM on Windows.
Note that the bug is similar to bug #2817 but the workaround described in the
bug (disable STDOUT buffering) does not work for me.
__
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majord...@openssl.org