← Back to team overview

maria-developers team mailing list archive

Re: 5e71a3e0df7: MDEV-23925: Fix warnings generated during compilation of mysys_ssl/openssl.c on MacOS

 

Hi, Dmitry!

ok to push
(again, comments below)

On Oct 19, Dmitry Shulga wrote:
> revision-id: 5e71a3e0df7 (mariadb-10.2.31-489-g5e71a3e0df7)
> parent(s): 8984d779103
> author: Dmitry Shulga <dmitry.shulga@xxxxxxxxxxx>
> committer: Dmitry Shulga <dmitry.shulga@xxxxxxxxxxx>
> timestamp: 2020-10-09 20:55:14 +0700
> message:
> 
> MDEV-23925: Fix warnings generated during compilation of mysys_ssl/openssl.c on MacOS
> 
> Compiler warnings 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 file included from /mariadb/server-10.2-MDEV-23564/mysys_ssl/openssl.c:33:
> /usr/local/include/openssl/evp.h:501:10: warning: 'EVP_MD_CTX_init' macro redefined [-Wmacro-redefined]
>          ^
> /mariadb/server-10.2-MDEV-23564/include/ssl_compat.h:33:9: note: previous definition is here
>         ^
> In file included from /mariadb/server-10.2-MDEV-23564/mysys_ssl/openssl.c:33:
> /usr/local/include/openssl/evp.h:627:11: warning: 'EVP_CIPHER_CTX_init' macro redefined [-Wmacro-redefined]
>           ^
> /mariadb/server-10.2-MDEV-23564/include/ssl_compat.h:35:9: note: previous definition is here
>         ^
> In file included from /mariadb/server-10.2-MDEV-23564/mysys_ssl/openssl.c:33:
> /usr/local/include/openssl/evp.h:866:11: warning: 'EVP_cleanup' macro redefined [-Wmacro-redefined]
>           ^
> /mariadb/server-10.2-MDEV-23564/include/ssl_compat.h:44:9: note: previous definition is here
>         ^
> 4 warnings generated.

generally these long commit comments are not any more clear than if
you'd only listed one compilation failure.

> 
> 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 name as SSL API functions declared
> in the openssl system header files. It resulted in duplicate
> symbols thats 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 <my_global.h>
> -#include <ssl_compat.h>
>  
>  /*
>    The check is only done for OpenSSL 1.1.x.
> @@ -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)),
> 
Regards,
Sergei
VP of MariaDB Server Engineering
and security@xxxxxxxxxxx