Commit a02d4023 authored by Alexey Botchkov's avatar Alexey Botchkov

MDEV-9618 solaris sparc build fails on 10.1.

        Compiler there is strict about the C/C++ call model
        mixing in function variable assumptions.
        Fixed by adding some 'extern "C"' and changing
        '?' operator with 'if'.
parent 5dd0c77e
......@@ -23,6 +23,10 @@
#include "plugin.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MYSQL_AUDIT_CLASS_MASK_SIZE 1
#define MYSQL_AUDIT_INTERFACE_VERSION 0x0302
......@@ -175,4 +179,8 @@ struct st_mysql_audit
};
#ifdef __cplusplus
}
#endif
#endif
......@@ -31,6 +31,10 @@
#include <mysql/plugin_auth_common.h>
#ifdef __cplusplus
extern "C" {
#endif
/* defines for MYSQL_SERVER_AUTH_INFO.password_used */
#define PASSWORD_USED_NO 0
......@@ -122,5 +126,10 @@ struct st_mysql_auth
*/
int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, MYSQL_SERVER_AUTH_INFO *info);
};
#ifdef __cplusplus
}
#endif
#endif
......@@ -27,6 +27,10 @@
#include <mysql/plugin.h>
#ifdef __cplusplus
extern "C" {
#endif
#define MariaDB_ENCRYPTION_INTERFACE_VERSION 0x0300
/**
......@@ -114,5 +118,9 @@ struct st_mariadb_encryption
*/
unsigned int (*encrypted_length)(unsigned int slen, unsigned int key_id, unsigned int key_version);
};
#ifdef __cplusplus
}
#endif
#endif
......@@ -18,6 +18,10 @@
#define _my_plugin_ftparser_h
#include "plugin.h"
#ifdef __cplusplus
extern "C" {
#endif
/*************************************************************************
API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN)
*/
......@@ -208,5 +212,9 @@ struct st_mysql_ftparser
};
#ifdef __cplusplus
}
#endif
#endif
......@@ -26,6 +26,10 @@
#include <mysql/plugin.h>
#ifdef __cplusplus
extern "C" {
#endif
#define MariaDB_PASSWORD_VALIDATION_INTERFACE_VERSION 0x0100
/**
......@@ -41,5 +45,10 @@ struct st_mariadb_password_validation
int (*validate_password)(MYSQL_LEX_STRING *username,
MYSQL_LEX_STRING *password);
};
#ifdef __cplusplus
}
#endif
#endif
......@@ -23,6 +23,8 @@
static plugin_ref encryption_manager= 0;
struct encryption_service_st encryption_handler;
extern "C" {
uint no_key(uint)
{
return ENCRYPTION_KEY_VERSION_INVALID;
......@@ -41,6 +43,8 @@ static unsigned int get_length(unsigned int slen, unsigned int key_id,
return my_aes_get_size(MY_AES_CBC, slen);
}
} /* extern "C" */
int initialize_encryption_plugin(st_plugin_int *plugin)
{
if (encryption_manager)
......@@ -57,9 +61,15 @@ int initialize_encryption_plugin(st_plugin_int *plugin)
st_mariadb_encryption *handle=
(struct st_mariadb_encryption*) plugin->plugin->info;
encryption_handler.encryption_ctx_size_func=
handle->crypt_ctx_size ? handle->crypt_ctx_size :
(uint (*)(unsigned int, unsigned int))my_aes_ctx_size;
/*
Copmiler on Spark doesn't like the '?' operator here as it
belives the (uint (*)...) implies the C++ call model.
*/
if (handle->crypt_ctx_size)
encryption_handler.encryption_ctx_size_func= handle->crypt_ctx_size;
else
encryption_handler.encryption_ctx_size_func=
(uint (*)(unsigned int, unsigned int))my_aes_ctx_size;
encryption_handler.encryption_ctx_init_func=
handle->crypt_ctx_init ? handle->crypt_ctx_init : ctx_init;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment