Commit 94de0419 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Fix so Win32 assembly language works with MASM.

Add info about where to get MASM.
parent 1070e0e2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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)
+15 −9
Original line number Diff line number Diff line
@@ -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.

+2 −2
Original line number Diff line number Diff line

  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
+8 −1
Original line number Diff line number Diff line
@@ -341,8 +341,15 @@ sub main'set_label
		$label{$_[0]}="${label}${_[0]}";
		$label++;
		}
	if((defined $_[1]) && ($_[1] == 1))
		{
		push(@out,"$label{$_[0]}::\n");
		}
	else
		{
		push(@out,"$label{$_[0]}:\n");
		}
	}

sub main'data_word
	{
+1 −1
Original line number Diff line number Diff line
@@ -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");