From c1b0662b40c8239731af13a96bac1b2db1c2097d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Sat, 27 May 2017 16:38:46 +0200 Subject: openssl: Define WIN32_LEAN_AND_MEAN on Windows This avoids namespace collisions with things such as X509_NAME. Also force include of necessary definitions in `crypto/o_str.c` which seem missing on MSVC (but work on MinGW). --- thirdparty/openssl/crypto/o_str.c | 3 ++ thirdparty/openssl/openssl/opensslconf.h | 14 +++++++ thirdparty/openssl/patches/config_windows.patch | 49 +++++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 thirdparty/openssl/patches/config_windows.patch (limited to 'thirdparty') diff --git a/thirdparty/openssl/crypto/o_str.c b/thirdparty/openssl/crypto/o_str.c index 7e61cde85a..1854798e2c 100644 --- a/thirdparty/openssl/crypto/o_str.c +++ b/thirdparty/openssl/crypto/o_str.c @@ -59,6 +59,9 @@ #include #include +// -- GODOT start -- +#include +// -- GODOT end -- #include "o_str.h" #if !defined(OPENSSL_IMPLEMENTS_strncasecmp) && \ diff --git a/thirdparty/openssl/openssl/opensslconf.h b/thirdparty/openssl/openssl/opensslconf.h index f533508b15..19fad23423 100644 --- a/thirdparty/openssl/openssl/opensslconf.h +++ b/thirdparty/openssl/openssl/opensslconf.h @@ -7,6 +7,20 @@ extern "C" { /* OpenSSL was configured with the following options: */ #ifndef OPENSSL_DOING_MAKEDEPEND +// -- GODOT start -- +#if defined(OPENSSL_SYS_WINDOWS) +# define WIN32_LEAN_AND_MEAN +// Seems like we have troubles properly using the logic in e_os2.h +# if defined(_WIN32) +# define OPENSSL_SYS_WIN32 +# define OPENSSL_SYSNAME_WIN32 +# endif +# if defined(_WIN64) +# define OPENSSL_SYS_WIN64 +# define OPENSSL_SYSNAME_WIN64 +# endif +#endif +// -- GODOT end -- #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 # define OPENSSL_NO_EC_NISTP_64_GCC_128 diff --git a/thirdparty/openssl/patches/config_windows.patch b/thirdparty/openssl/patches/config_windows.patch new file mode 100644 index 0000000000..e69ff1356a --- /dev/null +++ b/thirdparty/openssl/patches/config_windows.patch @@ -0,0 +1,49 @@ +commit 4c8ab8b4415d129d0283d7d0d9a5789163ec8d5e +Author: RĂ©mi Verschelde +Date: Sat May 27 16:38:46 2017 +0200 + + openssl: Define WIN32_LEAN_AND_MEAN on Windows + + This avoids namespace collisions with things such as X509_NAME. + Also force include of necessary definitions in `crypto/o_str.c` + which seem missing on MSVC (but work on MinGW). + +diff --git a/thirdparty/openssl/crypto/o_str.c b/thirdparty/openssl/crypto/o_str.c +index 7e61cde85..1854798e2 100644 +--- a/thirdparty/openssl/crypto/o_str.c ++++ b/thirdparty/openssl/crypto/o_str.c +@@ -59,6 +59,9 @@ + + #include + #include ++// -- GODOT start -- ++#include ++// -- GODOT end -- + #include "o_str.h" + + #if !defined(OPENSSL_IMPLEMENTS_strncasecmp) && \ +diff --git a/thirdparty/openssl/openssl/opensslconf.h b/thirdparty/openssl/openssl/opensslconf.h +index f533508b1..19fad2342 100644 +--- a/thirdparty/openssl/openssl/opensslconf.h ++++ b/thirdparty/openssl/openssl/opensslconf.h +@@ -7,6 +7,20 @@ extern "C" { + /* OpenSSL was configured with the following options: */ + #ifndef OPENSSL_DOING_MAKEDEPEND + ++// -- GODOT start -- ++#if defined(OPENSSL_SYS_WINDOWS) ++# define WIN32_LEAN_AND_MEAN ++// Seems like we have troubles properly using the logic in e_os2.h ++# if defined(_WIN32) ++# define OPENSSL_SYS_WIN32 ++# define OPENSSL_SYSNAME_WIN32 ++# endif ++# if defined(_WIN64) ++# define OPENSSL_SYS_WIN64 ++# define OPENSSL_SYSNAME_WIN64 ++# endif ++#endif ++// -- GODOT end -- + + #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 + # define OPENSSL_NO_EC_NISTP_64_GCC_128 -- cgit v1.2.3