diff --git a/.gitignore b/.gitignore
index ec7f53e..e180061 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/mariadb-10.5.13-downstream_modified.tar.gz
+SOURCES/mariadb-10.5.16-downstream_modified.tar.gz
diff --git a/.mariadb.metadata b/.mariadb.metadata
index 4f2d986..1460b83 100644
--- a/.mariadb.metadata
+++ b/.mariadb.metadata
@@ -1 +1 @@
-ace36fe1a0ebba69b7cab359cb9a51c5b9fecbb4 SOURCES/mariadb-10.5.13-downstream_modified.tar.gz
+10c51d806a5eba0abce079a1965a487ff104a9a1 SOURCES/mariadb-10.5.16-downstream_modified.tar.gz
diff --git a/SOURCES/mariadb-groonga.patch b/SOURCES/mariadb-groonga.patch
deleted file mode 100644
index 3a0e74c..0000000
--- a/SOURCES/mariadb-groonga.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-# Fixing conflict with groonga package
-# https://bugzilla.redhat.com/show_bug.cgi?id=1763287
-
---- mariadb-10.3.18/storage/mroonga/vendor/groonga/CMakeLists.txt.withoutoption	2019-11-11 14:01:07.762595716 +0100
-+++ mariadb-10.3.18/storage/mroonga/vendor/groonga/CMakeLists.txt	2019-11-11 14:33:05.224012458 +0100
-@@ -86,7 +86,9 @@
- set(INCLUDE_DIR "include")
- set(GRN_INCLUDE_DIR "include/groonga")
- set(DATA_DIR "share")
--set(GRN_DATA_DIR "${DATA_DIR}/${GRN_PROJECT_NAME}")
-+if(NOT DEFINED GRN_DATA_DIR)
-+    set(GRN_DATA_DIR "${DATA_DIR}/${GRN_PROJECT_NAME}")
-+endif()
- set(CONFIG_DIR "etc")
- set(GRN_CONFIG_DIR "${CONFIG_DIR}/${GRN_PROJECT_NAME}")
- set(GRN_CONFIG_PATH "${CMAKE_INSTALL_PREFIX}/${GRN_CONFIG_DIR}/groonga.conf")
-
---- mariadb-10.3.18/storage/mroonga/vendor/groonga/vendor/plugins/groonga-normalizer-mysql/CMakeLists.txt.withoutoption	2019-11-11 14:34:22.661005715 +0100
-+++ mariadb-10.3.18/storage/mroonga/vendor/groonga/vendor/plugins/groonga-normalizer-mysql/CMakeLists.txt	2019-11-11 14:35:59.962244120 +0100
-@@ -16,7 +16,9 @@
- # MA 02110-1335  USA
- 
- cmake_minimum_required(VERSION 2.6)
--set(GROONGA_NORMALIZER_MYSQL_PROJECT_NAME "groonga-normalizer-mysql")
-+if (NOT DEFINED GROONGA_NORMALIZER_MYSQL_PROJECT_NAME)
-+    set(GROONGA_NORMALIZER_MYSQL_PROJECT_NAME "groonga-normalizer-mysql")
-+endif()
- project("${GROONGA_NORMALIZER_MYSQL_PROJECT_NAME}")
- 
- if(DEFINED GROONGA_NORMALIZER_MYSQL_EMBED)
diff --git a/SOURCES/mariadb-logrotate.patch b/SOURCES/mariadb-logrotate.patch
index aa46e59..a09a312 100644
--- a/SOURCES/mariadb-logrotate.patch
+++ b/SOURCES/mariadb-logrotate.patch
@@ -32,9 +32,9 @@ Update 02/2021
 * Discussion continues in:
   https://jira.mariadb.org/browse/MDEV-16621
 
---- mariadb-10.5.8/support-files/mysql-log-rotate.sh	2021-02-12 08:37:47.857289694 +0100
-+++ mariadb-10.5.8/support-files/mysql-log-rotate.sh_pacthed	2021-02-12 08:40:26.420372325 +0100
-@@ -3,35 +3,22 @@
+--- mariadb-10.5.13-downstream_modified/support-files/mysql-log-rotate.sh	2022-02-22 04:56:35.571185622 +0100
++++ mariadb-10.5.13-downstream_modified/support-files/mysql-log-rotate.sh_patched	2022-02-22 04:56:15.121003580 +0100
+@@ -3,36 +3,23 @@
  # in the [mysqld] section as follows:
  #
  # [mysqld]
