office-gobmx/openssl/openssl.patch
Tor Lillqvist 77d90bd7ba Fix OpenSSL build for x64 Windows
For wntmscx, pass the platform code as VC-WIN64A to the OpenSSL build
mechanism. Add the additional steps described in INSTALL.W64 to
do_ms.bat: generate uptable.asm and assemble it. Avoid a problem with
_vsnprintf by defining _CRT_NON_CONFORMING_SWPRINTFS.
2011-01-24 01:20:05 +02:00

145 lines
5.2 KiB
Diff

--- 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