From a1b6691f93e50ad4a8a53dbf89ba578d6a64b2cb Mon Sep 17 00:00:00 2001 From: Dmitry Shulga Date: Wed, 21 Oct 2020 17:43:23 +0700 Subject: [PATCH] MDEV-23925: Fixed warnings generated during compilation of mysys_ssl/openssl.c on MacOS Compiler warnings like one listed below are generated during server build on MacOS: In file included from server-10.2-MDEV-23564/mysys_ssl/openssl.c:33: In file included from /usr/local/include/openssl/evp.h:16: In file included from /usr/local/include/openssl/bio.h:20: /usr/local/include/openssl/crypto.h:206:10: warning: 'CRYPTO_cleanup_all_ex_data' macro redefined [-Wmacro-redefined] ^ /mariadb/server-10.2-MDEV-23564/include/ssl_compat.h:46:9: note: previous definition is here ^ In case MariaDB serer is build with -DCMAKE_BUILD_TYPE=Debug it results in build error. The reason of compiler warnings is that header file included before the openssl system header files. File ssl_compat.h contains some macros with the same names as SSL API functions declared in the openssl system header files. It resulted in duplicate symbols that produces compiler warnings. To fix the issue the header file ssl_compat.h should be included after a line where openssl system header is included. --- mysys_ssl/openssl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysys_ssl/openssl.c b/mysys_ssl/openssl.c index f3dc8f4277c..a11db113b14 100644 --- a/mysys_ssl/openssl.c +++ b/mysys_ssl/openssl.c @@ -15,7 +15,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include -#include /* The check is only done for OpenSSL 1.1.x. @@ -25,13 +24,14 @@ */ #ifndef HAVE_OPENSSL11 +#include int check_openssl_compatibility() { return 0; } #else #include - +#include static uint testing, alloc_size, alloc_count; static void *coc_malloc(size_t size, const char *f __attribute__((unused)),