From fbe934cf742b0dcd522eeba447398e870603f7e8 Mon Sep 17 00:00:00 2001 From: Bjorn Munch Date: Mon, 23 Jun 2014 11:12:32 +0200 Subject: [PATCH] Fix aarch64 build, rebase cipherspec patch Signed-off-by: Bjorn Munch Signed-off-by: Honza Horak --- community-mysql-5.6.11-cipherspec.patch | 46 ++++++-- ...unity-mysql-5.6.19-gcc49-aarch64-opt.patch | 102 ++++++++++++++++++ community-mysql.spec | 8 +- 3 files changed, 149 insertions(+), 7 deletions(-) create mode 100644 community-mysql-5.6.19-gcc49-aarch64-opt.patch diff --git a/community-mysql-5.6.11-cipherspec.patch b/community-mysql-5.6.11-cipherspec.patch index a79e5b3..b0c5b09 100644 --- a/community-mysql-5.6.11-cipherspec.patch +++ b/community-mysql-5.6.11-cipherspec.patch @@ -5,10 +5,10 @@ and tests are adjusted to specify the expected cipher explicitly. Upstream bug report: http://bugs.mysql.com/bug.php?id=64461 diff --git a/client/mysqltest.cc b/client/mysqltest.cc -index b6c8643..0e40b0d 100644 +index 2def9bd..128dc00 100644 --- a/client/mysqltest.cc +++ b/client/mysqltest.cc -@@ -5496,6 +5496,7 @@ void do_connect(struct st_command *command) +@@ -5503,6 +5503,7 @@ void do_connect(struct st_command *command) my_bool con_pipe= 0, con_shm= 0, con_cleartext_enable= 0; my_bool con_secure_auth= 1; struct st_connection* con_slot; @@ -16,7 +16,7 @@ index b6c8643..0e40b0d 100644 static DYNAMIC_STRING ds_connection_name; static DYNAMIC_STRING ds_host; -@@ -5588,6 +5589,8 @@ void do_connect(struct st_command *command) +@@ -5595,6 +5596,8 @@ void do_connect(struct st_command *command) con_cleartext_enable= 1; else if (!strncmp(con_options, "SKIPSECUREAUTH",14)) con_secure_auth= 0; @@ -25,7 +25,7 @@ index b6c8643..0e40b0d 100644 else die("Illegal option to connect: %.*s", (int) (end - con_options), con_options); -@@ -5635,8 +5638,11 @@ void do_connect(struct st_command *command) +@@ -5642,8 +5645,11 @@ void do_connect(struct st_command *command) if (con_ssl) { #if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) @@ -38,8 +38,21 @@ index b6c8643..0e40b0d 100644 mysql_options(&con_slot->mysql, MYSQL_OPT_SSL_CRL, opt_ssl_crl); mysql_options(&con_slot->mysql, MYSQL_OPT_SSL_CRLPATH, opt_ssl_crlpath); #if MYSQL_VERSION_ID >= 50000 +diff --git a/mysql-test/r/openssl_1.result b/mysql-test/r/openssl_1.result +index a767a71..3c1ee27 100644 +--- a/mysql-test/r/openssl_1.result ++++ b/mysql-test/r/openssl_1.result +@@ -197,8 +197,6 @@ Variable_name Value + Ssl_cipher EDH-RSA-DES-CBC3-SHA + Variable_name Value + Ssl_cipher AES256-SHA +-Variable_name Value +-Ssl_cipher RC4-SHA + select 'is still running; no cipher request crashed the server' as result from dual; + result + is still running; no cipher request crashed the server diff --git a/mysql-test/t/openssl_1.test b/mysql-test/t/openssl_1.test -index 3e907f1..02b89ad 100644 +index 426de1e..f8c6203 100644 --- a/mysql-test/t/openssl_1.test +++ b/mysql-test/t/openssl_1.test @@ -20,13 +20,13 @@ grant select on test.* to ssl_user4@localhost require cipher "DHE-RSA-AES256-SHA @@ -70,7 +83,15 @@ index 3e907f1..02b89ad 100644 --echo End of 5.0 tests # -@@ -250,7 +250,7 @@ select 'is still running; no cipher request crashed the server' as result from d +@@ -215,7 +215,6 @@ DROP TABLE t1; + --exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-cipher=DHE-RSA-AES256-SHA + --exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-cipher=EDH-RSA-DES-CBC3-SHA + --exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-cipher=AES256-SHA +---exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl-cipher=RC4-SHA + --disable_query_log + --disable_result_log + +@@ -250,7 +249,7 @@ select 'is still running; no cipher request crashed the server' as result from d GRANT SELECT ON test.* TO bug42158@localhost REQUIRE X509; FLUSH PRIVILEGES; @@ -79,6 +100,19 @@ index 3e907f1..02b89ad 100644 SHOW STATUS LIKE 'Ssl_cipher'; disconnect con1; connection default; +diff --git a/mysql-test/t/plugin_auth_sha256_tls.test b/mysql-test/t/plugin_auth_sha256_tls.test +index f99df8a..1b38fda 100644 +--- a/mysql-test/t/plugin_auth_sha256_tls.test ++++ b/mysql-test/t/plugin_auth_sha256_tls.test +@@ -1,7 +1,7 @@ + --source include/not_embedded.inc + --source include/have_ssl.inc + +-connect (ssl_con,localhost,root,,,,,SSL); ++connect (ssl_con,localhost,root,,,,,SSL CIPHER:DHE-RSA-AES256-SHA); + SHOW STATUS LIKE 'Ssl_cipher'; + + CREATE USER 'kristofer' IDENTIFIED WITH 'sha256_password'; diff --git a/mysql-test/t/ssl.test b/mysql-test/t/ssl.test index ea8be39..c61ca8b 100644 --- a/mysql-test/t/ssl.test diff --git a/community-mysql-5.6.19-gcc49-aarch64-opt.patch b/community-mysql-5.6.19-gcc49-aarch64-opt.patch new file mode 100644 index 0000000..ed3e295 --- /dev/null +++ b/community-mysql-5.6.19-gcc49-aarch64-opt.patch @@ -0,0 +1,102 @@ +diff --git a/storage/perfschema/pfs_account.cc b/storage/perfschema/pfs_account.cc +index 405364a..ed3bef1 100644 +--- a/storage/perfschema/pfs_account.cc ++++ b/storage/perfschema/pfs_account.cc +@@ -201,6 +201,13 @@ static void set_account_key(PFS_account_key *key, + key->m_key_length= ptr - &key->m_hash_key[0]; + } + ++#if defined(__aarch64__) ++PFS_account * ++find_or_create_account(PFS_thread *thread, ++ const char *username, uint username_length, ++ const char *hostname, uint hostname_length) __attribute__((optimize (1))); ++#endif ++ + PFS_account * + find_or_create_account(PFS_thread *thread, + const char *username, uint username_length, +diff --git a/storage/perfschema/pfs_digest.cc b/storage/perfschema/pfs_digest.cc +index addfac1..68e76cd 100644 +--- a/storage/perfschema/pfs_digest.cc ++++ b/storage/perfschema/pfs_digest.cc +@@ -168,6 +168,14 @@ static LF_PINS* get_digest_hash_pins(PFS_thread *thread) + return thread->m_digest_hash_pins; + } + ++#if defined(__aarch64__) ++PFS_statement_stat* ++find_or_create_digest(PFS_thread *thread, ++ PSI_digest_storage *digest_storage, ++ const char *schema_name, ++ uint schema_name_length) __attribute__((optimize (1))); ++#endif ++ + PFS_statement_stat* + find_or_create_digest(PFS_thread *thread, + PSI_digest_storage *digest_storage, +diff --git a/storage/perfschema/pfs_host.cc b/storage/perfschema/pfs_host.cc +index 0c6f5cf..fc624d7 100644 +--- a/storage/perfschema/pfs_host.cc ++++ b/storage/perfschema/pfs_host.cc +@@ -193,6 +193,11 @@ static void set_host_key(PFS_host_key *key, + key->m_key_length= ptr - &key->m_hash_key[0]; + } + ++#if defined(__aarch64__) ++PFS_host *find_or_create_host(PFS_thread *thread, ++ const char *hostname, uint hostname_length) __attribute__((optimize (1))); ++#endif ++ + PFS_host *find_or_create_host(PFS_thread *thread, + const char *hostname, uint hostname_length) + { +diff --git a/storage/perfschema/pfs_instr.cc b/storage/perfschema/pfs_instr.cc +index cf0e6fd..8682e04 100644 +--- a/storage/perfschema/pfs_instr.cc ++++ b/storage/perfschema/pfs_instr.cc +@@ -1149,6 +1149,11 @@ LF_PINS* get_filename_hash_pins(PFS_thread *thread) + @param create create a file instance if none found + @return a file instance, or NULL + */ ++#if defined(__aarch64__) ++PFS_file* ++find_or_create_file(PFS_thread *thread, PFS_file_class *klass, ++ const char *filename, uint len, bool create) __attribute__((optimize (1))); ++#endif + PFS_file* + find_or_create_file(PFS_thread *thread, PFS_file_class *klass, + const char *filename, uint len, bool create) +diff --git a/storage/perfschema/pfs_instr_class.cc b/storage/perfschema/pfs_instr_class.cc +index 4d73396..139a2db 100644 +--- a/storage/perfschema/pfs_instr_class.cc ++++ b/storage/perfschema/pfs_instr_class.cc +@@ -1233,6 +1233,11 @@ static int compare_keys(PFS_table_share *pfs, const TABLE_SHARE *share) + @param share table share + @return a table share, or NULL + */ ++#if defined(__aarch64__) ++PFS_table_share* find_or_create_table_share(PFS_thread *thread, ++ bool temporary, ++ const TABLE_SHARE *share) __attribute__((optimize (1))); ++#endif + PFS_table_share* find_or_create_table_share(PFS_thread *thread, + bool temporary, + const TABLE_SHARE *share) +diff --git a/storage/perfschema/pfs_user.cc b/storage/perfschema/pfs_user.cc +index 9f53702..2f418a7 100644 +--- a/storage/perfschema/pfs_user.cc ++++ b/storage/perfschema/pfs_user.cc +@@ -193,6 +193,12 @@ static void set_user_key(PFS_user_key *key, + key->m_key_length= ptr - &key->m_hash_key[0]; + } + ++#if defined(__aarch64__) ++PFS_user * ++find_or_create_user(PFS_thread *thread, ++ const char *username, uint username_length) __attribute__((optimize (1))); ++#endif ++ + PFS_user * + find_or_create_user(PFS_thread *thread, + const char *username, uint username_length) diff --git a/community-mysql.spec b/community-mysql.spec index b771873..603d45f 100644 --- a/community-mysql.spec +++ b/community-mysql.spec @@ -16,7 +16,7 @@ Name: community-mysql Version: 5.6.19 -Release: 1%{?dist} +Release: 2%{?dist} Summary: MySQL client programs and shared libraries Group: Applications/Databases URL: http://www.mysql.com @@ -54,6 +54,7 @@ Patch24: community-mysql-man-pages.patch Patch25: community-mysql-5.6.16-mysql-install.patch Patch26: community-mysql-5.6.13-major.patch Patch34: community-mysql-pluginerrmsg.patch +Patch35: community-mysql-5.6.19-gcc49-aarch64-opt.patch BuildRequires: cmake BuildRequires: dos2unix @@ -242,6 +243,7 @@ the MySQL sources. %patch26 -p1 %endif %patch34 -p1 +%patch35 -p1 # Modify tests to pass on all archs pushd mysql-test @@ -651,6 +653,10 @@ popd %{_mandir}/man1/mysql_client_test.1* %changelog +* Thu Jun 12 2014 Bjorn Munch - 5.6.19-2 +- Fix build on aarch64 +- Rebase cipherspec patch + * Wed Jun 11 2014 Bjorn Munch - 5.6.19-1 - Update to MySQL 5.6.19, for various fixes described at https://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-19.html