summaryrefslogtreecommitdiff
path: root/sql/encryption.cc
diff options
context:
space:
mode:
authorAlexey Botchkov <holyfoot@askmonty.org>2016-05-04 11:42:39 +0400
committerAlexey Botchkov <holyfoot@askmonty.org>2016-05-04 11:42:39 +0400
commita02d4023db42755b5cb7d0ccb0543fbe94d1b628 (patch)
treea79b1c21efeab54a4b044ecfcc5bff09fba2fe34 /sql/encryption.cc
parent5dd0c77e9239217457cf795d6380bdd3bf0808ad (diff)
downloadmariadb-git-a02d4023db42755b5cb7d0ccb0543fbe94d1b628.tar.gz
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'.
Diffstat (limited to 'sql/encryption.cc')
-rw-r--r--sql/encryption.cc16
1 files changed, 13 insertions, 3 deletions
diff --git a/sql/encryption.cc b/sql/encryption.cc
index 209b092b0a4..52aaef896dd 100644
--- a/sql/encryption.cc
+++ b/sql/encryption.cc
@@ -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;