@@ -58,6 +58,7 @@ Update 02/2021
 -        # create 600 mysql mysql
 +@LOG_LOCATION@ {
 +        create 600 mysql mysql
+         su mysql mysql
          notifempty
          daily
          rotate 3
diff --git a/SOURCES/mariadb-openssl3.patch b/SOURCES/mariadb-openssl3.patch
deleted file mode 100644
index 0b69969..0000000
--- a/SOURCES/mariadb-openssl3.patch
+++ /dev/null
@@ -1,378 +0,0 @@
-From c80991c79f701dac42c630af4bd39593b0c7efb4 Mon Sep 17 00:00:00 2001
-From: Vladislav Vaintroub <wlad@mariadb.com>
-Date: Mon, 8 Nov 2021 18:48:19 +0100
-Subject: [PATCH] MDEV-25785 Add support for OpenSSL 3.0
-
-Summary of changes
-
-- MD_CTX_SIZE is increased
-
-- EVP_CIPHER_CTX_buf_noconst(ctx) does not work anymore, points
-  to nobody knows where. The assumption made previously was that
-  (since the function does not seem to be documented)
-  was that it points to the last partial source block.
-  Add own partial block buffer for NOPAD encryption instead
-
-- SECLEVEL in CipherString in openssl.cnf
-  had been downgraded to 0, from 1, to make TLSv1.0 and TLSv1.1 possible
-
-- Workaround Ssl_cipher_list issue, it now returns TLSv1.3 ciphers,
-  in addition to what was set in --ssl-cipher
-
-- ctx_buf buffer now must be aligned to 16 bytes with openssl(
-  previously with WolfSSL only), ot crashes will happen
-
-- updated aes-t , to be better debuggable
-  using function, rather than a huge multiline macro
-  added test that does "nopad" encryption piece-wise, to test
-  replacement of EVP_CIPHER_CTX_buf_noconst
----
- cmake/ssl.cmake                   |  19 ++++-
- include/ssl_compat.h              |   3 +-
- mysql-test/lib/openssl.cnf        |   2 +-
- mysql-test/main/ssl_cipher.result |   6 +-
- mysql-test/main/ssl_cipher.test   |   2 +-
- mysys_ssl/my_crypt.cc             |  46 +++++++-----
- unittest/mysys/aes-t.c            | 121 ++++++++++++++++++++++--------
- 7 files changed, 141 insertions(+), 58 deletions(-)
-
-
-diff -up mariadb-10.5.12-downstream_modified/cmake/ssl.cmake.patch16 mariadb-10.5.12-downstream_modified/cmake/ssl.cmake
---- mariadb-10.5.12-downstream_modified/cmake/ssl.cmake.patch16	2021-08-03 10:29:07.000000000 +0200
-+++ mariadb-10.5.12-downstream_modified/cmake/ssl.cmake	2021-11-18 16:58:41.552440737 +0100
-@@ -139,9 +139,20 @@ MACRO (MYSQL_CHECK_SSL)
-       SET(SSL_INTERNAL_INCLUDE_DIRS "")
-       SET(SSL_DEFINES "-DHAVE_OPENSSL")
- 
-+      FOREACH(x INCLUDES LIBRARIES DEFINITIONS)
-+        SET(SAVE_CMAKE_REQUIRED_${x} ${CMAKE_REQUIRED_${x}})
-+      ENDFOREACH()
-+
-+      # Silence "deprecated in OpenSSL 3.0"
-+      IF((NOT OPENSSL_VERSION) # 3.0 not determined by older cmake
-+         OR NOT(OPENSSL_VERSION VERSION_LESS "3.0.0"))
-+        SET(SSL_DEFINES "${SSL_DEFINES} -DOPENSSL_API_COMPAT=0x10100000L")
-+        SET(CMAKE_REQUIRED_DEFINITIONS -DOPENSSL_API_COMPAT=0x10100000L)
-+      ENDIF()
-+
-       SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
-       SET(CMAKE_REQUIRED_LIBRARIES ${SSL_LIBRARIES})
--      SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR})
-+
-       CHECK_SYMBOL_EXISTS(ERR_remove_thread_state "openssl/err.h"
-                           HAVE_ERR_remove_thread_state)
-       CHECK_SYMBOL_EXISTS(EVP_aes_128_ctr "openssl/evp.h"
-@@ -150,8 +161,10 @@ MACRO (MYSQL_CHECK_SSL)
-                           HAVE_EncryptAes128Gcm)
-       CHECK_SYMBOL_EXISTS(X509_check_host "openssl/x509v3.h"
-                           HAVE_X509_check_host)
--      SET(CMAKE_REQUIRED_INCLUDES)
--      SET(CMAKE_REQUIRED_LIBRARIES)
-+
-+      FOREACH(x INCLUDES LIBRARIES DEFINITIONS)
-+        SET(CMAKE_REQUIRED_${x} ${SAVE_CMAKE_REQUIRED_${x}})
-+      ENDFOREACH()
-     ELSE()
-       IF(WITH_SSL STREQUAL "system")
-         MESSAGE(FATAL_ERROR "Cannot find appropriate system libraries for SSL. Use WITH_SSL=bundled to enable SSL support")
-diff -up mariadb-10.5.12-downstream_modified/include/ssl_compat.h.patch16 mariadb-10.5.12-downstream_modified/include/ssl_compat.h
---- mariadb-10.5.12-downstream_modified/include/ssl_compat.h.patch16	2021-08-03 10:29:07.000000000 +0200
-+++ mariadb-10.5.12-downstream_modified/include/ssl_compat.h	2021-11-18 16:58:41.552440737 +0100
-@@ -24,7 +24,7 @@
- #define SSL_LIBRARY OpenSSL_version(OPENSSL_VERSION)
- #define ERR_remove_state(X) ERR_clear_error()
- #define EVP_CIPHER_CTX_SIZE 176
--#define EVP_MD_CTX_SIZE 48
-+#define EVP_MD_CTX_SIZE 72
- #undef EVP_MD_CTX_init
- #define EVP_MD_CTX_init(X) do { memset((X), 0, EVP_MD_CTX_SIZE); EVP_MD_CTX_reset(X); } while(0)
- #undef EVP_CIPHER_CTX_init
-@@ -74,7 +74,6 @@
- #endif
- 
- #define DH_set0_pqg(D,P,Q,G)            ((D)->p= (P), (D)->g= (G))
--#define EVP_CIPHER_CTX_buf_noconst(ctx) ((ctx)->buf)
- #define EVP_CIPHER_CTX_encrypting(ctx)  ((ctx)->encrypt)
- #define EVP_CIPHER_CTX_SIZE             sizeof(EVP_CIPHER_CTX)
- 
-diff -up mariadb-10.5.12-downstream_modified/mysql-test/lib/openssl.cnf.patch16 mariadb-10.5.12-downstream_modified/mysql-test/lib/openssl.cnf
---- mariadb-10.5.12-downstream_modified/mysql-test/lib/openssl.cnf.patch16	2021-08-03 10:29:07.000000000 +0200
-+++ mariadb-10.5.12-downstream_modified/mysql-test/lib/openssl.cnf	2021-11-18 16:58:41.552440737 +0100
-@@ -9,4 +9,4 @@ ssl_conf = ssl_section
- system_default = system_default_section
- 
- [system_default_section]
--CipherString = ALL:@SECLEVEL=1
-+CipherString = ALL:@SECLEVEL=0
-diff -up mariadb-10.5.12-downstream_modified/mysql-test/main/ssl_cipher.result.patch16 mariadb-10.5.12-downstream_modified/mysql-test/main/ssl_cipher.result
---- mariadb-10.5.12-downstream_modified/mysql-test/main/ssl_cipher.result.patch16	2021-08-03 10:29:08.000000000 +0200
-+++ mariadb-10.5.12-downstream_modified/mysql-test/main/ssl_cipher.result	2021-11-18 16:58:41.552440737 +0100
-@@ -61,8 +61,8 @@ connect  ssl_con,localhost,root,,,,,SSL;
- SHOW STATUS LIKE 'Ssl_cipher';
- Variable_name	Value
- Ssl_cipher	AES128-SHA
--SHOW STATUS LIKE 'Ssl_cipher_list';
--Variable_name	Value
--Ssl_cipher_list	AES128-SHA
-+SELECT VARIABLE_VALUE like '%AES128-SHA%' FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher_list';
-+VARIABLE_VALUE like '%AES128-SHA%'
-+1
- disconnect ssl_con;
- connection default;
-diff -up mariadb-10.5.12-downstream_modified/mysql-test/main/ssl_cipher.test.patch16 mariadb-10.5.12-downstream_modified/mysql-test/main/ssl_cipher.test
---- mariadb-10.5.12-downstream_modified/mysql-test/main/ssl_cipher.test.patch16	2021-11-18 16:58:41.552440737 +0100
-+++ mariadb-10.5.12-downstream_modified/mysql-test/main/ssl_cipher.test	2021-11-18 17:00:47.753839711 +0100
-@@ -100,6 +100,6 @@ connect (ssl_con,localhost,root,,,,,SSL)
- --replace_regex /TLS_AES_.*/AES128-SHA/
- SHOW STATUS LIKE 'Ssl_cipher';
- --replace_regex /TLS_AES_.*/AES128-SHA/
--SHOW STATUS LIKE 'Ssl_cipher_list';
-+SELECT VARIABLE_VALUE like '%AES128-SHA%' FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher_list';
- disconnect ssl_con;
- connection default;
-diff -up mariadb-10.5.12-downstream_modified/mysys_ssl/my_crypt.cc.patch16 mariadb-10.5.12-downstream_modified/mysys_ssl/my_crypt.cc
---- mariadb-10.5.12-downstream_modified/mysys_ssl/my_crypt.cc.patch16	2021-08-03 10:29:08.000000000 +0200
-+++ mariadb-10.5.12-downstream_modified/mysys_ssl/my_crypt.cc	2021-11-18 16:58:41.552440737 +0100
-@@ -29,11 +29,7 @@
- #include <ssl_compat.h>
- #include <cstdint>
- 
--#ifdef HAVE_WOLFSSL
- #define CTX_ALIGN 16
--#else
--#define CTX_ALIGN 0
--#endif
- 
- class MyCTX
- {
-@@ -100,8 +96,9 @@ class MyCTX_nopad : public MyCTX
- {
- public:
-   const uchar *key;
--  uint klen, buf_len;
-+  uint klen, source_tail_len;
-   uchar oiv[MY_AES_BLOCK_SIZE];
-+  uchar source_tail[MY_AES_BLOCK_SIZE];
- 
-   MyCTX_nopad() : MyCTX() { }
-   ~MyCTX_nopad() { }
-@@ -112,7 +109,7 @@ public:
-     compile_time_assert(MY_AES_CTX_SIZE >= sizeof(MyCTX_nopad));
-     this->key= key;
-     this->klen= klen;
--    this->buf_len= 0;
-+    this->source_tail_len= 0;
-     if (ivlen)
-       memcpy(oiv, iv, ivlen);
-     DBUG_ASSERT(ivlen == 0 || ivlen == sizeof(oiv));
-@@ -123,26 +120,41 @@ public:
-     return res;
-   }
- 
-+  /** Update last partial source block, stored in source_tail array. */
-+  void update_source_tail(const uchar* src, uint slen)
-+  {
-+    if (!slen)
-+      return;
-+    uint new_tail_len= (source_tail_len + slen) % MY_AES_BLOCK_SIZE;
-+    if (new_tail_len)
-+    {
-+      if (slen + source_tail_len < MY_AES_BLOCK_SIZE)
-+      {
-+        memcpy(source_tail + source_tail_len, src, slen);
-+      }
-+      else
-+      {
-+        DBUG_ASSERT(slen > new_tail_len);
-+        memcpy(source_tail, src + slen - new_tail_len, new_tail_len);
-+      }
-+    }
-+    source_tail_len= new_tail_len;
-+  }
-+
-   int update(const uchar *src, uint slen, uchar *dst, uint *dlen)
-   {
--    buf_len+= slen;
-+    update_source_tail(src, slen);
-     return MyCTX::update(src, slen, dst, dlen);
-   }
- 
-   int finish(uchar *dst, uint *dlen)
-   {
--    buf_len %= MY_AES_BLOCK_SIZE;
--    if (buf_len)
-+    if (source_tail_len)
-     {
--      uchar *buf= EVP_CIPHER_CTX_buf_noconst(ctx);
-       /*
-         Not much we can do, block ciphers cannot encrypt data that aren't
-         a multiple of the block length. At least not without padding.
-         Let's do something CTR-like for the last partial block.
--
--        NOTE this assumes that there are only buf_len bytes in the buf.
--        If OpenSSL will change that, we'll need to change the implementation
--        of this class too.
-       */
-       uchar mask[MY_AES_BLOCK_SIZE];
-       uint mlen;
-@@ -154,10 +166,10 @@ public:
-         return rc;
-       DBUG_ASSERT(mlen == sizeof(mask));
- 
--      for (uint i=0; i < buf_len; i++)
--        dst[i]= buf[i] ^ mask[i];
-+      for (uint i=0; i < source_tail_len; i++)
-+        dst[i]= source_tail[i] ^ mask[i];
-     }
--    *dlen= buf_len;
-+    *dlen= source_tail_len;
-     return MY_AES_OK;
-   }
- };
-diff -up mariadb-10.5.12-downstream_modified/unittest/mysys/aes-t.c.patch16 mariadb-10.5.12-downstream_modified/unittest/mysys/aes-t.c
---- mariadb-10.5.12-downstream_modified/unittest/mysys/aes-t.c.patch16	2021-08-03 10:29:10.000000000 +0200
-+++ mariadb-10.5.12-downstream_modified/unittest/mysys/aes-t.c	2021-11-18 16:58:41.553440740 +0100
-@@ -21,27 +21,96 @@
- #include <string.h>
- #include <ctype.h>
- 
--#define DO_TEST(mode, nopad, slen, fill, dlen, hash)                    \
--  SKIP_BLOCK_IF(mode == 0xDEADBEAF, nopad ? 4 : 5, #mode " not supported")     \
--  {                                                                     \
--    memset(src, fill, src_len= slen);                                   \
--    ok(my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_ENCRYPT,              \
--                    src, src_len, dst, &dst_len,                        \
--                    key, sizeof(key), iv, sizeof(iv)) == MY_AES_OK,     \
--      "encrypt " #mode " %u %s", src_len, nopad ? "nopad" : "pad");     \
--    if (!nopad)                                                         \
--      ok (dst_len == my_aes_get_size(mode, src_len), "my_aes_get_size");\
--    my_md5(md5, (char*)dst, dst_len);                                   \
--    ok(dst_len == dlen && memcmp(md5, hash, sizeof(md5)) == 0, "md5");  \
--    ok(my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_DECRYPT,              \
--                    dst, dst_len, ddst, &ddst_len,                      \
--                    key, sizeof(key), iv, sizeof(iv)) == MY_AES_OK,     \
--       "decrypt " #mode " %u", dst_len);                                \
--    ok(ddst_len == src_len && memcmp(src, ddst, src_len) == 0, "memcmp"); \
-+
-+/** Test streaming encryption, bytewise update.*/
-+static int aes_crypt_bytewise(enum my_aes_mode mode, int flags, const unsigned char *src,
-+                 unsigned int slen, unsigned char *dst, unsigned int *dlen,
-+                 const unsigned char *key, unsigned int klen,
-+                 const unsigned char *iv, unsigned int ivlen)
-+{
-+  /* Allocate context on odd address on stack, in order to
-+   catch misalignment errors.*/
-+  void *ctx= (char *)alloca(MY_AES_CTX_SIZE+1)+1;
-+
-+  int res1, res2;
-+  uint d1= 0, d2;
-+  uint i;
-+
-+  if ((res1= my_aes_crypt_init(ctx, mode, flags, key, klen, iv, ivlen)))
-+    return res1;
-+  for (i= 0; i < slen; i++)
-+  {
-+    uint tmp_d1=0;
-+    res1= my_aes_crypt_update(ctx, src+i,1, dst, &tmp_d1);
-+    if (res1)
-+      return res1;
-+    d1+= tmp_d1;
-+    dst+= tmp_d1;
-+  }
-+  res2= my_aes_crypt_finish(ctx, dst, &d2);
-+  *dlen= d1 + d2;
-+  return res1 ? res1 : res2;
-+}
-+
-+
-+#ifndef HAVE_EncryptAes128Ctr
-+const uint MY_AES_CTR=0xDEADBEAF;
-+#endif
-+#ifndef HAVE_EncryptAes128Gcm
-+const uint MY_AES_GCM=0xDEADBEAF;
-+#endif
-+
-+#define MY_AES_UNSUPPORTED(x)  (x == 0xDEADBEAF)
-+
-+static void do_test(uint mode, const char *mode_str, int nopad, uint slen,
-+                    char fill, size_t dlen, const char *hash)
-+{
-+  uchar key[16]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6};
-+  uchar iv[16]= {2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7};
-+  uchar src[1000], dst[1100], dst2[1100], ddst[1000];
-+  uchar md5[MY_MD5_HASH_SIZE];
-+  uint src_len, dst_len, dst_len2, ddst_len;
-+  int result;
-+
-+  if (MY_AES_UNSUPPORTED(mode))
-+  {
-+    skip(nopad?7:6, "%s not supported", mode_str);
-+    return;
-+  }
-+  memset(src, fill, src_len= slen);
-+  result= my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_ENCRYPT, src, src_len,
-+                       dst, &dst_len, key, sizeof(key), iv, sizeof(iv));
-+  ok(result == MY_AES_OK, "encrypt %s %u %s", mode_str, src_len,
-+     nopad ? "nopad" : "pad");
-+
-+  if (nopad)
-+  {
-+    result= aes_crypt_bytewise(mode, nopad | ENCRYPTION_FLAG_ENCRYPT, src,
-+                                src_len, dst2, &dst_len2, key, sizeof(key),
-+                                iv, sizeof(iv));
-+    ok(result == MY_AES_OK, "encrypt bytewise %s %u", mode_str, src_len);
-+    /* Compare with non-bytewise encryption result*/
-+    ok(dst_len == dst_len2 && memcmp(dst, dst2, dst_len) == 0,
-+       "memcmp bytewise  %s %u", mode_str, src_len);
-   }
-+  else
-+  {
-+    int dst_len_real= my_aes_get_size(mode, src_len);
-+    ok(dst_len_real= dst_len, "my_aes_get_size");
-+  }
-+  my_md5(md5, (char *) dst, dst_len);
-+  ok(dst_len == dlen, "md5 len");
-+  ok(memcmp(md5, hash, sizeof(md5)) == 0, "md5");
-+  result= my_aes_crypt(mode, nopad | ENCRYPTION_FLAG_DECRYPT,
-+                       dst, dst_len, ddst, &ddst_len, key, sizeof(key), iv,
-+                       sizeof(iv));
-+
-+  ok(result == MY_AES_OK, "decrypt %s %u", mode_str, dst_len);
-+  ok(ddst_len == src_len && memcmp(src, ddst, src_len) == 0, "memcmp");
-+}
- 
--#define DO_TEST_P(M,S,F,D,H) DO_TEST(M,0,S,F,D,H)
--#define DO_TEST_N(M,S,F,D,H) DO_TEST(M,ENCRYPTION_FLAG_NOPAD,S,F,D,H)
-+#define DO_TEST_P(M, S, F, D, H) do_test(M, #M, 0, S, F, D, H)
-+#define DO_TEST_N(M, S, F, D, H) do_test(M, #M, ENCRYPTION_FLAG_NOPAD, S, F, D, H)
- 
- /* useful macro for debugging */
- #define PRINT_MD5()                                     \
-@@ -53,25 +122,15 @@
-     printf("\"\n");                                     \
-   } while(0);
- 
--#ifndef HAVE_EncryptAes128Ctr
--const uint MY_AES_CTR=0xDEADBEAF;
--#endif
--#ifndef HAVE_EncryptAes128Gcm
--const uint MY_AES_GCM=0xDEADBEAF;
--#endif
- 
- int
- main(int argc __attribute__((unused)),char *argv[])
- {
--  uchar key[16]= {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6};
--  uchar iv[16]=  {2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7};
--  uchar src[1000], dst[1100], ddst[1000];
--  uchar md5[MY_MD5_HASH_SIZE];
--  uint src_len, dst_len, ddst_len;
- 
-   MY_INIT(argv[0]);
- 
--  plan(87);
-+  plan(122);
-+
-   DO_TEST_P(MY_AES_ECB, 200, '.', 208, "\xd8\x73\x8e\x3a\xbc\x66\x99\x13\x7f\x90\x23\x52\xee\x97\x6f\x9a");
-   DO_TEST_P(MY_AES_ECB, 128, '?', 144, "\x19\x58\x33\x85\x4c\xaa\x7f\x06\xd1\xb2\xec\xd7\xb7\x6a\xa9\x5b");
-   DO_TEST_P(MY_AES_CBC, 159, '%', 160, "\x4b\x03\x18\x3d\xf1\xa7\xcd\xa1\x46\xb3\xc6\x8a\x92\xc0\x0f\xc9");
diff --git a/SOURCES/mariadb-pcdir.patch b/SOURCES/mariadb-pcdir.patch
deleted file mode 100644
index 117273a..0000000
--- a/SOURCES/mariadb-pcdir.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Use PCDIR CMake option, if configured
-
-Upstream install the server pkgconfig file into arch-independent directory
-Reported to upstream as: https://jira.mariadb.org/browse/MDEV-14340
-
---- mariadb-10.5.5/support-files/CMakeLists.txt.old	2020-09-30 10:36:08.582490318 +0200
-+++ mariadb-10.5.5/support-files/CMakeLists.txt	2020-09-30 10:38:58.079710848 +0200
-@@ -91,7 +91,11 @@
-   ENDIF()
- 
-   CONFIGURE_FILE(mariadb.pc.in ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc @ONLY)
-+IF(INSTALL_PCDIR)
-+  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc DESTINATION ${INSTALL_PCDIR} COMPONENT Development)
-+ELSE()
-   INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc DESTINATION ${INSTALL_LIBDIR}/pkgconfig COMPONENT Development)
-+ENDIF()
- 
-   INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development)
-   
diff --git a/SOURCES/mariadb-spider_on_armv7hl.patch b/SOURCES/mariadb-spider_on_armv7hl.patch
deleted file mode 100644
index e4e6694..0000000
--- a/SOURCES/mariadb-spider_on_armv7hl.patch
+++ /dev/null
@@ -1,1078 +0,0 @@
-Fix for:
-https://jira.mariadb.org/browse/MDEV-18737
-Taken from:
-https://github.com/MariaDB/server/commit/ddce85907611e0533d6226de7f53e751cf173f6a
-
-
-
-
-
-From 3faf5d4c1c3274a20a92cb3eb7eb2de6140894d6 Mon Sep 17 00:00:00 2001
-From: Kentoku SHIBA <kentokushiba@gmail.com>
-Date: Thu, 25 Jul 2019 22:52:45 +0900
-Subject: [PATCH] MDEV-18737 Spider "Out of memory" on armv7hl (#1363)
-
-This is an issue of memory alignment of variable argument when calling my_multi_malloc().
-The fix is strictly casting allocating size to "uint".
----
- storage/spider/ha_spider.cc            |  36 +++--
- storage/spider/spd_conn.cc             |  69 +++++-----
- storage/spider/spd_copy_tables.cc      |  25 ++--
- storage/spider/spd_db_conn.cc          |  13 +-
- storage/spider/spd_db_handlersocket.cc |   4 +-
- storage/spider/spd_db_mysql.cc         |  10 +-
- storage/spider/spd_db_oracle.cc        |  24 ++--
- storage/spider/spd_direct_sql.cc       |  78 +++++------
- storage/spider/spd_group_by_handler.cc |   7 +-
- storage/spider/spd_ping_table.cc       |  36 +++--
- storage/spider/spd_table.cc            | 134 ++++++++++---------
- storage/spider/spd_trx.cc              | 173 +++++++++++++------------
- 12 files changed, 327 insertions(+), 282 deletions(-)
-
-diff --git a/storage/spider/ha_spider.cc b/storage/spider/ha_spider.cc
-index 967d2c6e5de..e04f0c8ef55 100644
---- a/storage/spider/ha_spider.cc
-+++ b/storage/spider/ha_spider.cc
-@@ -394,15 +394,24 @@ int ha_spider::open(
-   {
-     if (!(searched_bitmap = (uchar *)
-       spider_bulk_malloc(spider_current_trx, 15, MYF(MY_WME),
--        &searched_bitmap, sizeof(uchar) * no_bytes_in_map(table->read_set),
--        &ft_discard_bitmap, sizeof(uchar) * no_bytes_in_map(table->read_set),
--        &position_bitmap, sizeof(uchar) * no_bytes_in_map(table->read_set),
--        &partition_handler_share, sizeof(SPIDER_PARTITION_HANDLER_SHARE),
--        &idx_read_bitmap, sizeof(uchar) * no_bytes_in_map(table->read_set),
--        &idx_write_bitmap, sizeof(uchar) * no_bytes_in_map(table->read_set),
--        &rnd_read_bitmap, sizeof(uchar) * no_bytes_in_map(table->read_set),
--        &rnd_write_bitmap, sizeof(uchar) * no_bytes_in_map(table->read_set),
--        &pt_handler_share_handlers, sizeof(ha_spider *) * part_num,
-+        &searched_bitmap,
-+          (uint) sizeof(uchar) * no_bytes_in_map(table->read_set),
-+        &ft_discard_bitmap,
-+          (uint) sizeof(uchar) * no_bytes_in_map(table->read_set),
-+        &position_bitmap,
-+          (uint) sizeof(uchar) * no_bytes_in_map(table->read_set),
-+        &partition_handler_share,
-+          (uint) sizeof(SPIDER_PARTITION_HANDLER_SHARE),
-+        &idx_read_bitmap,
-+          (uint) sizeof(uchar) * no_bytes_in_map(table->read_set),
-+        &idx_write_bitmap,
-+          (uint) sizeof(uchar) * no_bytes_in_map(table->read_set),
-+        &rnd_read_bitmap,
-+          (uint) sizeof(uchar) * no_bytes_in_map(table->read_set),
-+        &rnd_write_bitmap,
-+          (uint) sizeof(uchar) * no_bytes_in_map(table->read_set),
-+        &pt_handler_share_handlers,
-+          (uint) sizeof(ha_spider *) * part_num,
-         NullS))
-     ) {
-       error_num = HA_ERR_OUT_OF_MEM;
-@@ -11317,7 +11326,7 @@ int ha_spider::create(
-     if (!(tmp_share.static_key_cardinality = (longlong *)
-       spider_bulk_malloc(spider_current_trx, 246, MYF(MY_WME),
-         &tmp_share.static_key_cardinality,
--          sizeof(*tmp_share.static_key_cardinality) * form->s->keys,
-+          (uint) (sizeof(*tmp_share.static_key_cardinality) * form->s->keys),
-         NullS))
-     ) {
-       error_num = HA_ERR_OUT_OF_MEM;
-@@ -12126,7 +12135,8 @@ int ha_spider::info_push(
-           spider_free(spider_current_trx, hs_pushed_ret_fields, MYF(0));
-         if (!(hs_pushed_ret_fields = (uint32 *)
-           spider_bulk_malloc(spider_current_trx, 17, MYF(MY_WME),
--          &hs_pushed_ret_fields, sizeof(uint32) * hs_pushed_ret_fields_num,
-+          &hs_pushed_ret_fields,
-+            (uint) (sizeof(uint32) * hs_pushed_ret_fields_num),
-           NullS))
-         ) {
-           DBUG_RETURN(HA_ERR_OUT_OF_MEM);
-@@ -13690,8 +13700,8 @@ SPIDER_BULK_ACCESS_LINK *ha_spider::create_bulk_access_link()
- */
-   if (!(bulk_access_link = (SPIDER_BULK_ACCESS_LINK *)
-     spider_bulk_malloc(spider_current_trx, 168, MYF(MY_WME),
--    &bulk_access_link, sizeof(SPIDER_BULK_ACCESS_LINK),
--    &ref, ALIGN_SIZE(ref_length) * 2,
-+    &bulk_access_link, (uint) (sizeof(SPIDER_BULK_ACCESS_LINK)),
-+    &ref, (uint) (ALIGN_SIZE(ref_length) * 2),
-     NullS))
-   ) {
-     goto error_bulk_malloc;
-diff --git a/storage/spider/spd_conn.cc b/storage/spider/spd_conn.cc
-index 911c9bc95ac..f8ca9108061 100644
---- a/storage/spider/spd_conn.cc
-+++ b/storage/spider/spd_conn.cc
-@@ -470,30 +470,30 @@ SPIDER_CONN *spider_create_conn(
- #endif
-     if (!(conn = (SPIDER_CONN *)
-       spider_bulk_malloc(spider_current_trx, 18, MYF(MY_WME | MY_ZEROFILL),
--        &conn, sizeof(*conn),
--        &tmp_name, share->conn_keys_lengths[link_idx] + 1,
--        &tmp_host, share->tgt_hosts_lengths[link_idx] + 1,
-+        &conn, (uint) (sizeof(*conn)),
-+        &tmp_name, (uint) (share->conn_keys_lengths[link_idx] + 1),
-+        &tmp_host, (uint) (share->tgt_hosts_lengths[link_idx] + 1),
-         &tmp_username,
--          share->tgt_usernames_lengths[link_idx] + 1,
-+          (uint) (share->tgt_usernames_lengths[link_idx] + 1),
-         &tmp_password,
--          share->tgt_passwords_lengths[link_idx] + 1,
--        &tmp_socket, share->tgt_sockets_lengths[link_idx] + 1,
-+          (uint) (share->tgt_passwords_lengths[link_idx] + 1),
-+        &tmp_socket, (uint) (share->tgt_sockets_lengths[link_idx] + 1),
-         &tmp_wrapper,
--          share->tgt_wrappers_lengths[link_idx] + 1,
--        &tmp_ssl_ca, share->tgt_ssl_cas_lengths[link_idx] + 1,
-+          (uint) (share->tgt_wrappers_lengths[link_idx] + 1),
-+        &tmp_ssl_ca, (uint) (share->tgt_ssl_cas_lengths[link_idx] + 1),
-         &tmp_ssl_capath,
--          share->tgt_ssl_capaths_lengths[link_idx] + 1,
-+          (uint) (share->tgt_ssl_capaths_lengths[link_idx] + 1),
-         &tmp_ssl_cert,
--          share->tgt_ssl_certs_lengths[link_idx] + 1,
-+          (uint) (share->tgt_ssl_certs_lengths[link_idx] + 1),
-         &tmp_ssl_cipher,
--          share->tgt_ssl_ciphers_lengths[link_idx] + 1,
-+          (uint) (share->tgt_ssl_ciphers_lengths[link_idx] + 1),
-         &tmp_ssl_key,
--          share->tgt_ssl_keys_lengths[link_idx] + 1,
-+          (uint) (share->tgt_ssl_keys_lengths[link_idx] + 1),
-         &tmp_default_file,
--          share->tgt_default_files_lengths[link_idx] + 1,
-+          (uint) (share->tgt_default_files_lengths[link_idx] + 1),
-         &tmp_default_group,
--          share->tgt_default_groups_lengths[link_idx] + 1,
--        &need_mon, sizeof(int),
-+          (uint) (share->tgt_default_groups_lengths[link_idx] + 1),
-+        &need_mon, (uint) (sizeof(int)),
-         NullS))
-     ) {
-       *error_num = HA_ERR_OUT_OF_MEM;
-@@ -592,13 +592,13 @@ SPIDER_CONN *spider_create_conn(
-   } else if (conn_kind == SPIDER_CONN_KIND_HS_READ) {
-     if (!(conn = (SPIDER_CONN *)
-       spider_bulk_malloc(spider_current_trx, 19, MYF(MY_WME | MY_ZEROFILL),
--        &conn, sizeof(*conn),
--        &tmp_name, share->hs_read_conn_keys_lengths[link_idx] + 1,
--        &tmp_host, share->tgt_hosts_lengths[link_idx] + 1,
--        &tmp_socket, share->hs_read_socks_lengths[link_idx] + 1,
-+        &conn, (uint) (sizeof(*conn)),
-+        &tmp_name, (uint) (share->hs_read_conn_keys_lengths[link_idx] + 1),
-+        &tmp_host, (uint) (share->tgt_hosts_lengths[link_idx] + 1),
-+        &tmp_socket, (uint) (share->hs_read_socks_lengths[link_idx] + 1),
-         &tmp_wrapper,
--          share->tgt_wrappers_lengths[link_idx] + 1,
--        &need_mon, sizeof(int),
-+          (uint) (share->tgt_wrappers_lengths[link_idx] + 1),
-+        &need_mon, (uint) (sizeof(int)),
-         NullS))
-     ) {
-       *error_num = HA_ERR_OUT_OF_MEM;
-@@ -634,13 +634,13 @@ SPIDER_CONN *spider_create_conn(
-   } else {
-     if (!(conn = (SPIDER_CONN *)
-       spider_bulk_malloc(spider_current_trx, 20, MYF(MY_WME | MY_ZEROFILL),
--        &conn, sizeof(*conn),
--        &tmp_name, share->hs_write_conn_keys_lengths[link_idx] + 1,
--        &tmp_host, share->tgt_hosts_lengths[link_idx] + 1,
--        &tmp_socket, share->hs_write_socks_lengths[link_idx] + 1,
-+        &conn, (uint) (sizeof(*conn)),
-+        &tmp_name, (uint) (share->hs_write_conn_keys_lengths[link_idx] + 1),
-+        &tmp_host, (uint) (share->tgt_hosts_lengths[link_idx] + 1),
-+        &tmp_socket, (uint) (share->hs_write_socks_lengths[link_idx] + 1),
-         &tmp_wrapper,
--          share->tgt_wrappers_lengths[link_idx] + 1,
--        &need_mon, sizeof(int),
-+          (uint) (share->tgt_wrappers_lengths[link_idx] + 1),
-+        &need_mon, (uint) (sizeof(int)),
-         NullS))
-     ) {
-       *error_num = HA_ERR_OUT_OF_MEM;
-@@ -3634,13 +3634,16 @@ int spider_create_mon_threads(
-       }
-       if (!(share->bg_mon_thds = (THD **)
-         spider_bulk_malloc(spider_current_trx, 23, MYF(MY_WME | MY_ZEROFILL),
--          &share->bg_mon_thds, sizeof(THD *) * share->all_link_count,
--          &share->bg_mon_threads, sizeof(pthread_t) * share->all_link_count,
--          &share->bg_mon_mutexes, sizeof(pthread_mutex_t) *
--            share->all_link_count,
--          &share->bg_mon_conds, sizeof(pthread_cond_t) * share->all_link_count,
-+          &share->bg_mon_thds,
-+            (uint) (sizeof(THD *) * share->all_link_count),
-+          &share->bg_mon_threads,
-+            (uint) (sizeof(pthread_t) * share->all_link_count),
-+          &share->bg_mon_mutexes,
-+            (uint) (sizeof(pthread_mutex_t) * share->all_link_count),
-+          &share->bg_mon_conds,
-+            (uint) (sizeof(pthread_cond_t) * share->all_link_count),
-           &share->bg_mon_sleep_conds,
--            sizeof(pthread_cond_t) * share->all_link_count,
-+            (uint) (sizeof(pthread_cond_t) * share->all_link_count),
-           NullS))
-       ) {
-         error_num = HA_ERR_OUT_OF_MEM;
-diff --git a/storage/spider/spd_copy_tables.cc b/storage/spider/spd_copy_tables.cc
-index 13c53220b16..1a472e2c12b 100644
---- a/storage/spider/spd_copy_tables.cc
-+++ b/storage/spider/spd_copy_tables.cc
-@@ -390,12 +390,15 @@ int spider_udf_get_copy_tgt_tables(
-   do {
-     if (!(table_conn = (SPIDER_COPY_TABLE_CONN *)
-       spider_bulk_malloc(spider_current_trx, 25, MYF(MY_WME | MY_ZEROFILL),
--        &table_conn, sizeof(SPIDER_COPY_TABLE_CONN),
--        &tmp_share, sizeof(SPIDER_SHARE),
--        &tmp_connect_info, sizeof(char *) * SPIDER_TMP_SHARE_CHAR_PTR_COUNT,
--        &tmp_connect_info_length, sizeof(uint) * SPIDER_TMP_SHARE_UINT_COUNT,
--        &tmp_long, sizeof(long) * SPIDER_TMP_SHARE_LONG_COUNT,
--        &tmp_longlong, sizeof(longlong) * SPIDER_TMP_SHARE_LONGLONG_COUNT,
-+        &table_conn, (uint) (sizeof(SPIDER_COPY_TABLE_CONN)),
-+        &tmp_share, (uint) (sizeof(SPIDER_SHARE)),
-+        &tmp_connect_info,
-+          (uint) (sizeof(char *) * SPIDER_TMP_SHARE_CHAR_PTR_COUNT),
-+        &tmp_connect_info_length,
-+          (uint) (sizeof(uint) * SPIDER_TMP_SHARE_UINT_COUNT),
-+        &tmp_long, (uint) (sizeof(long) * SPIDER_TMP_SHARE_LONG_COUNT),
-+        &tmp_longlong,
-+          (uint) (sizeof(longlong) * SPIDER_TMP_SHARE_LONGLONG_COUNT),
-         NullS))
-     ) {
-       spider_sys_index_end(table_tables);
-@@ -706,12 +709,12 @@ int spider_udf_copy_tables_create_table_list(
-   if (!(copy_tables->link_idxs[0] = (int *)
-     spider_bulk_malloc(spider_current_trx, 26, MYF(MY_WME | MY_ZEROFILL),
-       &copy_tables->link_idxs[0],
--        sizeof(int) * copy_tables->link_idx_count[0],
-+        (uint) (sizeof(int) * copy_tables->link_idx_count[0]),
-       &copy_tables->link_idxs[1],
--        sizeof(int) * copy_tables->link_idx_count[1],
--      &tmp_name_ptr, sizeof(char) * (
-+        (uint) (sizeof(int) * copy_tables->link_idx_count[1]),
-+      &tmp_name_ptr, (uint) (sizeof(char) * (
-         spider_table_name_length * 2 + copy_tables->database_length + 3
--      ),
-+      )),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-@@ -906,7 +909,7 @@ long long spider_copy_tables_body(
- 
-   if (!(copy_tables = (SPIDER_COPY_TABLES *)
-     spider_bulk_malloc(spider_current_trx, 27, MYF(MY_WME | MY_ZEROFILL),
--      &copy_tables, sizeof(SPIDER_COPY_TABLES),
-+      &copy_tables, (uint) (sizeof(SPIDER_COPY_TABLES)),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc
-index cc4599ce0b3..f7178293b05 100644
---- a/storage/spider/spd_db_conn.cc
-+++ b/storage/spider/spd_db_conn.cc
-@@ -2643,7 +2643,8 @@ int spider_db_fetch_for_item_sum_func(
-           if (!spider->direct_aggregate_item_first)
-           {
-             if (!spider_bulk_malloc(spider_current_trx, 240, MYF(MY_WME),
--              &spider->direct_aggregate_item_first, sizeof(SPIDER_ITEM_HLD),
-+              &spider->direct_aggregate_item_first,
-+              (uint) (sizeof(SPIDER_ITEM_HLD)),
-               NullS)
-             ) {
-               DBUG_RETURN(HA_ERR_OUT_OF_MEM);
-@@ -2662,7 +2663,7 @@ int spider_db_fetch_for_item_sum_func(
-           {
-             if (!spider_bulk_malloc(spider_current_trx, 241, MYF(MY_WME),
-               &spider->direct_aggregate_item_current->next,
--              sizeof(SPIDER_ITEM_HLD), NullS)
-+              (uint) (sizeof(SPIDER_ITEM_HLD)), NullS)
-             ) {
-               DBUG_RETURN(HA_ERR_OUT_OF_MEM);
-             }
-@@ -4034,8 +4035,8 @@ int spider_db_store_result(
-       current->field_count = field_count;
-       if (!(position = (SPIDER_POSITION *)
-         spider_bulk_malloc(spider_current_trx, 7, MYF(MY_WME | MY_ZEROFILL),
--          &position, sizeof(SPIDER_POSITION) * page_size,
--          &tmp_row, sizeof(char*) * field_count,
-+          &position, (uint) (sizeof(SPIDER_POSITION) * page_size),
-+          &tmp_row, (uint) (sizeof(SPIDER_DB_ROW) * field_count),
-           NullS))
-       )
-         DBUG_RETURN(HA_ERR_OUT_OF_MEM);
-@@ -10814,8 +10815,8 @@ int spider_db_udf_copy_tables(
-   DBUG_ENTER("spider_db_udf_copy_tables");
-   if (!(last_row_pos = (ulong *)
-     spider_bulk_malloc(spider_current_trx, 30, MYF(MY_WME),
--      &last_row_pos, sizeof(ulong) * table->s->fields,
--      &last_lengths, sizeof(ulong) * table->s->fields,
-+      &last_row_pos, (uint) (sizeof(ulong) * table->s->fields),
-+      &last_lengths, (uint) (sizeof(ulong) * table->s->fields),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-diff --git a/storage/spider/spd_db_handlersocket.cc b/storage/spider/spd_db_handlersocket.cc
-index 1e42838f40a..1e88ad4a59a 100644
---- a/storage/spider/spd_db_handlersocket.cc
-+++ b/storage/spider/spd_db_handlersocket.cc
-@@ -505,8 +505,8 @@ SPIDER_DB_ROW *spider_db_handlersocket_row::clone()
-     DBUG_RETURN(NULL);
-   }
-   if (!spider_bulk_malloc(spider_current_trx, 169, MYF(MY_WME),
--    &clone_row->hs_row, sizeof(SPIDER_HS_STRING_REF) * field_count,
--    &tmp_char, row_size,
-+    &clone_row->hs_row, (uint) (sizeof(SPIDER_HS_STRING_REF) * field_count),
-+    &tmp_char, (uint) (row_size),
-     NullS)
-   ) {
-     delete clone_row;
-diff --git a/storage/spider/spd_db_mysql.cc b/storage/spider/spd_db_mysql.cc
-index 1b62b4a9bd5..947a614f11e 100644
---- a/storage/spider/spd_db_mysql.cc
-+++ b/storage/spider/spd_db_mysql.cc
-@@ -523,9 +523,9 @@ SPIDER_DB_ROW *spider_db_mbase_row::clone()
-     row_size = record_size + field_count;
-   }
-   if (!spider_bulk_malloc(spider_current_trx, 29, MYF(MY_WME),
--    &clone_row->row, sizeof(char*) * field_count,
--    &tmp_char, row_size,
--    &clone_row->lengths, sizeof(ulong) * field_count,
-+    &clone_row->row, (uint) (sizeof(char*) * field_count),
-+    &tmp_char, (uint) (row_size),
-+    &clone_row->lengths, (uint) (sizeof(ulong) * field_count),
-     NullS)
-   ) {
-     delete clone_row;
-@@ -13519,7 +13519,7 @@ int spider_mbase_handler::init_union_table_name_pos()
-   if (!union_table_name_pos_first)
-   {
-     if (!spider_bulk_malloc(spider_current_trx, 236, MYF(MY_WME),
--      &union_table_name_pos_first, sizeof(SPIDER_INT_HLD),
-+      &union_table_name_pos_first, (uint) (sizeof(SPIDER_INT_HLD)),
-       NullS)
-     ) {
-       DBUG_RETURN(HA_ERR_OUT_OF_MEM);
-@@ -13540,7 +13540,7 @@ int spider_mbase_handler::set_union_table_name_pos()
-     if (!union_table_name_pos_current->next)
-     {
-       if (!spider_bulk_malloc(spider_current_trx, 237, MYF(MY_WME),
--        &union_table_name_pos_current->next, sizeof(SPIDER_INT_HLD),
-+        &union_table_name_pos_current->next, (uint) (sizeof(SPIDER_INT_HLD)),
-         NullS)
-       ) {
-         DBUG_RETURN(HA_ERR_OUT_OF_MEM);
-diff --git a/storage/spider/spd_db_oracle.cc b/storage/spider/spd_db_oracle.cc
-index 08d7d3e083d..d869afc61f4 100644
---- a/storage/spider/spd_db_oracle.cc
-+++ b/storage/spider/spd_db_oracle.cc
-@@ -588,16 +588,16 @@ int spider_db_oracle_row::init()
-   if (
-     !(ind = (sb2 *)
-       spider_bulk_malloc(spider_current_trx, 161, MYF(MY_WME | MY_ZEROFILL),
--        &ind, sizeof(sb2) * field_count,
--        &rlen, sizeof(ub2) * field_count,
--        &coltp, sizeof(ub2) * field_count,
--        &colsz, sizeof(ub2) * field_count,
--        &row_size, sizeof(ulong) * field_count,
--        &val, sizeof(char *) * field_count,
--        &tmp_val, MAX_FIELD_WIDTH * field_count,
--        &defnp, sizeof(OCIDefine *) * field_count,
--        &lobhp, sizeof(OCILobLocator *) * field_count,
--        &colhp, sizeof(OCIParam *) * field_count,
-+        &ind, (uint) (sizeof(sb2) * field_count),
-+        &rlen, (uint) (sizeof(ub2) * field_count),
-+        &coltp, (uint) (sizeof(ub2) * field_count),
-+        &colsz, (uint) (sizeof(ub2) * field_count),
-+        &row_size, (uint) (sizeof(ulong) * field_count),
-+        &val, (uint) (sizeof(char *) * field_count),
-+        &tmp_val, (uint) (MAX_FIELD_WIDTH * field_count),
-+        &defnp, (uint) (sizeof(OCIDefine *) * field_count),
-+        &lobhp, (uint) (sizeof(OCILobLocator *) * field_count),
-+        &colhp, (uint) (sizeof(OCIParam *) * field_count),
-         NullS)
-     ) ||
-     !(val_str = new spider_string[field_count])
-@@ -12487,7 +12487,7 @@ int spider_oracle_handler::init_union_table_name_pos()
-   if (!union_table_name_pos_first)
-   {
-     if (!spider_bulk_malloc(spider_current_trx, 238, MYF(MY_WME),
--      &union_table_name_pos_first, sizeof(SPIDER_INT_HLD),
-+      &union_table_name_pos_first, (uint) (sizeof(SPIDER_INT_HLD)),
-       NullS)
-     ) {
-       DBUG_RETURN(HA_ERR_OUT_OF_MEM);
-@@ -12508,7 +12508,7 @@ int spider_oracle_handler::set_union_table_name_pos()
-     if (!union_table_name_pos_current->next)
-     {
-       if (!spider_bulk_malloc(spider_current_trx, 239, MYF(MY_WME),
--        &union_table_name_pos_current->next, sizeof(SPIDER_INT_HLD),
-+        &union_table_name_pos_current->next, (uint) (sizeof(SPIDER_INT_HLD)),
-         NullS)
-       ) {
-         DBUG_RETURN(HA_ERR_OUT_OF_MEM);
-diff --git a/storage/spider/spd_direct_sql.cc b/storage/spider/spd_direct_sql.cc
-index 7237d0877a7..7bf0b91a4a7 100644
---- a/storage/spider/spd_direct_sql.cc
-+++ b/storage/spider/spd_direct_sql.cc
-@@ -1,4 +1,5 @@
--/* Copyright (C) 2009-2018 Kentoku Shiba
-+/* Copyright (C) 2009-2019 Kentoku Shiba
-+   Copyright (C) 2019 MariaDB corp
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -117,31 +118,32 @@ int spider_udf_direct_sql_create_table_list(
- #if MYSQL_VERSION_ID < 50500
-   if (!(direct_sql->db_names = (char**)
-     spider_bulk_malloc(spider_current_trx, 31, MYF(MY_WME | MY_ZEROFILL),
--      &direct_sql->db_names, sizeof(char*) * table_count,
--      &direct_sql->table_names, sizeof(char*) * table_count,
--      &direct_sql->tables, sizeof(TABLE*) * table_count,
--      &tmp_name_ptr, sizeof(char) * (
-+      &direct_sql->db_names, (uint) (sizeof(char*) * table_count),
-+      &direct_sql->table_names, (uint) (sizeof(char*) * table_count),
-+      &direct_sql->tables, (uint) (sizeof(TABLE*) * table_count),
-+      &tmp_name_ptr, (uint) (sizeof(char) * (
-         table_name_list_length +
-         thd->db_length * table_count +
-         2 * table_count
--      ),
--      &direct_sql->iop, sizeof(int) * table_count,
-+      )),
-+      &direct_sql->iop, (uint) (sizeof(int) * table_count),
-       NullS))
-   )
- #else
-   if (!(direct_sql->db_names = (char**)
-     spider_bulk_malloc(spider_current_trx, 31, MYF(MY_WME | MY_ZEROFILL),
--      &direct_sql->db_names, sizeof(char*) * table_count,
--      &direct_sql->table_names, sizeof(char*) * table_count,
--      &direct_sql->tables, sizeof(TABLE*) * table_count,
--      &tmp_name_ptr, sizeof(char) * (
-+      &direct_sql->db_names, (uint) (sizeof(char*) * table_count),
-+      &direct_sql->table_names, (uint) (sizeof(char*) * table_count),
-+      &direct_sql->tables, (uint) (sizeof(TABLE*) * table_count),
-+      &tmp_name_ptr, (uint) (sizeof(char) * (
-         table_name_list_length +
-         SPIDER_THD_db_length(thd) * table_count +
-         2 * table_count
--      ),
--      &direct_sql->iop, sizeof(int) * table_count,
--      &direct_sql->table_list, sizeof(TABLE_LIST) * table_count,
--      &direct_sql->real_table_bitmap, sizeof(uchar) * ((table_count + 7) / 8),
-+      )),
-+      &direct_sql->iop, (uint) (sizeof(int) * table_count),
-+      &direct_sql->table_list, (uint) (sizeof(TABLE_LIST) * table_count),
-+      &direct_sql->real_table_bitmap,
-+        (uint) (sizeof(uchar) * ((table_count + 7) / 8)),
-       NullS))
-   )
- #endif
-@@ -412,23 +414,23 @@ SPIDER_CONN *spider_udf_direct_sql_create_conn(
- #endif
-     if (!(conn = (SPIDER_CONN *)
-       spider_bulk_malloc(spider_current_trx, 32, MYF(MY_WME | MY_ZEROFILL),
--        &conn, sizeof(*conn),
--        &tmp_name, direct_sql->conn_key_length + 1,
--        &tmp_host, direct_sql->tgt_host_length + 1,
--        &tmp_username, direct_sql->tgt_username_length + 1,
--        &tmp_password, direct_sql->tgt_password_length + 1,
--        &tmp_socket, direct_sql->tgt_socket_length + 1,
--        &tmp_wrapper, direct_sql->tgt_wrapper_length + 1,
--        &tmp_ssl_ca, direct_sql->tgt_ssl_ca_length + 1,
--        &tmp_ssl_capath, direct_sql->tgt_ssl_capath_length + 1,
--        &tmp_ssl_cert, direct_sql->tgt_ssl_cert_length + 1,
--        &tmp_ssl_cipher, direct_sql->tgt_ssl_cipher_length + 1,
--        &tmp_ssl_key, direct_sql->tgt_ssl_key_length + 1,
-+        &conn, (uint) (sizeof(*conn)),
-+        &tmp_name, (uint) (direct_sql->conn_key_length + 1),
-+        &tmp_host, (uint) (direct_sql->tgt_host_length + 1),
-+        &tmp_username, (uint) (direct_sql->tgt_username_length + 1),
-+        &tmp_password, (uint) (direct_sql->tgt_password_length + 1),
-+        &tmp_socket, (uint) (direct_sql->tgt_socket_length + 1),
-+        &tmp_wrapper, (uint) (direct_sql->tgt_wrapper_length + 1),
-+        &tmp_ssl_ca, (uint) (direct_sql->tgt_ssl_ca_length + 1),
-+        &tmp_ssl_capath, (uint) (direct_sql->tgt_ssl_capath_length + 1),
-+        &tmp_ssl_cert, (uint) (direct_sql->tgt_ssl_cert_length + 1),
-+        &tmp_ssl_cipher, (uint) (direct_sql->tgt_ssl_cipher_length + 1),
-+        &tmp_ssl_key, (uint) (direct_sql->tgt_ssl_key_length + 1),
-         &tmp_default_file,
--          direct_sql->tgt_default_file_length + 1,
-+          (uint) (direct_sql->tgt_default_file_length + 1),
-         &tmp_default_group,
--          direct_sql->tgt_default_group_length + 1,
--        &need_mon, sizeof(int),
-+          (uint) (direct_sql->tgt_default_group_length + 1),
-+        &need_mon, (uint) (sizeof(int)),
-         NullS))
-     ) {
-       *error_num = HA_ERR_OUT_OF_MEM;
-@@ -439,12 +441,12 @@ SPIDER_CONN *spider_udf_direct_sql_create_conn(
-   } else {
-     if (!(conn = (SPIDER_CONN *)
-       spider_bulk_malloc(spider_current_trx, 33, MYF(MY_WME | MY_ZEROFILL),
--        &conn, sizeof(*conn),
--        &tmp_name, direct_sql->conn_key_length + 1,
--        &tmp_host, direct_sql->tgt_host_length + 1,
--        &tmp_socket, direct_sql->tgt_socket_length + 1,
--        &tmp_wrapper, direct_sql->tgt_wrapper_length + 1,
--        &need_mon, sizeof(int),
-+        &conn, (uint) (sizeof(*conn)),
-+        &tmp_name, (uint) (direct_sql->conn_key_length + 1),
-+        &tmp_host, (uint) (direct_sql->tgt_host_length + 1),
-+        &tmp_socket, (uint) (direct_sql->tgt_socket_length + 1),
-+        &tmp_wrapper, (uint) (direct_sql->tgt_wrapper_length + 1),
-+        &need_mon, (uint) (sizeof(int)),
-         NullS))
-     ) {
-       *error_num = HA_ERR_OUT_OF_MEM;
-@@ -1602,8 +1604,8 @@ long long spider_direct_sql_body(
-   SPIDER_BACKUP_DASTATUS;
-   if (!(direct_sql = (SPIDER_DIRECT_SQL *)
-     spider_bulk_malloc(spider_current_trx, 34, MYF(MY_WME | MY_ZEROFILL),
--      &direct_sql, sizeof(SPIDER_DIRECT_SQL),
--      &sql, sizeof(char) * args->lengths[0],
-+      &direct_sql, (uint) (sizeof(SPIDER_DIRECT_SQL)),
-+      &sql, (uint) (sizeof(char) * args->lengths[0]),
-       NullS))
-   ) {
-     error_num = HA_ERR_OUT_OF_MEM;
-diff --git a/storage/spider/spd_group_by_handler.cc b/storage/spider/spd_group_by_handler.cc
-index 3b57092c4ce..51cfca23106 100644
---- a/storage/spider/spd_group_by_handler.cc
-+++ b/storage/spider/spd_group_by_handler.cc
-@@ -1,4 +1,5 @@
--/* Copyright (C) 2008-2018 Kentoku Shiba
-+/* Copyright (C) 2008-2019 Kentoku Shiba
-+   Copyright (C) 2019 MariaDB corp
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -637,9 +638,9 @@ SPIDER_CONN_HOLDER *spider_fields::create_conn_holder(
-   DBUG_PRINT("info",("spider this=%p", this));
-   return_conn_holder = (SPIDER_CONN_HOLDER *)
-     spider_bulk_malloc(spider_current_trx, 252, MYF(MY_WME | MY_ZEROFILL),
--      &return_conn_holder, sizeof(SPIDER_CONN_HOLDER),
-+      &return_conn_holder, (uint) (sizeof(SPIDER_CONN_HOLDER)),
-       &table_link_idx_holder,
--        table_count * sizeof(SPIDER_TABLE_LINK_IDX_HOLDER),
-+        (uint) (table_count * sizeof(SPIDER_TABLE_LINK_IDX_HOLDER)),
-       NullS
-     );
-   if (!return_conn_holder)
-diff --git a/storage/spider/spd_ping_table.cc b/storage/spider/spd_ping_table.cc
-index 431d46063c3..60e36fc24fb 100644
---- a/storage/spider/spd_ping_table.cc
-+++ b/storage/spider/spd_ping_table.cc
-@@ -1,4 +1,5 @@
--/* Copyright (C) 2009-2018 Kentoku Shiba
-+/* Copyright (C) 2009-2019 Kentoku Shiba
-+   Copyright (C) 2019 MariaDB corp
- 
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-@@ -367,12 +368,15 @@ int spider_get_ping_table_mon(
-   do {
-     if (!(table_mon = (SPIDER_TABLE_MON *)
-       spider_bulk_malloc(spider_current_trx, 35, MYF(MY_WME | MY_ZEROFILL),
--        &table_mon, sizeof(SPIDER_TABLE_MON),
--        &tmp_share, sizeof(SPIDER_SHARE),
--        &tmp_connect_info, sizeof(char *) * SPIDER_TMP_SHARE_CHAR_PTR_COUNT,
--        &tmp_connect_info_length, sizeof(uint) * SPIDER_TMP_SHARE_UINT_COUNT,
--        &tmp_long, sizeof(long) * SPIDER_TMP_SHARE_LONG_COUNT,
--        &tmp_longlong, sizeof(longlong) * SPIDER_TMP_SHARE_LONGLONG_COUNT,
-+        &table_mon, (uint) (sizeof(SPIDER_TABLE_MON)),
-+        &tmp_share, (uint) (sizeof(SPIDER_SHARE)),
-+        &tmp_connect_info,
-+          (uint) (sizeof(char *) * SPIDER_TMP_SHARE_CHAR_PTR_COUNT),
-+        &tmp_connect_info_length,
-+          (uint) (sizeof(uint) * SPIDER_TMP_SHARE_UINT_COUNT),
-+        &tmp_long, (uint) (sizeof(long) * SPIDER_TMP_SHARE_LONG_COUNT),
-+        &tmp_longlong,
-+          (uint) (sizeof(longlong) * SPIDER_TMP_SHARE_LONGLONG_COUNT),
-         NullS))
-     ) {
-       spider_sys_index_end(table_link_mon);
-@@ -491,13 +495,17 @@ SPIDER_TABLE_MON_LIST *spider_get_ping_table_tgt(
-   SPD_INIT_ALLOC_ROOT(&mem_root, 4096, 0, MYF(MY_WME));
-   if (!(table_mon_list = (SPIDER_TABLE_MON_LIST *)
-     spider_bulk_malloc(spider_current_trx, 36, MYF(MY_WME | MY_ZEROFILL),
--      &table_mon_list, sizeof(SPIDER_TABLE_MON_LIST),
--      &tmp_share, sizeof(SPIDER_SHARE),
--      &tmp_connect_info, sizeof(char *) * SPIDER_TMP_SHARE_CHAR_PTR_COUNT,
--      &tmp_connect_info_length, sizeof(uint) * SPIDER_TMP_SHARE_UINT_COUNT,
--      &tmp_long, sizeof(long) * SPIDER_TMP_SHARE_LONG_COUNT,
--      &tmp_longlong, sizeof(longlong) * SPIDER_TMP_SHARE_LONGLONG_COUNT,
--      &key_str, str->length() + 1,
-+      &table_mon_list, (uint) (sizeof(SPIDER_TABLE_MON_LIST)),
-+      &tmp_share, (uint) (sizeof(SPIDER_SHARE)),
-+      &tmp_connect_info,
-+        (uint) (sizeof(char *) * SPIDER_TMP_SHARE_CHAR_PTR_COUNT),
-+      &tmp_connect_info_length,
-+        (uint) (sizeof(uint) * SPIDER_TMP_SHARE_UINT_COUNT),
-+      &tmp_long,
-+        (uint) (sizeof(long) * SPIDER_TMP_SHARE_LONG_COUNT),
-+      &tmp_longlong,
-+        (uint) (sizeof(longlong) * SPIDER_TMP_SHARE_LONGLONG_COUNT),
-+      &key_str, (uint) (str->length() + 1),
-       NullS))
-   ) {
-     my_error(HA_ERR_OUT_OF_MEM, MYF(0));
-diff --git a/storage/spider/spd_table.cc b/storage/spider/spd_table.cc
-index 83c5a37555f..5bae895570d 100644
---- a/storage/spider/spd_table.cc
-+++ b/storage/spider/spd_table.cc
-@@ -1209,8 +1209,8 @@ int spider_create_string_list(
- 
-   if (!(*string_list = (char**)
-     spider_bulk_malloc(spider_current_trx, 37, MYF(MY_WME | MY_ZEROFILL),
--      string_list, sizeof(char*) * (*list_length),
--      string_length_list, sizeof(int) * (*list_length),
-+      string_list, (uint) (sizeof(char*) * (*list_length)),
-+      string_length_list, (uint) (sizeof(int) * (*list_length)),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-@@ -1328,7 +1328,7 @@ int spider_create_long_list(
- 
-   if (!(*long_list = (long*)
-     spider_bulk_malloc(spider_current_trx, 38, MYF(MY_WME | MY_ZEROFILL),
--      long_list, sizeof(long) * (*list_length),
-+      long_list, (uint) (sizeof(long) * (*list_length)),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-@@ -1412,7 +1412,7 @@ int spider_create_longlong_list(
- 
-   if (!(*longlong_list = (longlong *)
-     spider_bulk_malloc(spider_current_trx, 39, MYF(MY_WME | MY_ZEROFILL),
--      longlong_list, sizeof(longlong) * (*list_length),
-+      longlong_list, (uint) (sizeof(longlong) * (*list_length)),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-@@ -1483,8 +1483,8 @@ int spider_increase_string_list(
- 
-   if (!(tmp_str_list = (char**)
-     spider_bulk_malloc(spider_current_trx, 40, MYF(MY_WME | MY_ZEROFILL),
--      &tmp_str_list, sizeof(char*) * link_count,
--      &tmp_length_list, sizeof(uint) * link_count,
-+      &tmp_str_list, (uint) (sizeof(char*) * link_count),
-+      &tmp_length_list, (uint) (sizeof(uint) * link_count),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-@@ -1546,8 +1546,8 @@ int spider_increase_null_string_list(
- 
-   if (!(tmp_str_list = (char**)
-     spider_bulk_malloc(spider_current_trx, 247, MYF(MY_WME | MY_ZEROFILL),
--      &tmp_str_list, sizeof(char*) * link_count,
--      &tmp_length_list, sizeof(uint) * link_count,
-+      &tmp_str_list, (uint) (sizeof(char*) * link_count),
-+      &tmp_length_list, (uint) (sizeof(uint) * link_count),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-@@ -1604,7 +1604,7 @@ int spider_increase_long_list(
- 
-   if (!(tmp_long_list = (long*)
-     spider_bulk_malloc(spider_current_trx, 41, MYF(MY_WME | MY_ZEROFILL),
--      &tmp_long_list, sizeof(long) * link_count,
-+      &tmp_long_list, (uint) (sizeof(long) * link_count),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-@@ -1649,7 +1649,7 @@ int spider_increase_longlong_list(
- 
-   if (!(tmp_longlong_list = (longlong*)
-     spider_bulk_malloc(spider_current_trx, 42, MYF(MY_WME | MY_ZEROFILL),
--      &tmp_longlong_list, sizeof(longlong) * link_count,
-+      &tmp_longlong_list, (uint) (sizeof(longlong) * link_count),
-       NullS))
-   ) {
-     my_error(ER_OUT_OF_RESOURCES, MYF(0), HA_ERR_OUT_OF_MEM);
-@@ -2972,17 +2972,17 @@ int spider_parse_connect_info(
-   if (!(share_alter->tmp_server_names = (char **)
-     spider_bulk_malloc(spider_current_trx, 43, MYF(MY_WME | MY_ZEROFILL),
-       &share_alter->tmp_server_names,
--      sizeof(char *) * 16 * share->all_link_count,
-+      (uint) (sizeof(char *) * 16 * share->all_link_count),
-       &share_alter->tmp_server_names_lengths,
--      sizeof(uint *) * 16 * share->all_link_count,
-+      (uint) (sizeof(uint *) * 16 * share->all_link_count),
-       &share_alter->tmp_tgt_ports,
--      sizeof(long) * share->all_link_count,
-+      (uint) (sizeof(long) * share->all_link_count),
-       &share_alter->tmp_tgt_ssl_vscs,
--      sizeof(long) * share->all_link_count,
-+      (uint) (sizeof(long) * share->all_link_count),
-       &share_alter->tmp_monitoring_binlog_pos_at_failing,
--      sizeof(long) * share->all_link_count,
-+      (uint) (sizeof(long) * share->all_link_count),
-       &share_alter->tmp_link_statuses,
--      sizeof(long) * share->all_link_count,
-+      (uint) (sizeof(long) * share->all_link_count),
-       NullS))
-   ) {
-     error_num = HA_ERR_OUT_OF_MEM;
-@@ -4383,13 +4383,17 @@ SPIDER_SHARE *spider_create_share(
-   bitmap_size = spider_bitmap_size(table_share->fields);
-   if (!(share = (SPIDER_SHARE *)
-     spider_bulk_malloc(spider_current_trx, 46, MYF(MY_WME | MY_ZEROFILL),
--      &share, sizeof(*share),
--      &tmp_name, length + 1,
--      &tmp_static_key_cardinality, sizeof(*tmp_static_key_cardinality) * table_share->keys,
--      &tmp_cardinality, sizeof(*tmp_cardinality) * table_share->fields,
--      &tmp_cardinality_upd, sizeof(*tmp_cardinality_upd) * bitmap_size,
--      &tmp_table_mon_mutex_bitmap, sizeof(*tmp_table_mon_mutex_bitmap) *
--        ((spider_param_udf_table_mon_mutex_count() + 7) / 8),
-+      &share, (uint) (sizeof(*share)),
-+      &tmp_name, (uint) (length + 1),
-+      &tmp_static_key_cardinality,
-+        (uint) (sizeof(*tmp_static_key_cardinality) * table_share->keys),
-+      &tmp_cardinality,
-+        (uint) (sizeof(*tmp_cardinality) * table_share->fields),
-+      &tmp_cardinality_upd,
-+        (uint) (sizeof(*tmp_cardinality_upd) * bitmap_size),
-+      &tmp_table_mon_mutex_bitmap,
-+        (uint) (sizeof(*tmp_table_mon_mutex_bitmap) *
-+          ((spider_param_udf_table_mon_mutex_count() + 7) / 8)),
-       NullS))
-   ) {
-     *error_num = HA_ERR_OUT_OF_MEM;
-@@ -5907,8 +5911,8 @@ SPIDER_LGTM_TBLHND_SHARE *spider_get_lgtm_tblhnd_share(
-     DBUG_PRINT("info",("spider create new lgtm tblhnd share"));
-     if (!(lgtm_tblhnd_share = (SPIDER_LGTM_TBLHND_SHARE *)
-       spider_bulk_malloc(spider_current_trx, 244, MYF(MY_WME | MY_ZEROFILL),
--        &lgtm_tblhnd_share, sizeof(*lgtm_tblhnd_share),
--        &tmp_name, table_name_length + 1,
-+        &lgtm_tblhnd_share, (uint) (sizeof(*lgtm_tblhnd_share)),
-+        &tmp_name, (uint) (table_name_length + 1),
-         NullS))
-     ) {
-       *error_num = HA_ERR_OUT_OF_MEM;
-@@ -6017,9 +6021,10 @@ SPIDER_PARTITION_SHARE *spider_get_pt_share(
-     DBUG_PRINT("info",("spider create new pt share"));
-     if (!(partition_share = (SPIDER_PARTITION_SHARE *)
-       spider_bulk_malloc(spider_current_trx, 51, MYF(MY_WME | MY_ZEROFILL),
--        &partition_share, sizeof(*partition_share),
--        &tmp_name, table_share->path.length + 1,
--        &tmp_cardinality, sizeof(*tmp_cardinality) * table_share->fields,
-+        &partition_share, (uint) (sizeof(*partition_share)),
-+        &tmp_name, (uint) (table_share->path.length + 1),
-+        &tmp_cardinality,
-+          (uint) (sizeof(*tmp_cardinality) * table_share->fields),
-         NullS))
-     ) {
-       *error_num = HA_ERR_OUT_OF_MEM;
-@@ -6395,15 +6400,18 @@ int spider_open_all_tables(
- 
-       if (!(share = (SPIDER_SHARE *)
-         spider_bulk_malloc(spider_current_trx, 52, MYF(MY_WME | MY_ZEROFILL),
--          &share, sizeof(*share),
--          &connect_info, sizeof(char *) * SPIDER_TMP_SHARE_CHAR_PTR_COUNT,
--          &connect_info_length, sizeof(uint) * SPIDER_TMP_SHARE_UINT_COUNT,
--          &long_info, sizeof(long) * SPIDER_TMP_SHARE_LONG_COUNT,
--          &longlong_info, sizeof(longlong) * SPIDER_TMP_SHARE_LONGLONG_COUNT,
--          &conns, sizeof(SPIDER_CONN *),
--          &need_mon, sizeof(int),
--          &spider->conn_link_idx, sizeof(uint),
--          &spider->conn_can_fo, sizeof(uchar),
-+          &share, (uint) (sizeof(*share)),
-+          &connect_info,
-+            (uint) (sizeof(char *) * SPIDER_TMP_SHARE_CHAR_PTR_COUNT),
-+          &connect_info_length,
-+            (uint) (sizeof(uint) * SPIDER_TMP_SHARE_UINT_COUNT),
-+          &long_info, (uint) (sizeof(long) * SPIDER_TMP_SHARE_LONG_COUNT),
-+          &longlong_info,
-+            (uint) (sizeof(longlong) * SPIDER_TMP_SHARE_LONGLONG_COUNT),
-+          &conns, (uint) (sizeof(SPIDER_CONN *)),
-+          &need_mon, (uint) (sizeof(int)),
-+          &spider->conn_link_idx, (uint) (sizeof(uint)),
-+          &spider->conn_can_fo, (uint) (sizeof(uchar)),
-           NullS))
-       ) {
-         delete spider;
-@@ -7204,12 +7212,12 @@ int spider_db_init(
- 
-   if (!(spider_udf_table_mon_mutexes = (pthread_mutex_t *)
-     spider_bulk_malloc(NULL, 53, MYF(MY_WME | MY_ZEROFILL),
--      &spider_udf_table_mon_mutexes, sizeof(pthread_mutex_t) *
--        spider_param_udf_table_mon_mutex_count(),
--      &spider_udf_table_mon_conds, sizeof(pthread_cond_t) *
--        spider_param_udf_table_mon_mutex_count(),
--      &spider_udf_table_mon_list_hash, sizeof(HASH) *
--        spider_param_udf_table_mon_mutex_count(),
-+      &spider_udf_table_mon_mutexes, (uint) (sizeof(pthread_mutex_t) *
-+        spider_param_udf_table_mon_mutex_count()),
-+      &spider_udf_table_mon_conds, (uint) (sizeof(pthread_cond_t) *
-+        spider_param_udf_table_mon_mutex_count()),
-+      &spider_udf_table_mon_list_hash, (uint) (sizeof(HASH) *
-+        spider_param_udf_table_mon_mutex_count()),
-       NullS))
-   )
-     goto error_alloc_mon_mutxes;
-@@ -7258,10 +7266,10 @@ int spider_db_init(
- #ifndef WITHOUT_SPIDER_BG_SEARCH
-   if (!(spider_table_sts_threads = (SPIDER_THREAD *)
-     spider_bulk_malloc(NULL, 256, MYF(MY_WME | MY_ZEROFILL),
--      &spider_table_sts_threads, sizeof(SPIDER_THREAD) *
--        spider_param_table_sts_thread_count(),
--      &spider_table_crd_threads, sizeof(SPIDER_THREAD) *
--        spider_param_table_crd_thread_count(),
-+      &spider_table_sts_threads, (uint) (sizeof(SPIDER_THREAD) *
-+        spider_param_table_sts_thread_count()),
-+      &spider_table_crd_threads, (uint) (sizeof(SPIDER_THREAD) *
-+        spider_param_table_crd_thread_count()),
-       NullS))
-   )
-     goto error_alloc_mon_mutxes;
-@@ -7968,8 +7976,8 @@ SPIDER_INIT_ERROR_TABLE *spider_get_init_error_table(
-     }
-     if (!(spider_init_error_table = (SPIDER_INIT_ERROR_TABLE *)
-       spider_bulk_malloc(spider_current_trx, 54, MYF(MY_WME | MY_ZEROFILL),
--        &spider_init_error_table, sizeof(*spider_init_error_table),
--        &tmp_name, share->table_name_length + 1,
-+        &spider_init_error_table, (uint) (sizeof(*spider_init_error_table)),
-+        &tmp_name, (uint) (share->table_name_length + 1),
-         NullS))
-     ) {
-       pthread_mutex_unlock(&spider_init_error_tbl_mutex);
-@@ -9551,25 +9559,25 @@ int spider_create_spider_object_for_share(
- #if defined(HS_HAS_SQLCOM) && defined(HAVE_HANDLERSOCKET)
-   if (!(need_mons = (int *)
-     spider_bulk_malloc(spider_current_trx, 255, MYF(MY_WME | MY_ZEROFILL),
--      &need_mons, (sizeof(int) * share->link_count),
--      &conns, (sizeof(SPIDER_CONN *) * share->link_count),
--      &conn_link_idx, (sizeof(uint) * share->link_count),
--      &conn_can_fo, (sizeof(uchar) * share->link_bitmap_size),
--      &conn_keys, (sizeof(char *) * share->link_count),
--      &hs_r_conn_keys, (sizeof(char *) * share->link_count),
--      &hs_w_conn_keys, (sizeof(char *) * share->link_count),
--      &dbton_hdl, (sizeof(spider_db_handler *) * SPIDER_DBTON_SIZE),
-+      &need_mons, (uint) (sizeof(int) * share->link_count),
-+      &conns, (uint) (sizeof(SPIDER_CONN *) * share->link_count),
-+      &conn_link_idx, (uint) (sizeof(uint) * share->link_count),
-+      &conn_can_fo, (uint) (sizeof(uchar) * share->link_bitmap_size),
-+      &conn_keys, (uint) (sizeof(char *) * share->link_count),
-+      &hs_r_conn_keys, (uint) (sizeof(char *) * share->link_count),
-+      &hs_w_conn_keys, (uint) (sizeof(char *) * share->link_count),
-+      &dbton_hdl, (uint) (sizeof(spider_db_handler *) * SPIDER_DBTON_SIZE),
-       NullS))
-   )
- #else
-   if (!(need_mons = (int *)
-     spider_bulk_malloc(spider_current_trx, 255, MYF(MY_WME | MY_ZEROFILL),
--      &need_mons, (sizeof(int) * share->link_count),
--      &conns, (sizeof(SPIDER_CONN *) * share->link_count),
--      &conn_link_idx, (sizeof(uint) * share->link_count),
--      &conn_can_fo, (sizeof(uchar) * share->link_bitmap_size),
--      &conn_keys, (sizeof(char *) * share->link_count),
--      &dbton_hdl, (sizeof(spider_db_handler *) * SPIDER_DBTON_SIZE),
-+      &need_mons, (uint) (sizeof(int) * share->link_count),
-+      &conns, (uint) (sizeof(SPIDER_CONN *) * share->link_count),
-+      &conn_link_idx, (uint) (sizeof(uint) * share->link_count),
-+      &conn_can_fo, (uint) (sizeof(uchar) * share->link_bitmap_size),
-+      &conn_keys, (uint) (sizeof(char *) * share->link_count),
-+      &dbton_hdl, (uint) (sizeof(spider_db_handler *) * SPIDER_DBTON_SIZE),
-       NullS))
-   )
- #endif
-diff --git a/storage/spider/spd_trx.cc b/storage/spider/spd_trx.cc
-index bb9f11793cb..1638533eca1 100644
---- a/storage/spider/spd_trx.cc
-+++ b/storage/spider/spd_trx.cc
-@@ -548,81 +548,90 @@ int spider_create_trx_alter_table(
- 
-   if (!(alter_table = (SPIDER_ALTER_TABLE *)
-     spider_bulk_malloc(spider_current_trx, 55, MYF(MY_WME | MY_ZEROFILL),
--      &alter_table, sizeof(*alter_table),
--      &tmp_name, sizeof(char) * (share->table_name_length + 1),
--
--      &tmp_server_names, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_table_names, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_dbs, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_hosts, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_usernames, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_passwords, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_sockets, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_wrappers, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_ssl_cas, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_ssl_capaths, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_ssl_certs, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_ssl_ciphers, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_ssl_keys, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_default_files, sizeof(char *) * share->all_link_count,
--      &tmp_tgt_default_groups, sizeof(char *) * share->all_link_count,
--      &tmp_static_link_ids, sizeof(char *) * share->all_link_count,
--
--      &tmp_server_names_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_table_names_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_dbs_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_hosts_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_usernames_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_passwords_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_sockets_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_wrappers_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_ssl_cas_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_ssl_capaths_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_ssl_certs_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_ssl_ciphers_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_ssl_keys_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_default_files_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_tgt_default_groups_lengths, sizeof(uint) * share->all_link_count,
--      &tmp_static_link_ids_lengths, sizeof(uint) * share->all_link_count,
--
--      &tmp_tgt_ports, sizeof(long) * share->all_link_count,
--      &tmp_tgt_ssl_vscs, sizeof(long) * share->all_link_count,
-+      &alter_table, (uint) (sizeof(*alter_table)),
-+      &tmp_name, (uint) (sizeof(char) * (share->table_name_length + 1)),
-+
-+      &tmp_server_names, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_table_names, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_dbs, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_hosts, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_usernames, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_passwords, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_sockets, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_wrappers, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_ssl_cas, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_ssl_capaths, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_ssl_certs, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_ssl_ciphers, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_ssl_keys, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_default_files, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_tgt_default_groups, (uint) (sizeof(char *) * share->all_link_count),
-+      &tmp_static_link_ids, (uint) (sizeof(char *) * share->all_link_count),
-+
-+      &tmp_server_names_lengths, (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_table_names_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_dbs_lengths, (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_hosts_lengths, (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_usernames_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_passwords_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_sockets_lengths, (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_wrappers_lengths, (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_ssl_cas_lengths, (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_ssl_capaths_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_ssl_certs_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_ssl_ciphers_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_ssl_keys_lengths, (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_default_files_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_tgt_default_groups_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+      &tmp_static_link_ids_lengths,
-+        (uint) (sizeof(uint) * share->all_link_count),
-+
-+      &tmp_tgt_ports, (uint) (sizeof(long) * share->all_link_count),
-+      &tmp_tgt_ssl_vscs, (uint) (sizeof(long) * share->all_link_count),
-       &tmp_monitoring_binlog_pos_at_failing,
--        sizeof(long) * share->all_link_count,
--      &tmp_link_statuses, sizeof(long) * share->all_link_count,
--
--      &tmp_server_names_char, sizeof(char) *
--        (share_alter->tmp_server_names_charlen + 1),
--      &tmp_tgt_table_names_char, sizeof(char) *
--        (share_alter->tmp_tgt_table_names_charlen + 1),
--      &tmp_tgt_dbs_char, sizeof(char) *
--        (share_alter->tmp_tgt_dbs_charlen + 1),
--      &tmp_tgt_hosts_char, sizeof(char) *
--        (share_alter->tmp_tgt_hosts_charlen + 1),
--      &tmp_tgt_usernames_char, sizeof(char) *
--        (share_alter->tmp_tgt_usernames_charlen + 1),
--      &tmp_tgt_passwords_char, sizeof(char) *
--        (share_alter->tmp_tgt_passwords_charlen + 1),
--      &tmp_tgt_sockets_char, sizeof(char) *
--        (share_alter->tmp_tgt_sockets_charlen + 1),
--      &tmp_tgt_wrappers_char, sizeof(char) *
--        (share_alter->tmp_tgt_wrappers_charlen + 1),
--      &tmp_tgt_ssl_cas_char, sizeof(char) *
--        (share_alter->tmp_tgt_ssl_cas_charlen + 1),
--      &tmp_tgt_ssl_capaths_char, sizeof(char) *
--        (share_alter->tmp_tgt_ssl_capaths_charlen + 1),
--      &tmp_tgt_ssl_certs_char, sizeof(char) *
--        (share_alter->tmp_tgt_ssl_certs_charlen + 1),
--      &tmp_tgt_ssl_ciphers_char, sizeof(char) *
--        (share_alter->tmp_tgt_ssl_ciphers_charlen + 1),
--      &tmp_tgt_ssl_keys_char, sizeof(char) *
--        (share_alter->tmp_tgt_ssl_keys_charlen + 1),
--      &tmp_tgt_default_files_char, sizeof(char) *
--        (share_alter->tmp_tgt_default_files_charlen + 1),
--      &tmp_tgt_default_groups_char, sizeof(char) *
--        (share_alter->tmp_tgt_default_groups_charlen + 1),
--      &tmp_static_link_ids_char, sizeof(char) *
--        (share_alter->tmp_static_link_ids_charlen + 1),
-+        (uint) (sizeof(long) * share->all_link_count),
-+      &tmp_link_statuses, (uint) (sizeof(long) * share->all_link_count),
-+
-+      &tmp_server_names_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_server_names_charlen + 1)),
-+      &tmp_tgt_table_names_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_table_names_charlen + 1)),
-+      &tmp_tgt_dbs_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_dbs_charlen + 1)),
-+      &tmp_tgt_hosts_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_hosts_charlen + 1)),
-+      &tmp_tgt_usernames_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_usernames_charlen + 1)),
-+      &tmp_tgt_passwords_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_passwords_charlen + 1)),
-+      &tmp_tgt_sockets_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_sockets_charlen + 1)),
-+      &tmp_tgt_wrappers_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_wrappers_charlen + 1)),
-+      &tmp_tgt_ssl_cas_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_ssl_cas_charlen + 1)),
-+      &tmp_tgt_ssl_capaths_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_ssl_capaths_charlen + 1)),
-+      &tmp_tgt_ssl_certs_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_ssl_certs_charlen + 1)),
-+      &tmp_tgt_ssl_ciphers_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_ssl_ciphers_charlen + 1)),
-+      &tmp_tgt_ssl_keys_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_ssl_keys_charlen + 1)),
-+      &tmp_tgt_default_files_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_default_files_charlen + 1)),
-+      &tmp_tgt_default_groups_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_tgt_default_groups_charlen + 1)),
-+      &tmp_static_link_ids_char, (uint) (sizeof(char) *
-+        (share_alter->tmp_static_link_ids_charlen + 1)),
-       NullS))
-   ) {
-     error_num = HA_ERR_OUT_OF_MEM;
-@@ -1200,10 +1209,10 @@ SPIDER_TRX *spider_get_trx(
-     DBUG_PRINT("info",("spider create new trx"));
-     if (!(trx = (SPIDER_TRX *)
-       spider_bulk_malloc(NULL, 56, MYF(MY_WME | MY_ZEROFILL),
--        &trx, sizeof(*trx),
--        &tmp_share, sizeof(SPIDER_SHARE),
--        &udf_table_mutexes, sizeof(pthread_mutex_t) *
--          spider_param_udf_table_lock_mutex_count(),
-+        &trx, (uint) (sizeof(*trx)),
-+        &tmp_share, (uint) (sizeof(SPIDER_SHARE)),
-+        &udf_table_mutexes, (uint) (sizeof(pthread_mutex_t) *
-+          spider_param_udf_table_lock_mutex_count()),
-         NullS))
-     )
-       goto error_alloc_trx;
-@@ -4191,10 +4200,10 @@ int spider_create_trx_ha(
-   {
-     if (!(trx_ha = (SPIDER_TRX_HA *)
-       spider_bulk_malloc(spider_current_trx, 58, MYF(MY_WME),
--        &trx_ha, sizeof(SPIDER_TRX_HA),
--        &tmp_name, sizeof(char *) * (share->table_name_length + 1),
--        &conn_link_idx, sizeof(uint) * share->link_count,
--        &conn_can_fo, sizeof(uchar) * share->link_bitmap_size,
-+        &trx_ha, (uint) (sizeof(SPIDER_TRX_HA)),
-+        &tmp_name, (uint) (sizeof(char *) * (share->table_name_length + 1)),
-+        &conn_link_idx, (uint) (sizeof(uint) * share->link_count),
-+        &conn_can_fo, (uint) (sizeof(uchar) * share->link_bitmap_size),
-         NullS))
-     ) {
-       DBUG_RETURN(HA_ERR_OUT_OF_MEM);
--- 
-2.23.0
-
diff --git a/SOURCES/rh-skipped-tests-s390.list b/SOURCES/rh-skipped-tests-s390.list
index b7f91d6..c22a17f 100644
--- a/SOURCES/rh-skipped-tests-s390.list
+++ b/SOURCES/rh-skipped-tests-s390.list
@@ -3,3 +3,5 @@ perfschema.memory_aggregate_32bit :
 period.overlaps :
 # Fails since 10.5.9
 bugfix.wait_timeout :
+#Fails since 10.5.16
+innodb.row_size_error_log_warnings_3 :
diff --git a/SPECS/mariadb.spec b/SPECS/mariadb.spec
index 4467063..264fa77 100644
--- a/SPECS/mariadb.spec
+++ b/SPECS/mariadb.spec
@@ -15,7 +15,7 @@
 # The last version on which the full testsuite has been run
 # In case of further rebuilds of that version, don't require full testsuite to be run
 # run only "main" suite
-%global last_tested_version 10.5.12
+%global last_tested_version 10.5.16
 # Set to 1 to force run the testsuite even if it was already tested in current version
 %global force_run_testsuite 0
 
@@ -109,7 +109,7 @@
 %bcond_without unbundled_pcre
 %else
 %bcond_with unbundled_pcre
-%global pcre_bundled_version 10.37
+%global pcre_bundled_version 10.40
 %endif
 
 # Use main python interpretter version
@@ -147,8 +147,8 @@
 %global sameevr   %{epoch}:%{version}-%{release}
 
 Name:             mariadb
-Version:          10.5.13
-Release:          1%{?with_debug:.debug}%{?dist}
+Version:          10.5.16
+Release:          2%{?with_debug:.debug}%{?dist}
 Epoch:            3
 
 Summary:          A very fast and robust SQL database server
@@ -205,10 +205,6 @@ Source72:         mariadb-server-galera.te
 # https://github.com/dciabrin/wsrep_sst_rsync_tunnel/blob/master/wsrep_sst_rsync_tunnel
 Source73:         wsrep_sst_rsync_tunnel
 
-#   Patch1: OpenSSL 3 patch
-#   Picked from the upstream developement branch for MariaDB 10.8.
-#   https://jira.mariadb.org/browse/MDEV-25785
-Patch1:           %{pkgnamepatch}-openssl3.patch
 #   Patch4: Red Hat distributions specific logrotate fix
 #   it would be big unexpected change, if we start shipping it now. Better wait for MariaDB 10.2
 Patch4:           %{pkgnamepatch}-logrotate.patch
@@ -218,12 +214,6 @@ Patch7:           %{pkgnamepatch}-scripts.patch
 Patch9:           %{pkgnamepatch}-ownsetup.patch
 #   Patch10: Fix cipher name in the SSL Cipher name test
 Patch10:          %{pkgnamepatch}-ssl-cipher-tests.patch
-#   Patch11: Use PCDIR CMake option, if configured
-Patch11:          %{pkgnamepatch}-pcdir.patch
-#   Patch13: Fix Spider code on armv7hl; https://jira.mariadb.org/browse/MDEV-18737
-Patch13:          %{pkgnamepatch}-spider_on_armv7hl.patch
-#   Patch15:  Add option to edit groonga's and groonga-normalizer-mysql install path
-Patch15:          %{pkgnamepatch}-groonga.patch
 #   Patch16: Workaround for "chown 0" with priviledges dropped to "mysql" user
 Patch16:          %{pkgnamepatch}-auth_pam_tool_dir.patch
 #   Patch17: Revert of an upstream commit
@@ -738,16 +728,10 @@ rm -r storage/rocksdb/
 %endif
 
 
-%if 0%{?fedora} >= 35 || 0%{?rhel} >= 9
-%patch1 -p1
-%endif
 %patch4 -p1
 %patch7 -p1
 %patch9 -p1
 %patch10 -p1
-%patch11 -p1
-#%patch13 -p1
-%patch15 -p1
 %patch16 -p1
 %patch17 -R -p1
 
@@ -798,10 +782,6 @@ fi
 
 
 %build
-# This package has static probe points which do not currently
-# work with LTO and result in undefined symbols at link time.
-# This is being worked on in upstream GCC
-%define _lto_cflags %{nil}
 
 # fail quickly and obviously if user tries to build as root
 %if %runselftest
@@ -840,7 +820,6 @@ fi
          -DINSTALL_SBINDIR=libexec \
          -DINSTALL_SCRIPTDIR=bin \
          -DINSTALL_SUPPORTFILESDIR=share/%{pkg_name} \
-         -DINSTALL_PCDIR=%{_lib}/pkgconfig \
          -DMYSQL_DATADIR="%{dbdatadir}" \
          -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \
          -DTMPDIR=/var/tmp \
@@ -848,7 +827,7 @@ fi
          -DGROONGA_NORMALIZER_MYSQL_PROJECT_NAME=%{name}-server/groonga-normalizer-mysql \
          -DENABLED_LOCAL_INFILE=ON \
          -DENABLE_DTRACE=ON \
-         -DSECURITY_HARDENED=ON \
+         -DSECURITY_HARDENED=OFF \
          -DWITH_WSREP=%{?with_galera:ON}%{!?with_galera:OFF} \
          -DWITH_INNODB_DISALLOW_WRITES=%{?with_galera:ON}%{!?with_galera:OFF} \
          -DWITH_EMBEDDED_SERVER=%{?with_embedded:ON}%{!?with_embedded:OFF} \
@@ -876,6 +855,10 @@ fi
          -DCONNECT_WITH_JDBC=OFF \
 %{?with_debug: -DCMAKE_BUILD_TYPE=Debug -DWITH_ASAN=OFF -DWITH_INNODB_EXTRA_DEBUG=ON -DWITH_VALGRIND=ON}
 
+# The -DSECURITY_HARDENED is used to force a set of compilation flags for hardening
+# The issue is that the MariaDB upstream level of hardening is lower than expected by Red Hat
+# We disable this option to the default compilation flags (which have higher level of hardening) will be used
+
 
 CFLAGS="$CFLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
 # force PIC mode so that we can build libmysqld.so
@@ -904,7 +887,7 @@ export CFLAGS CXXFLAGS CPPFLAGS
 # Print all Cmake options values; "-LAH" means "List Advanced Help"
 cmake -B %{_vpath_builddir} -LAH
 
-%cmake_build -j2
+%cmake_build
 
 # build selinux policy
 %if %{with galera}
@@ -1154,7 +1137,8 @@ rm -r %{buildroot}%{_datadir}/%{pkg_name}/charsets
 rm %{buildroot}%{_datadir}/%{pkg_name}/errmsg-utf8.txt
 rm -r %{buildroot}%{_datadir}/%{pkg_name}/{english,czech,danish,dutch,estonian,\
 french,german,greek,hungarian,italian,japanese,korean,norwegian,norwegian-ny,\
-polish,portuguese,romanian,russian,serbian,slovak,spanish,swedish,ukrainian,hindi}
+polish,portuguese,romanian,russian,serbian,slovak,spanish,swedish,ukrainian,hindi,\
+bulgarian,chinese}
 %endif
 
 %if %{without test}
@@ -1367,6 +1351,8 @@ fi
 %lang(es) %{_datadir}/%{pkg_name}/spanish
 %lang(sv) %{_datadir}/%{pkg_name}/swedish
 %lang(uk) %{_datadir}/%{pkg_name}/ukrainian
+%lang(bg) %{_datadir}/%{pkg_name}/bulgarian
+%lang(zh) %{_datadir}/%{pkg_name}/chinese
 %endif
 
 %if %{with galera}
@@ -1637,6 +1623,15 @@ fi
 %endif
 
 %changelog
+* Mon Jun 13 2022 Michal Schorm <mschorm@redhat.com> - 3:10.5.16-2
+- Release bump for rebuild
+
+* Mon May 23 2022 Michal Schorm <mschorm@redhat.com> - 3:10.5.16-1
+- Rebase to 10.5.16
+
+* Sun Feb 20 2022 Michal Schorm <mschorm@redhat.com> - 3:10.5.15-1
+- Rebase to 10.5.15
+
 * Tue Jan 11 2022 Michal Schorm <mschorm@redhat.com> - 3:10.5.13-1
 - Rebase to 10.5.13
 - Add wsrep_sst_rsync_tunnel script