Fix so Win32 assembly language works with MASM.
authorDr. Stephen Henson <steve@openssl.org>
Sun, 27 Feb 2000 01:15:25 +0000 (01:15 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Sun, 27 Feb 2000 01:15:25 +0000 (01:15 +0000)
Add info about where to get MASM.

CHANGES
INSTALL.W32
STATUS
crypto/perlasm/x86ms.pl
crypto/sha/asm/sha1-586.pl

diff --git a/CHANGES b/CHANGES
index 58bd9e8..c08fa85 100644 (file)
--- 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 <peter@runestig.com>]
+
   *) 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)
index 6d09a22..e9d4691 100644 (file)
   * 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:
  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 808281e..40972ff 100644 (file)
--- 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
index 51dcce0..252a57b 100644 (file)
@@ -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
index 3662c20..48d9192 100644 (file)
@@ -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");