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.pl Mon 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