--- misc/openssl-0.9.8o/crypto/x509v3/v3_pci.c	2007-03-05 01:06:47.000000000 +0100
+++ misc/build/openssl-0.9.8o/crypto/x509v3/v3_pci.c	2010-03-26 12:04:20.961547300 +0100
@@ -2,7 +2,7 @@
 /* Contributed to the OpenSSL Project 2004
  * by Richard Levitte (richard@levitte.org)
  */
-/* Copyright (c) 2004 Kungliga Tekniska H�gskolan
+/* Copyright (c) 2004 Kungliga Tekniska Hoegskolan
  * (Royal Institute of Technology, Stockholm, Sweden).
  * All rights reserved.
  *
--- misc/openssl-0.9.8o/crypto/x509v3/v3_pcia.c	2004-12-28 01:21:33.000000000 +0100
+++ misc/build/openssl-0.9.8o/crypto/x509v3/v3_pcia.c	2010-03-26 12:04:20.961547300 +0100
@@ -2,7 +2,7 @@
 /* Contributed to the OpenSSL Project 2004
  * by Richard Levitte (richard@levitte.org)
  */
-/* Copyright (c) 2004 Kungliga Tekniska H�gskolan
+/* Copyright (c) 2004 Kungliga Tekniska Hoegskolan
  * (Royal Institute of Technology, Stockholm, Sweden).
  * All rights reserved.
  *
--- misc/openssl-0.9.8o/ms/do_ms.bat	2009-07-28 14:51:19.000000000 +0200
+++ misc/build/openssl-0.9.8o/ms/do_ms.bat	2010-03-26 12:19:19.399047300 +0100
@@ -1,11 +1,11 @@
 
-perl util\mkfiles.pl >MINFO
-perl util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak
-perl util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.mak
+%1 util\mkfiles.pl >MINFO
+if %2 == VC-WIN32 goto not64a
+perl ms\uplink.pl win64a > ms\uptable.asm
+ml64 -c -Foms\uptable.obj ms\uptable.asm
+:not64a
+%1 util\mk1mf.pl no-asm %2 >ms\nt.mak
+%1 util\mk1mf.pl dll no-asm %2 >ms\ntdll.mak
-if x%OSVERSION% == x goto skipce
-perl util\mk1mf.pl no-asm VC-CE >ms\ce.mak
-perl util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak
-:skipce
 
-perl util\mkdef.pl 32 libeay > ms\libeay32.def
-perl util\mkdef.pl 32 ssleay > ms\ssleay32.def
+%1 util\mkdef.pl 32 libeay > ms\libeay32.def
+%1 util\mkdef.pl 32 ssleay > ms\ssleay32.def
--- misc/openssl-0.9.8o/util/mk1mf.pl	2009-09-20 14:46:42.000000000 +0200
+++ misc/build/openssl-0.9.8o/util/mk1mf.pl	2010-03-26 12:04:20.977172300 +0100
@@ -128,7 +128,7 @@
 $inc_def="outinc";
 $tmp_def="tmp";
 
-$perl="perl" unless defined $perl;
+$perl="$ENV{PERL}" unless defined $perl;
 $mkdir="-mkdir" unless defined $mkdir;
 
 ($ssl,$crypto)=("ssl","crypto");
@@ -290,6 +290,11 @@
 	chop;
 
 	($key,$val)=/^([^=]+)=(.*)/;
+
+	# On some Windows machines, $val has linefeeds at the end, which confuses
+	# subsequent code in this file. So we strip all whitespace at the end.
+	$val =~ s/\s+$//;
+
 	if ($key eq "RELATIVE_DIRECTORY")
 		{
 		if ($lib ne "")
@@ -730,7 +735,7 @@
 printf OUT <<EOF;
 #ifdef $platform_cpp_symbol
   /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
-  #define CFLAGS "$cc $cflags"
+  #define CFLAGS "$cflags"
   #define PLATFORM "$platform"
 EOF
 printf OUT "  #define DATE \"%s\"\n", scalar gmtime();
--- misc/openssl-0.9.8o/util/pl/VC-32.pl	2010-02-04 02:10:24.000000000 +0100
+++ misc/build/openssl-0.9.8o/util/pl/VC-32.pl	2010-03-26 12:04:20.977172300 +0100
@@ -32,7 +32,7 @@
 $l_flags =~ s/-L(\S+)/\/libpath:$1/g;
 
 # C compiler stuff
-$cc='cl';
+$cc=$ENV{'CC'};
 if ($FLAVOR =~ /WIN64/)
     {
     # Note that we currently don't have /WX on Win64! There is a lot of
@@ -103,21 +103,21 @@
     }
 
     $cc='$(CC)';
-    $base_cflags=' /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -I$(WCECOMPAT)/include -DOPENSSL_SMALL_FOOTPRINT';
+    $base_cflags=' -W3 -WX -GF -Gy -nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -I$(WCECOMPAT)/include -DOPENSSL_SMALL_FOOTPRINT';
     $base_cflags.=" $wcecdefs";
-    $opt_cflags=' /MC /O1i';	# optimize for space, but with intrinsics...
-    $dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG';
+    $opt_cflags=' -MC -O1i';	# optimize for space, but with intrinsics...
+    $dbg_clfags=' -MC -Od -DDEBUG -D_DEBUG';
     $lflags="/nologo /opt:ref $wcelflag";
     }
 else	# Win32
     {
-    $base_cflags=' /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
+    $base_cflags=' -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
     $base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE';	# shut up VC8
     $base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE';	# shut up VC8
-    my $f = $shlib || $fips ?' /MD':' /MT';
-    $lib_cflag='/Zl' if (!$shlib);	# remove /DEFAULTLIBs from static lib
-    $opt_cflags=$f.' /Ox /O2 /Ob2';
-    $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
+    my $f = $shlib || $fips ?' -MD':' -MT';
+    $lib_cflag='-Zl' if (!$shlib);	# remove /DEFAULTLIBs from static lib
+    $opt_cflags=$f.' -Ox -O2 -Ob2';
+    $dbg_cflags=$f.'d -Od -DDEBUG -D_DEBUG';
     $lflags="/nologo /subsystem:console /opt:ref";
     }
 $mlflags='';
@@ -138,7 +138,7 @@
 	}
 
 $obj='.obj';
-$ofile="/Fo";
+$ofile="-Fo.\\";
 
 # EXE linking stuff
 $link="link";
@@ -298,7 +298,7 @@
 	$tmp_def='tmp32dll_$(TARGETCPU)';
 	}
 
-$cflags.=" /Fd$out_def";
+$cflags.=" -Fd$out_def";
 
 sub do_lib_rule
 	{
--- misc/build/openssl-0.9.8o/ms/uplink.c
+++ misc/build/openssl-0.9.8o/ms/uplink.c
@@ -1,5 +1,6 @@
 #if (defined(_WIN64) || defined(_WIN32_WCE)) && !defined(UNICODE)
 #define UNICODE
+#define _CRT_NON_CONFORMING_SWPRINTFS
 #endif
 #if defined(UNICODE) && !defined(_UNICODE)
 #define _UNICODE