Skip to content

Commit

Permalink
MDEV-23925: Fixed warnings generated during compilation of mysys_ssl/…
Browse files Browse the repository at this point in the history
…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 <ssl_compat.h>
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.
  • Loading branch information
dmitryshulga committed Oct 21, 2020
1 parent 0049d5b commit a1b6691
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions mysys_ssl/openssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */

#include <my_global.h>
#include <ssl_compat.h>

/*
The check is only done for OpenSSL 1.1.x.
Expand All @@ -25,13 +24,14 @@
*/

#ifndef HAVE_OPENSSL11
#include <ssl_compat.h>
int check_openssl_compatibility()
{
return 0;
}
#else
#include <openssl/evp.h>

#include <ssl_compat.h>
static uint testing, alloc_size, alloc_count;

static void *coc_malloc(size_t size, const char *f __attribute__((unused)),
Expand Down

0 comments on commit a1b6691

Please sign in to comment.