[nginx] Win32: compatiblity with OpenSSL 1.1.0.

Maxim Dounin mdounin at mdounin.ru
Sat Dec 24 16:25:55 UTC 2016


details:   http://hg.nginx.org/nginx/rev/abb0a4189cf7
branches:  
changeset: 6862:abb0a4189cf7
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Sat Dec 24 18:01:14 2016 +0300
description:
Win32: compatiblity with OpenSSL 1.1.0.

OpenSSL 1.1.0 now uses normal "nmake; nmake install" instead of using
custom "ms\do_ms.bat" script and "ms\nt.mak" makefile.  And Configure
now requires --prefix to be absolute, and no longer derives --openssldir
from prefix (so it's specified explicitly).  Generated libraries are now
called "libcrypto.lib" and "libssl.lib" instead of "libeay32.lib"
and "ssleay32.lib".  Appropriate tests added to support both old and new
variants.

Additionally, openssl/lhash.h now triggers warning C4090 ('function' :
different 'const' qualifiers), so the warning was disabled.

diffstat:

 auto/lib/openssl/conf           |  12 ++++++++++--
 auto/lib/openssl/makefile.msvc  |  17 ++++++++++++-----
 src/os/win32/ngx_win32_config.h |   3 +++
 3 files changed, 25 insertions(+), 7 deletions(-)

diffs (60 lines):

diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
--- a/auto/lib/openssl/conf
+++ b/auto/lib/openssl/conf
@@ -15,8 +15,16 @@ if [ $OPENSSL != NONE ]; then
 
             CORE_INCS="$CORE_INCS $OPENSSL/openssl/include"
             CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h"
-            CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
-            CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
+
+            if [ -f $OPENSSL/ms/do_ms.bat ]; then
+                # before OpenSSL 1.1.0
+                CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/ssleay32.lib"
+                CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libeay32.lib"
+            else
+                # OpenSSL 1.1.0+
+                CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.lib"
+                CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.lib"
+            fi
 
             # libeay32.lib requires gdi32.lib
             CORE_LIBS="$CORE_LIBS gdi32.lib"
diff --git a/auto/lib/openssl/makefile.msvc b/auto/lib/openssl/makefile.msvc
--- a/auto/lib/openssl/makefile.msvc
+++ b/auto/lib/openssl/makefile.msvc
@@ -6,9 +6,16 @@
 all:
 	cd $(OPENSSL)
 
-	perl Configure VC-WIN32 no-shared --prefix=openssl $(OPENSSL_OPT)
+	perl Configure VC-WIN32 no-shared				\
+		--prefix="%cd%/openssl" 				\
+		--openssldir="%cd%/openssl/ssl" 			\
+		$(OPENSSL_OPT)
 
-	ms\do_ms
-
-	$(MAKE) -f ms\nt.mak
-	$(MAKE) -f ms\nt.mak install
+	if exist ms\do_ms.bat (						\
+		ms\do_ms						\
+		&& $(MAKE) -f ms\nt.mak					\
+		&& $(MAKE) -f ms\nt.mak install				\
+	) else (							\
+		$(MAKE)							\
+		&& $(MAKE) install_sw					\
+	)
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -88,6 +88,9 @@ typedef long  time_t;
 /* 'type cast': from data pointer to function pointer */
 #pragma warning(disable:4055)
 
+/* 'function' : different 'const' qualifiers */
+#pragma warning(disable:4090)
+
 /* unreferenced formal parameter */
 #pragma warning(disable:4100)
 


More information about the nginx-devel mailing list