From 94de04192d54cc8b3d53a6409993e99926441b00 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Sun, 27 Feb 2000 01:15:25 +0000 Subject: [PATCH] Fix so Win32 assembly language works with MASM. Add info about where to get MASM. --- CHANGES | 7 +++++++ INSTALL.W32 | 24 +++++++++++++++--------- STATUS | 4 ++-- crypto/perlasm/x86ms.pl | 9 ++++++++- crypto/sha/asm/sha1-586.pl | 2 +- 5 files changed, 33 insertions(+), 13 deletions(-) diff --git a/CHANGES b/CHANGES index 58bd9e895e..c08fa854e7 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,13 @@ Changes between 0.9.4 and 0.9.5 [xx XXX 2000] + *) Add an optional second argument to the set_label() in the perl + assembly language builder. If this argument exists and is set + to 1 it signals that the assembler should use a symbol whose + scope is the entire file, not just the current function. This + is needed with MASM which uses the format label:: for this scope. + [Steve Henson, pointed out by Peter Runestig ] + *) Change the ASN1 types so they are typedefs by default. Before almost all types were #define'd to ASN1_STRING which was causing STACK_OF() problems: you couldn't declare STACK_OF(ASN1_UTF8STRING) diff --git a/INSTALL.W32 b/INSTALL.W32 index 6d09a22310..e9d469106c 100644 --- a/INSTALL.W32 +++ b/INSTALL.W32 @@ -21,10 +21,12 @@ * Microsoft MASM (aka "ml") * Free Netwide Assembler NASM. - MASM was I believe distributed in the past with VC++ and it is also part of - the MSDN SDKs. It is no longer distributed as part of VC++ and can be hard - to get hold of. It can be purchased: see Microsoft's site for details at: - http://www.microsoft.com/ + MASM was at one point distributed with VC++. It is now distributed with some + Microsoft DDKs, for example the Windows NT 4.0 DDK and the Windows 98 DDK. If you + do not have either of these DDKs then you can just download the binaries for the + Windows 98 DDK and extract and rename the two files XXXXXml.exe and XXXXXml.err, + to ml.exe and ml.err and install somewhere on your PATH. Both DDKs can be downloaded + from the Microsoft developers site www.msdn.com. NASM is freely available. Version 0.98 was used during testing: other versions may also work. It is available from many places, see for example: @@ -145,12 +147,16 @@ assigned in the CVS tree: so anything linked against this version of the library may need to be recompiled. - If you get errors about unresolved externals then this means that either you - didn't read the note above about functions not having numbers assigned or - someone forgot to add a function to the header file. + If you get errors about unresolved symbols there are several possible + causes. - In this latter case check out the header file to see if the function is - defined in the header file. + If this happens when the DLL is being linked and you have disabled some + ciphers then it is possible the DEF file generator hasn't removed all + the disabled symbols: the easiest solution is to edit the DEF files manually + to delete them. The DEF files are ms\libeay32.def ms\ssleay32.def. + + Another cause is if you missed or ignored the errors about missing numbers + mentioned above. If you get warnings in the code then the compilation will halt. diff --git a/STATUS b/STATUS index 808281eb19..40972ffed8 100644 --- a/STATUS +++ b/STATUS @@ -1,6 +1,6 @@ OpenSSL STATUS Last modified at - ______________ $Date: 2000/02/25 20:46:09 $ + ______________ $Date: 2000/02/27 01:15:18 $ DEVELOPMENT STATE @@ -14,7 +14,7 @@ solaris-sparcv9-gcc - test passed hpux-parisc-gcc - test passed AIX 4.3 (aix-cc) - test passed - VC++ - assembler error + VC++ - test passed Proposed release time: Monday, February 28th 2000 o OpenSSL 0.9.4: Released on August 09th, 1999 o OpenSSL 0.9.3a: Released on May 29th, 1999 diff --git a/crypto/perlasm/x86ms.pl b/crypto/perlasm/x86ms.pl index 51dcce067f..252a57bdb5 100644 --- a/crypto/perlasm/x86ms.pl +++ b/crypto/perlasm/x86ms.pl @@ -341,7 +341,14 @@ sub main'set_label $label{$_[0]}="${label}${_[0]}"; $label++; } - push(@out,"$label{$_[0]}:\n"); + if((defined $_[1]) && ($_[1] == 1)) + { + push(@out,"$label{$_[0]}::\n"); + } + else + { + push(@out,"$label{$_[0]}:\n"); + } } sub main'data_word diff --git a/crypto/sha/asm/sha1-586.pl b/crypto/sha/asm/sha1-586.pl index 3662c20acc..48d9192a4e 100644 --- a/crypto/sha/asm/sha1-586.pl +++ b/crypto/sha/asm/sha1-586.pl @@ -392,7 +392,7 @@ sub sha1_block_data &X_expand("esi"); &mov(&wparam(1),"esi"); - &set_label("shortcut"); + &set_label("shortcut", 1); &comment(""); &comment("Start processing"); -- 2.34.1