[nginx] Configure: fixed static compilation with OpenSSL 1.1.1.

Maxim Dounin mdounin at mdounin.ru
Thu Mar 22 13:38:34 UTC 2018


details:   http://hg.nginx.org/nginx/rev/04ebf29eaf5b
branches:  
changeset: 7246:04ebf29eaf5b
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Thu Mar 22 15:55:57 2018 +0300
description:
Configure: fixed static compilation with OpenSSL 1.1.1.

OpenSSL now uses pthread_atfork(), and this requires -lpthread on Linux
to compile.  Introduced NGX_LIBPTHREAD to add it as appropriate, similar
to existing NGX_LIBDL.

diffstat:

 auto/lib/openssl/conf |  21 ++++++++++++++-------
 auto/threads          |   1 +
 auto/unix             |   1 +
 3 files changed, 16 insertions(+), 7 deletions(-)

diffs (88 lines):

diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
--- a/auto/lib/openssl/conf
+++ b/auto/lib/openssl/conf
@@ -41,6 +41,7 @@ if [ $OPENSSL != NONE ]; then
             CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
             CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
             CORE_LIBS="$CORE_LIBS $NGX_LIBDL"
+            CORE_LIBS="$CORE_LIBS $NGX_LIBPTHREAD"
 
             if [ "$NGX_PLATFORM" = win32 ]; then
                 CORE_LIBS="$CORE_LIBS -lgdi32 -lcrypt32 -lws2_32"
@@ -59,7 +60,7 @@ else
         ngx_feature_run=no
         ngx_feature_incs="#include <openssl/ssl.h>"
         ngx_feature_path=
-        ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL"
+        ngx_feature_libs="-lssl -lcrypto $NGX_LIBDL $NGX_LIBPTHREAD"
         ngx_feature_test="SSL_CTX_set_options(NULL, 0)"
         . auto/feature
 
@@ -71,11 +72,13 @@ else
             ngx_feature_path="/usr/local/include"
 
             if [ $NGX_RPATH = YES ]; then
-                ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto $NGX_LIBDL"
+                ngx_feature_libs="-R/usr/local/lib -L/usr/local/lib -lssl -lcrypto"
             else
-                ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto $NGX_LIBDL"
+                ngx_feature_libs="-L/usr/local/lib -lssl -lcrypto"
             fi
 
+            ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
+
             . auto/feature
         fi
 
@@ -87,11 +90,13 @@ else
             ngx_feature_path="/usr/pkg/include"
 
             if [ $NGX_RPATH = YES ]; then
-                ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto $NGX_LIBDL"
+                ngx_feature_libs="-R/usr/pkg/lib -L/usr/pkg/lib -lssl -lcrypto"
             else
-                ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto $NGX_LIBDL"
+                ngx_feature_libs="-L/usr/pkg/lib -lssl -lcrypto"
             fi
 
+            ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
+
             . auto/feature
         fi
 
@@ -103,11 +108,13 @@ else
             ngx_feature_path="/opt/local/include"
 
             if [ $NGX_RPATH = YES ]; then
-                ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto $NGX_LIBDL"
+                ngx_feature_libs="-R/opt/local/lib -L/opt/local/lib -lssl -lcrypto"
             else
-                ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto $NGX_LIBDL"
+                ngx_feature_libs="-L/opt/local/lib -lssl -lcrypto"
             fi
 
+            ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
+
             . auto/feature
         fi
 
diff --git a/auto/threads b/auto/threads
--- a/auto/threads
+++ b/auto/threads
@@ -17,4 +17,5 @@ END
     CORE_DEPS="$CORE_DEPS $THREAD_POOL_DEPS"
     CORE_SRCS="$CORE_SRCS $THREAD_POOL_SRCS"
     CORE_LIBS="$CORE_LIBS -lpthread"
+    NGX_LIBPTHREAD="-lpthread"
 fi
diff --git a/auto/unix b/auto/unix
--- a/auto/unix
+++ b/auto/unix
@@ -901,6 +901,7 @@ if [ $ngx_found = no ]; then
 
     if [ $ngx_found = yes ]; then
         CORE_LIBS="$CORE_LIBS -lpthread"
+        NGX_LIBPTHREAD="-lpthread"
     fi
 fi
 


More information about the nginx-devel mailing list