diff options
author | Alexey Botchkov <holyfoot@askmonty.org> | 2016-05-04 11:42:39 +0400 |
---|---|---|
committer | Alexey Botchkov <holyfoot@askmonty.org> | 2016-05-04 11:42:39 +0400 |
commit | a02d4023db42755b5cb7d0ccb0543fbe94d1b628 (patch) | |
tree | a79b1c21efeab54a4b044ecfcc5bff09fba2fe34 /sql/encryption.cc | |
parent | 5dd0c77e9239217457cf795d6380bdd3bf0808ad (diff) | |
download | mariadb-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.cc | 16 |
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; |