Hi,
trying to compile openssl 1.0.1 on win32 with visual studio 2010
(SP1). I get the following error when assembling x86cpuid.asm:
---------
perl crypto\x86cpuid.pl win32 /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS
-DDSO_WIN32 -W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32
-DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE
-DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT
-DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM
-DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
-DOPENSSL_USE_APPLINK -I. -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5
-DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE >tmp32dll\x86cpuid.asm
ml /nologo /Cp /coff /c /Cx /Zi /Fotmp32dll\x86cpuid.obj
tmp32dll\x86cpuid.asm
Assembling: tmp32dll\x86cpuid.asm
tmp32dll\x86cpuid.asm(155) : error A2022:instruction operands must be
the same size
tmp32dll\x86cpuid.asm(165) : error A2022:instruction operands must be
the same size
tmp32dll\x86cpuid.asm(219) : error A2022:instruction operands must be
the same size
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual
Studio 10.0\VC\BIN\ml.EXE"' : return code '0x1'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual
Studio 10.0\VC\BIN\nmake.EXE"' : return code '0x2'
Stop.
----------
Apparently this change in crypto/perlasm/x86masm.pl:
if ($opcode =~ /lea/ && @arg[1] =~ s/.*PTR\s+([^\[]+)$/$1/) # no []
{ $opcode="mov"; }
elsif ($opcode !~ /movq/)
translates the "picmeup" in x86cpuid.pl:
&picmeup("ecx","OPENSSL_ia32cap_P");
into:
mov ecx,_OPENSSL_ia32cap_P
which causes above compiler error. Older versions translated that into:
lea ecx,DWORD PTR _OPENSSL_ia32cap_P
Am I doing something wrong here?
Rgds,
Chris
PS:
c:\openssl>ml /?
Microsoft (R) Macro Assembler Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [email protected]