From e126baafbc78f15c794082f0a93740d81041d038 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Mon, 21 Dec 2015 10:19:02 +0100 Subject: [PATCH] =?UTF-8?q?MDEV-9249=20MariaDB=20un-buildable=20on=20linux?= =?UTF-8?q?64:=20fails=20@=20"error:=20=E2=80=98ERR=5Fremove=5Fstate?= =?UTF-8?q?=E2=80=99=20was=20not=20declared=20in=20this=20scope"=20when=20?= =?UTF-8?q?linking=20against=20OpenSSL=201.0.2e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ERR_remove_state is deprecated, use ERR_remove_thread_state if possible --- cmake/ssl.cmake | 5 +++++ config.h.cmake | 2 +- include/violite.h | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake index ca950229129..43665d04a88 100644 --- a/cmake/ssl.cmake +++ b/cmake/ssl.cmake @@ -26,6 +26,7 @@ MACRO (MYSQL_USE_BUNDLED_SSL) SET(SSL_INCLUDE_DIRS ${INC_DIRS}) SET(SSL_INTERNAL_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extra/yassl/taocrypt/mySTL) SET(SSL_DEFINES "-DHAVE_YASSL -DYASSL_PURE_C -DYASSL_PREFIX -DHAVE_OPENSSL -DMULTI_THREADED") + SET(HAVE_ERR_remove_thread_state OFF CACHE INTERNAL "yassl doesn't have ERR_remove_thread_state") CHANGE_SSL_SETTINGS("bundled") #Remove -fno-implicit-templates #(yassl sources cannot be compiled with it) @@ -70,9 +71,13 @@ MACRO (MYSQL_CHECK_SSL) MARK_AS_ADVANCED(CRYPTO_LIBRARY) INCLUDE(CheckSymbolExists) SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) + SET(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES}) CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h" HAVE_SHA512_DIGEST_LENGTH) + CHECK_SYMBOL_EXISTS(ERR_remove_thread_state "openssl/err.h" + HAVE_ERR_remove_thread_state) SET(CMAKE_REQUIRED_INCLUDES) + SET(CMAKE_REQUIRED_LIBRARIES) IF(OPENSSL_FOUND AND CRYPTO_LIBRARY AND HAVE_SHA512_DIGEST_LENGTH) SET(SSL_SOURCES "") SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES} ${CRYPTO_LIBRARY}) diff --git a/config.h.cmake b/config.h.cmake index 73dc918bc3c..02952f6f395 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -465,7 +465,7 @@ #cmakedefine HAVE_BSD_SIGNALS 1 #cmakedefine HAVE_SVR3_SIGNALS 1 #cmakedefine HAVE_V7_SIGNALS 1 - +#cmakedefine HAVE_ERR_remove_thread_state 1 #cmakedefine HAVE_SOLARIS_STYLE_GETHOST 1 diff --git a/include/violite.h b/include/violite.h index 14c99e8d8fe..ea7e3d7897c 100644 --- a/include/violite.h +++ b/include/violite.h @@ -123,6 +123,10 @@ typedef my_socket YASSL_SOCKET_T; #include #include +#ifdef HAVE_ERR_remove_thread_state +#define ERR_remove_state(X) ERR_remove_thread_state(NULL) +#endif + enum enum_ssl_init_error { SSL_INITERR_NOERROR= 0, SSL_INITERR_CERT, SSL_INITERR_KEY,