diff options
author | Michael Stahl <mstahl@redhat.com> | 2018-01-08 17:48:40 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2018-01-08 18:11:28 +0100 |
commit | cd44182c345adf3fe197e49575463ca34b10223d (patch) | |
tree | 1db441cb300c86419f7dd817412dac3b065acb0e /external | |
parent | 169b9264f4c8b6a64ea445766b3f7e18cfee1eb0 (diff) |
openssl: fix MSVC 64-bit build
For whatever reason OpenSSL wants to use "masm" (ml.exe) on 32-bit
builds but "nasm" on 64-bit builds - this despite INSTALL.W32 claiming
that only nasm is "supported".
But /safeseh doesn't make sense on 64-bit anyway because there
is no "unsafe" SEH there, so just apply the patch only for 32-bit.
Change-Id: Ie32b17dfeeaf11c49ee29c3181021ffa5bd99091
Diffstat (limited to 'external')
-rw-r--r-- | external/openssl/UnpackedTarball_openssl.mk | 1 | ||||
-rw-r--r-- | external/openssl/opensslwnt.patch | 15 | ||||
-rw-r--r-- | external/openssl/opensslwnt_safeseh.patch | 23 |
3 files changed, 26 insertions, 13 deletions
diff --git a/external/openssl/UnpackedTarball_openssl.mk b/external/openssl/UnpackedTarball_openssl.mk index 5845e31a436a..719b8b0e5842 100644 --- a/external/openssl/UnpackedTarball_openssl.mk +++ b/external/openssl/UnpackedTarball_openssl.mk @@ -14,6 +14,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,openssl,$(OPENSSL_TARBALL),,openssl $(eval $(call gb_UnpackedTarball_add_patches,openssl,\ external/openssl/openssllnx.patch \ external/openssl/opensslwnt.patch \ + $(if $(filter INTEL,$(CPUNAME)),external/openssl/opensslwnt_safeseh.patch) \ external/openssl/openssl-1.0.1h-win64.patch.1 \ external/openssl/opensslsol.patch \ external/openssl/opensslios.patch \ diff --git a/external/openssl/opensslwnt.patch b/external/openssl/opensslwnt.patch index c5c96dd25700..e22bea6f077b 100644 --- a/external/openssl/opensslwnt.patch +++ b/external/openssl/opensslwnt.patch @@ -79,26 +79,15 @@ diff -ru openssl.orig/util/mk1mf.pl openssl/util/mk1mf.pl APP_CFLAG=$app_cflag LIB_CFLAG=$lib_cflag SHLIB_CFLAG=$shl_cflag -@@ -488,8 +493,8 @@ - SRC_D=$src_dir +@@ -488,7 +493,7 @@ LINK_CMD=$link --LFLAGS=$lflags -+LFLAGS=$lflags /SAFESEH + LFLAGS=$lflags -RSC=$rsc +RSC=$rsc \$(SOLARINC) # The output directory for everything interesting OUT_D=$out_dir -@@ -511,7 +516,7 @@ - MKDIR=$mkdir - MKLIB=$bin_dir$mklib - MLFLAGS=$mlflags --ASM=$bin_dir$asm -+ASM=$bin_dir$asm /safeseh - - # FIPS validated module and support file locations - @@ -669,7 +674,7 @@ printf OUT <<EOF; #ifdef $platform_cpp_symbol diff --git a/external/openssl/opensslwnt_safeseh.patch b/external/openssl/opensslwnt_safeseh.patch new file mode 100644 index 000000000000..f2eafab5b9ed --- /dev/null +++ b/external/openssl/opensslwnt_safeseh.patch @@ -0,0 +1,23 @@ +use /safeseh in 32-bit MSVC builds; this is not required for 64-bit + +diff -ru openssl.orig/util/mk1mf.pl openssl/util/mk1mf.pl +--- a/openssl.orig/util/mk1mf.pl 2016-03-03 20:22:21.043924505 +0100 ++++ b/openssl/util/mk1mf.pl 2016-03-03 20:34:45.015901171 +0100 +@@ -488,7 +493,7 @@ + SRC_D=$src_dir + + LINK_CMD=$link +-LFLAGS=$lflags ++LFLAGS=$lflags /SAFESEH + RSC=$rsc \$(SOLARINC) + + # The output directory for everything interesting +@@ -511,7 +516,7 @@ + MKDIR=$mkdir + MKLIB=$bin_dir$mklib + MLFLAGS=$mlflags +-ASM=$bin_dir$asm ++ASM=$bin_dir$asm /safeseh + + # FIPS validated module and support file locations + |