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

Reply via email to