Update to MySQL 5.7.14
This commit is contained in:
parent
a75507f56c
commit
083c748b2d
@ -1,113 +0,0 @@
|
|||||||
commit 34ee5b9ce2d3ab1ccfb91016ee058949c69c1066
|
|
||||||
Author: Norvald H. Ryeng <norvald.ryeng@oracle.com>
|
|
||||||
Date: Fri May 27 15:19:56 2016 +0200
|
|
||||||
|
|
||||||
Bug#23046775 DIFFERENT FLOATING POINT RESULTS ON ARM64 AND POWERPC
|
|
||||||
|
|
||||||
Backport from trunk.
|
|
||||||
|
|
||||||
Problem: The -fexpensive-optimizations option to gcc causes ARM64 and
|
|
||||||
PowerPC build to compute floating point operations slightly
|
|
||||||
differently from other platforms. This flag is enabled by -O2 and
|
|
||||||
higher optimization levels.
|
|
||||||
|
|
||||||
Fix: Check for the unwanted floating point behavior in CMake and
|
|
||||||
disable expensive-optimizations in GCC builds on platforms that
|
|
||||||
experience this behavior.
|
|
||||||
|
|
||||||
diff --git a/cmake/build_configurations/compiler_options.cmake b/cmake/build_configurations/compiler_options.cmake
|
|
||||||
index 98d553a..f105c7a 100644
|
|
||||||
--- a/cmake/build_configurations/compiler_options.cmake
|
|
||||||
+++ b/cmake/build_configurations/compiler_options.cmake
|
|
||||||
@@ -15,6 +15,7 @@
|
|
||||||
|
|
||||||
INCLUDE(CheckCCompilerFlag)
|
|
||||||
INCLUDE(CheckCXXCompilerFlag)
|
|
||||||
+INCLUDE(cmake/floating_point.cmake)
|
|
||||||
|
|
||||||
IF(SIZEOF_VOIDP EQUAL 4)
|
|
||||||
SET(32BIT 1)
|
|
||||||
@@ -33,6 +34,10 @@ IF(UNIX)
|
|
||||||
IF(WITH_VALGRIND)
|
|
||||||
SET(COMMON_C_FLAGS "-fno-inline ${COMMON_C_FLAGS}")
|
|
||||||
ENDIF()
|
|
||||||
+ # Disable optimizations that change floating point results
|
|
||||||
+ IF(HAVE_C_FLOATING_POINT_OPTIMIZATION_PROBLEMS)
|
|
||||||
+ SET(COMMON_C_FLAGS "${COMMON_C_FLAGS} -fno-expensive-optimizations")
|
|
||||||
+ ENDIF()
|
|
||||||
SET(CMAKE_C_FLAGS_DEBUG "${COMMON_C_FLAGS}")
|
|
||||||
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 ${COMMON_C_FLAGS}")
|
|
||||||
ENDIF()
|
|
||||||
@@ -48,6 +53,10 @@ IF(UNIX)
|
|
||||||
IF(WITH_VALGRIND)
|
|
||||||
SET(COMMON_CXX_FLAGS "-fno-inline ${COMMON_CXX_FLAGS}")
|
|
||||||
ENDIF()
|
|
||||||
+ # Disable optimizations that change floating point results
|
|
||||||
+ IF(HAVE_CXX_FLOATING_POINT_OPTIMIZATION_PROBLEMS)
|
|
||||||
+ SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} -fno-expensive-optimizations")
|
|
||||||
+ ENDIF()
|
|
||||||
SET(CMAKE_CXX_FLAGS_DEBUG "${COMMON_CXX_FLAGS}")
|
|
||||||
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 ${COMMON_CXX_FLAGS}")
|
|
||||||
ENDIF()
|
|
||||||
diff --git a/cmake/floating_point.cmake b/cmake/floating_point.cmake
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..6db63ad
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/cmake/floating_point.cmake
|
|
||||||
@@ -0,0 +1,56 @@
|
|
||||||
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
+#
|
|
||||||
+# 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
|
|
||||||
+# the Free Software Foundation; version 2 of the License.
|
|
||||||
+#
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program; if not, write to the Free Software
|
|
||||||
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
+
|
|
||||||
+INCLUDE(CheckCSourceRuns)
|
|
||||||
+INCLUDE(CheckCXXSourceRuns)
|
|
||||||
+
|
|
||||||
+SET(code "
|
|
||||||
+ int main (int argc, char **argv)
|
|
||||||
+ {
|
|
||||||
+ double n[21] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
+ 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,1 };
|
|
||||||
+ double m= 0, s= 0;
|
|
||||||
+ int i;
|
|
||||||
+ for(i= 0; i < 21; i++)
|
|
||||||
+ {
|
|
||||||
+ double m_kminusone= m;
|
|
||||||
+ m= m_kminusone + (n[i] - m_kminusone) / (double) (i + 2);
|
|
||||||
+ s= s + (n[i] - m_kminusone) * (n[i] - m);
|
|
||||||
+ }
|
|
||||||
+ /*
|
|
||||||
+ s should now be either 5e 74 d1 45 17 5d 14 40 or
|
|
||||||
+ 40 14 5d 17 45 d1 74 5e, depending on endianness. If the floating point
|
|
||||||
+ operations are over optimized, the least significant byte is 5d instead
|
|
||||||
+ of 5e.
|
|
||||||
+ */
|
|
||||||
+ return (*(unsigned char*)(&s) == 0x5e ||
|
|
||||||
+ *((unsigned char*)(&s) + 7) == 0x5e);
|
|
||||||
+ }"
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
+SET(SAVE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
|
||||||
+SET(CMAKE_REQUIRED_FLAGS
|
|
||||||
+ "${CMAKE_REQUIRED_FLAGS} -O3 -fexpensive-optimizations"
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
+IF(CMAKE_COMPILER_IS_GNUCC)
|
|
||||||
+ CHECK_C_SOURCE_RUNS("${code}" HAVE_C_FLOATING_POINT_OPTIMIZATION_PROBLEMS)
|
|
||||||
+ENDIF()
|
|
||||||
+
|
|
||||||
+IF(CMAKE_COMPILER_IS_GNUCXX)
|
|
||||||
+ CHECK_CXX_SOURCE_RUNS("${code}" HAVE_CXX_FLOATING_POINT_OPTIMIZATION_PROBLEMS)
|
|
||||||
+ENDIF()
|
|
||||||
+
|
|
||||||
+SET(CMAKE_REQUIRED_FLAGS "${SAVE_CMAKE_REQUIRED_FLAGS}")
|
|
@ -1,14 +0,0 @@
|
|||||||
diff --git a/client/auth_utils.cc b/client/auth_utils.cc
|
|
||||||
index 21416bb..03fd71c 100644
|
|
||||||
--- a/client/auth_utils.cc
|
|
||||||
+++ b/client/auth_utils.cc
|
|
||||||
@@ -61,7 +61,7 @@ int parse_cnf_file(istream &sin, map<string, string > *options,
|
|
||||||
getline(sin, option_value);
|
|
||||||
trim(&option_value);
|
|
||||||
if (option_name.length() > 0)
|
|
||||||
- options->insert(make_pair<string, string >(option_name, option_value));
|
|
||||||
+ options->insert(make_pair(option_name, option_value));
|
|
||||||
}
|
|
||||||
return ALL_OK;
|
|
||||||
} catch(...)
|
|
||||||
|
|
@ -1,113 +0,0 @@
|
|||||||
From 41480c0bacf8f354610825856b5c66b8516da607 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jon Olav Hauglid <jon.hauglid@oracle.com>
|
|
||||||
Date: Fri, 1 Jul 2016 09:00:16 +0200
|
|
||||||
Subject: [PATCH] Bug#23708332: -DWITH_EDITLINE=SYSTEM BREAKS WITH
|
|
||||||
LIBEDIT-20160618-3.1
|
|
||||||
|
|
||||||
Add CMake check for the new editline completion API
|
|
||||||
and based on the result, use already existing code
|
|
||||||
for it in the mysql client.
|
|
||||||
|
|
||||||
Change-Id: I8a9a721de24eef6359d3285cffd9745a8894ea4b
|
|
||||||
---
|
|
||||||
client/mysql.cc | 8 ++++----
|
|
||||||
cmake/readline.cmake | 22 +++++++++++++++++++---
|
|
||||||
config.h.cmake | 1 +
|
|
||||||
3 files changed, 24 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/client/mysql.cc b/client/mysql.cc
|
|
||||||
index 94c3227..46147e9 100644
|
|
||||||
--- a/client/mysql.cc
|
|
||||||
+++ b/client/mysql.cc
|
|
||||||
@@ -2816,7 +2816,7 @@ C_MODE_END
|
|
||||||
if not.
|
|
||||||
*/
|
|
||||||
|
|
||||||
-#if defined(USE_NEW_READLINE_INTERFACE)
|
|
||||||
+#if defined(USE_NEW_EDITLINE_INTERFACE)
|
|
||||||
static int fake_magic_space(int, int);
|
|
||||||
extern "C" char *no_completion(const char*,int)
|
|
||||||
#elif defined(USE_LIBEDIT_INTERFACE)
|
|
||||||
@@ -2845,7 +2845,7 @@ static int not_in_history(const char *line)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-#if defined(USE_NEW_READLINE_INTERFACE)
|
|
||||||
+#if defined(USE_NEW_EDITLINE_INTERFACE)
|
|
||||||
static int fake_magic_space(int, int)
|
|
||||||
#else
|
|
||||||
static int fake_magic_space(const char *, int)
|
|
||||||
@@ -2862,7 +2862,7 @@ static void initialize_readline (char *name)
|
|
||||||
rl_readline_name = name;
|
|
||||||
|
|
||||||
/* Tell the completer that we want a crack first. */
|
|
||||||
-#if defined(USE_NEW_READLINE_INTERFACE)
|
|
||||||
+#if defined(USE_NEW_EDITLINE_INTERFACE)
|
|
||||||
rl_attempted_completion_function= (rl_completion_func_t*)&new_mysql_completion;
|
|
||||||
rl_completion_entry_function= (rl_compentry_func_t*)&no_completion;
|
|
||||||
|
|
||||||
@@ -2890,7 +2890,7 @@ static char **new_mysql_completion(const char *text,
|
|
||||||
int end MY_ATTRIBUTE((unused)))
|
|
||||||
{
|
|
||||||
if (!status.batch && !quick)
|
|
||||||
-#if defined(USE_NEW_READLINE_INTERFACE)
|
|
||||||
+#if defined(USE_NEW_EDITLINE_INTERFACE)
|
|
||||||
return rl_completion_matches(text, new_command_generator);
|
|
||||||
#else
|
|
||||||
return completion_matches((char *)text, (CPFunction *)new_command_generator);
|
|
||||||
diff --git a/cmake/readline.cmake b/cmake/readline.cmake
|
|
||||||
index 00ecc53..8aed8cb 100644
|
|
||||||
--- a/cmake/readline.cmake
|
|
||||||
+++ b/cmake/readline.cmake
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
+# Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
@@ -158,12 +158,28 @@ MACRO (FIND_SYSTEM_EDITLINE)
|
|
||||||
completion_matches(0,0);
|
|
||||||
return res;
|
|
||||||
}"
|
|
||||||
- EDITLINE_HAVE_COMPLETION)
|
|
||||||
+ EDITLINE_HAVE_COMPLETION_INT)
|
|
||||||
|
|
||||||
- IF(EDITLINE_HAVE_COMPLETION)
|
|
||||||
+ CHECK_CXX_SOURCE_COMPILES("
|
|
||||||
+ #include <stdio.h>
|
|
||||||
+ #include <readline.h>
|
|
||||||
+ int main(int argc, char **argv)
|
|
||||||
+ {
|
|
||||||
+ typedef char* MYFunction(const char*, int);
|
|
||||||
+ MYFunction* myf= rl_completion_entry_function;
|
|
||||||
+ char *res= (myf)(NULL, 0);
|
|
||||||
+ completion_matches(0,0);
|
|
||||||
+ return res != NULL;
|
|
||||||
+ }"
|
|
||||||
+ EDITLINE_HAVE_COMPLETION_CHAR)
|
|
||||||
+
|
|
||||||
+ IF(EDITLINE_HAVE_COMPLETION_INT OR EDITLINE_HAVE_COMPLETION_CHAR)
|
|
||||||
SET(HAVE_HIST_ENTRY ${EDITLINE_HAVE_HIST_ENTRY})
|
|
||||||
SET(USE_LIBEDIT_INTERFACE 1)
|
|
||||||
SET(EDITLINE_FOUND 1)
|
|
||||||
+ IF(EDITLINE_HAVE_COMPLETION_CHAR)
|
|
||||||
+ SET(USE_NEW_EDITLINE_INTERFACE 1)
|
|
||||||
+ ENDIF()
|
|
||||||
ENDIF()
|
|
||||||
ENDIF()
|
|
||||||
ENDMACRO()
|
|
||||||
diff --git a/config.h.cmake b/config.h.cmake
|
|
||||||
index f0a11c4..388442c 100644
|
|
||||||
--- a/config.h.cmake
|
|
||||||
+++ b/config.h.cmake
|
|
||||||
@@ -276,6 +276,7 @@
|
|
||||||
#cmakedefine HAVE_NCURSES_H 1
|
|
||||||
#cmakedefine USE_LIBEDIT_INTERFACE 1
|
|
||||||
#cmakedefine HAVE_HIST_ENTRY 1
|
|
||||||
+#cmakedefine USE_NEW_EDITLINE_INTERFACE 1
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Libedit
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
|||||||
commit 6c23035b52284c2575f297311dfd0278bcbb0dd1
|
|
||||||
Author: Christopher Powers <chris.powers@oracle.com>
|
|
||||||
Date: Mon May 2 19:43:31 2016 +0100
|
|
||||||
|
|
||||||
Bug#23186653 PERFORMANCE SCHEMA UNIT TESTS PFS_INSTR-OOM & PFS_INSTR_CLASS FAIL REGULARLY
|
|
||||||
|
|
||||||
Two test cases pass on Windows but crash on Linux due to different init paths.
|
|
||||||
Now pass on both.
|
|
||||||
|
|
||||||
diff --git a/storage/perfschema/unittest/pfs_instr-oom-t.cc b/storage/perfschema/unittest/pfs_instr-oom-t.cc
|
|
||||||
index db74c9c..b6bc818 100644
|
|
||||||
--- a/storage/perfschema/unittest/pfs_instr-oom-t.cc
|
|
||||||
+++ b/storage/perfschema/unittest/pfs_instr-oom-t.cc
|
|
||||||
@@ -232,12 +232,14 @@ void test_oom()
|
|
||||||
ok(cond_2 == NULL, "oom (create cond)");
|
|
||||||
|
|
||||||
/* Create file. */
|
|
||||||
- stub_alloc_always_fails = false;
|
|
||||||
PFS_thread fake_thread;
|
|
||||||
+ rc = init_instruments(¶m);
|
|
||||||
fake_thread.m_filename_hash_pins= NULL;
|
|
||||||
init_file_hash(¶m);
|
|
||||||
- rc = init_instruments(¶m);
|
|
||||||
- ok(rc == 0, "instances init");
|
|
||||||
+
|
|
||||||
+ stub_alloc_always_fails = true;
|
|
||||||
+ file_2 = find_or_create_file(&fake_thread, &dummy_file_class, "dummy", 5, true);
|
|
||||||
+ ok(file_2 == NULL, "oom (create file)");
|
|
||||||
|
|
||||||
stub_alloc_always_fails= false;
|
|
||||||
file_1= find_or_create_file(&fake_thread, &dummy_file_class, "dummy", 5, true);
|
|
||||||
@@ -245,10 +247,6 @@ void test_oom()
|
|
||||||
release_file(file_1);
|
|
||||||
cleanup_instruments();
|
|
||||||
|
|
||||||
- stub_alloc_always_fails= true;
|
|
||||||
- file_2= find_or_create_file(&fake_thread, &dummy_file_class, "dummy", 5, true);
|
|
||||||
- ok(file_2 == NULL, "oom (create file)");
|
|
||||||
-
|
|
||||||
/* Create socket. */
|
|
||||||
stub_alloc_always_fails = false;
|
|
||||||
rc = init_instruments(¶m);
|
|
||||||
@@ -422,7 +420,7 @@ void do_all_tests()
|
|
||||||
|
|
||||||
int main(int, char **)
|
|
||||||
{
|
|
||||||
- plan(28);
|
|
||||||
+ plan(32);
|
|
||||||
MY_INIT("pfs_instr-oom-t");
|
|
||||||
do_all_tests();
|
|
||||||
return 0;
|
|
26
community-mysql-5.7.14-buf-align.patch
Normal file
26
community-mysql-5.7.14-buf-align.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
--- a/storage/innobase/buf/buf0buf.cc
|
||||||
|
+++ b/storage/innobase/buf/buf0buf.cc
|
||||||
|
@@ -3855,14 +3855,17 @@ buf_block_from_ahi(const byte* ptr)
|
||||||
|
ut_ad(buf_chunk_map_ref == buf_chunk_map_reg);
|
||||||
|
ut_ad(!buf_pool_resizing);
|
||||||
|
|
||||||
|
- const byte* bound = reinterpret_cast<uintptr_t>(ptr)
|
||||||
|
- > srv_buf_pool_chunk_unit
|
||||||
|
- ? ptr - srv_buf_pool_chunk_unit : 0;
|
||||||
|
- it = chunk_map->upper_bound(bound);
|
||||||
|
+ buf_chunk_t* chunk;
|
||||||
|
+ it = chunk_map->upper_bound(ptr);
|
||||||
|
+
|
||||||
|
+ ut_a(it != chunk_map->begin());
|
||||||
|
|
||||||
|
- ut_a(it != chunk_map->end());
|
||||||
|
+ if (it == chunk_map->end()) {
|
||||||
|
+ chunk = chunk_map->rbegin()->second;
|
||||||
|
+ } else {
|
||||||
|
+ chunk = (--it)->second;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- buf_chunk_t* chunk = it->second;
|
||||||
|
ulint offs = ptr - chunk->blocks->frame;
|
||||||
|
|
||||||
|
offs >>= UNIV_PAGE_SIZE_SHIFT;
|
123
community-mysql-5.7.14-lz4.patch
Normal file
123
community-mysql-5.7.14-lz4.patch
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
|
||||||
|
Problem: The fix for bug #23607230 used xxhash symbols from liblz4,
|
||||||
|
but even though the xxhash symbols are exported by liblz4, the header
|
||||||
|
file is not part of the API, so compilation fails when building with
|
||||||
|
WITH_LZ4=system.
|
||||||
|
|
||||||
|
Fix: Build xxhash separately from liblz4 so that it's available both
|
||||||
|
when using system and bundled lz4 libraries.
|
||||||
|
---
|
||||||
|
extra/lz4/my_xxhash.h | 27 +++++++++++++++++++++++++++
|
||||||
|
libmysqld/CMakeLists.txt | 6 ++++++
|
||||||
|
sql/CMakeLists.txt | 6 ++++++
|
||||||
|
sql/rpl_write_set_handler.cc | 4 ++--
|
||||||
|
4 files changed, 41 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 extra/lz4/my_xxhash.h
|
||||||
|
|
||||||
|
diff --git a/extra/lz4/my_xxhash.h b/extra/lz4/my_xxhash.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..699c1b5
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/extra/lz4/my_xxhash.h
|
||||||
|
@@ -0,0 +1,27 @@
|
||||||
|
+#ifndef MY_XXHASH_H_INCLUDED
|
||||||
|
+#define MY_XXHASH_H_INCLUDED
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
+
|
||||||
|
+ 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
|
||||||
|
+ the Free Software Foundation; version 2 of the License.
|
||||||
|
+
|
||||||
|
+ This program is distributed in the hope that it will be useful,
|
||||||
|
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+ GNU General Public License for more details.
|
||||||
|
+
|
||||||
|
+ You should have received a copy of the GNU General Public License
|
||||||
|
+ along with this program; if not, write to the Free Software Foundation,
|
||||||
|
+ 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
|
||||||
|
+*/
|
||||||
|
+
|
||||||
|
+// Define a namespace prefix to all xxhash functions. This is done to
|
||||||
|
+// avoid conflict with xxhash symbols in liblz4.
|
||||||
|
+#define XXH_NAMESPACE MY_
|
||||||
|
+
|
||||||
|
+#include "xxhash.h"
|
||||||
|
+
|
||||||
|
+#endif // MY_XXHASH_H_INCLUDED
|
||||||
|
diff --git a/libmysqld/CMakeLists.txt b/libmysqld/CMakeLists.txt
|
||||||
|
index cb188ec..0093f2e 100644
|
||||||
|
--- a/libmysqld/CMakeLists.txt
|
||||||
|
+++ b/libmysqld/CMakeLists.txt
|
||||||
|
@@ -62,6 +62,7 @@ SET(SQL_EMBEDDED_SOURCES
|
||||||
|
libmysqld.c
|
||||||
|
${GEN_SOURCES}
|
||||||
|
${GEN_YACC_SOURCES}
|
||||||
|
+ ../extra/lz4/xxhash.c
|
||||||
|
../client/get_password.c
|
||||||
|
../libmysql/errmsg.c
|
||||||
|
../libmysql/libmysql.c
|
||||||
|
@@ -118,6 +119,11 @@ ADD_COMPILE_FLAGS(
|
||||||
|
COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
+ADD_COMPILE_FLAGS(
|
||||||
|
+ ../extra/lz4/xxhash.c
|
||||||
|
+ COMPILE_FLAGS -DXXH_NAMESPACE=MY_
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
# Fixes "C1128: number of sections exceeded object file format limit" in MSVC /MD
|
||||||
|
# The flag /bigobj is not added if the build is not /MD
|
||||||
|
IF(WIN32 AND CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||||
|
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
|
||||||
|
index 50352b1..ea42ff5 100644
|
||||||
|
--- a/sql/CMakeLists.txt
|
||||||
|
+++ b/sql/CMakeLists.txt
|
||||||
|
@@ -254,6 +254,7 @@ SET(SQL_SOURCE
|
||||||
|
${GEN_DIGEST_SOURCES}
|
||||||
|
${CONF_SOURCES}
|
||||||
|
${SQL_SHARED_SOURCES}
|
||||||
|
+ ../extra/lz4/xxhash.c
|
||||||
|
../libmysql/errmsg.c
|
||||||
|
../sql-common/client.c
|
||||||
|
../sql-common/client_plugin.c
|
||||||
|
@@ -314,6 +315,11 @@ ADD_COMPILE_FLAGS(
|
||||||
|
COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
+ADD_COMPILE_FLAGS(
|
||||||
|
+ ../extra/lz4/xxhash.c
|
||||||
|
+ COMPILE_FLAGS -DXXH_NAMESPACE=MY_
|
||||||
|
+)
|
||||||
|
+
|
||||||
|
# Fixes "C1128: number of sections exceeded object file format limit" in MSVC /MD
|
||||||
|
# The flag /bigobj is not added if the build is not WINDOWS_RUNTIME_MD (/MD)
|
||||||
|
IF(WINDOWS_RUNTIME_MD AND CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||||
|
diff --git a/sql/rpl_write_set_handler.cc b/sql/rpl_write_set_handler.cc
|
||||||
|
index 3897321..c7e778e 100644
|
||||||
|
--- a/sql/rpl_write_set_handler.cc
|
||||||
|
+++ b/sql/rpl_write_set_handler.cc
|
||||||
|
@@ -23,7 +23,7 @@
|
||||||
|
#include "table.h" // TABLE
|
||||||
|
|
||||||
|
#include "my_murmur3.h" // murmur3_32
|
||||||
|
-#include "xxhash.h" // xxHash
|
||||||
|
+#include "../extra/lz4/my_xxhash.h" // xxHash
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
#include <string>
|
||||||
|
@@ -61,7 +61,7 @@ template <class type> uint64 calc_hash(ulong algorithm, type T)
|
||||||
|
if(algorithm == HASH_ALGORITHM_MURMUR32)
|
||||||
|
return (murmur3_32((const uchar*)T, strlen(T), 0));
|
||||||
|
else
|
||||||
|
- return (XXH64((const uchar*)T, strlen(T), 0));
|
||||||
|
+ return (MY_XXH64((const uchar*)T, strlen(T), 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
|||||||
%{!?runselftest:%global runselftest 1}
|
%{!?runselftest:%global runselftest 1}
|
||||||
|
|
||||||
# Set this to 1 to see which tests fail
|
# Set this to 1 to see which tests fail
|
||||||
%global check_testsuite 1
|
%global check_testsuite 0
|
||||||
|
|
||||||
# set to 1 to enable
|
# set to 1 to enable
|
||||||
%global with_shared_lib_major_hack 1
|
%global with_shared_lib_major_hack 1
|
||||||
@ -79,7 +79,7 @@
|
|||||||
%global sameevr %{?epoch:%{epoch}:}%{version}-%{release}
|
%global sameevr %{?epoch:%{epoch}:}%{version}-%{release}
|
||||||
|
|
||||||
Name: community-mysql
|
Name: community-mysql
|
||||||
Version: 5.7.13
|
Version: 5.7.14
|
||||||
Release: 1%{?with_debug:.debug}%{?dist}
|
Release: 1%{?with_debug:.debug}%{?dist}
|
||||||
Summary: MySQL client programs and shared libraries
|
Summary: MySQL client programs and shared libraries
|
||||||
Group: Applications/Databases
|
Group: Applications/Databases
|
||||||
@ -120,10 +120,8 @@ Patch6: %{pkgnamepatch}-paths.patch
|
|||||||
# Patches specific for this mysql package
|
# Patches specific for this mysql package
|
||||||
Patch51: %{pkgnamepatch}-chain-certs.patch
|
Patch51: %{pkgnamepatch}-chain-certs.patch
|
||||||
Patch52: %{pkgnamepatch}-sharedir.patch
|
Patch52: %{pkgnamepatch}-sharedir.patch
|
||||||
Patch53: %{pkgnamepatch}-5.7.13-pfs-oom-unittest.patch
|
Patch53: %{pkgnamepatch}-5.7.14-lz4.patch
|
||||||
Patch54: %{pkgnamepatch}-5.7.13-fpu.patch
|
Patch54: %{pkgnamepatch}-5.7.14-buf-align.patch
|
||||||
Patch55: %{pkgnamepatch}-5.7.13-gcc6.patch
|
|
||||||
Patch56: %{pkgnamepatch}-5.7.13-libedit.patch
|
|
||||||
Patch70: %{pkgnamepatch}-5.7.9-major.patch
|
Patch70: %{pkgnamepatch}-5.7.9-major.patch
|
||||||
|
|
||||||
# Patches taken from boost 1.59
|
# Patches taken from boost 1.59
|
||||||
@ -385,8 +383,6 @@ the MySQL sources.
|
|||||||
%patch52 -p1
|
%patch52 -p1
|
||||||
%patch53 -p1
|
%patch53 -p1
|
||||||
%patch54 -p1
|
%patch54 -p1
|
||||||
%patch55 -p1
|
|
||||||
%patch56 -p1
|
|
||||||
%if %{with_shared_lib_major_hack}
|
%if %{with_shared_lib_major_hack}
|
||||||
%patch70 -p1
|
%patch70 -p1
|
||||||
%endif
|
%endif
|
||||||
@ -415,7 +411,7 @@ touch %{skiplist}
|
|||||||
add_test binlog.binlog_xa_prepared_disconnect : unstable test
|
add_test binlog.binlog_xa_prepared_disconnect : unstable test
|
||||||
add_test innodb.table_encrypt_kill : unstable test
|
add_test innodb.table_encrypt_kill : unstable test
|
||||||
|
|
||||||
# these tests fail in 5.7.13 on arm32
|
# these tests fail in 5.7.14 on arm32
|
||||||
%ifarch %arm
|
%ifarch %arm
|
||||||
# GIS related issue
|
# GIS related issue
|
||||||
add_test innodb_gis.1 : arm32 gis issue
|
add_test innodb_gis.1 : arm32 gis issue
|
||||||
@ -437,29 +433,9 @@ add_test perfschema.func_file_io : missing hw on arm32
|
|||||||
add_test perfschema.setup_objects : missing hw on arm32
|
add_test perfschema.setup_objects : missing hw on arm32
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# these tests fail in 5.7.13 on aarch64
|
# this test fail in 5.7.14 on ppc64* and aarch64
|
||||||
%ifarch aarch64
|
%ifarch ppc64 ppc64le aarch64
|
||||||
add_test innodb.innodb : missing correct value
|
add_test innodb.innodb : missing correct value
|
||||||
add_test innodb_fts.large_records : innodb assert
|
|
||||||
add_test main.ctype_big5 : innodb assert
|
|
||||||
add_test main.ctype_gbk : innodb assert
|
|
||||||
add_test main.ctype_utf8mb4_uca : innodb assert
|
|
||||||
add_test main.insert : innodb assert
|
|
||||||
add_test main.sp_trans : innodb assert
|
|
||||||
add_test sysschema.pr_diagnostics : innodb assert
|
|
||||||
add_test sys_vars.log_slow_admin_statements_func : innodb assert
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# these tests fail in 5.7.13 on ppc64*
|
|
||||||
%ifarch ppc64 ppc64le
|
|
||||||
add_test innodb.innodb : missing correct value
|
|
||||||
add_test main.ctype_big5 : innodb assert
|
|
||||||
add_test main.ctype_gbk : innodb assert
|
|
||||||
add_test main.insert : innodb assert
|
|
||||||
add_test main.innodb_mrr_cost_icp : innodb assert
|
|
||||||
add_test main.mysqldump : innodb assert
|
|
||||||
add_test sys_vars.log_slow_admin_statements_func : innodb assert
|
|
||||||
add_test parts.partition_int_innodb : parts issue
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
popd
|
popd
|
||||||
|
Loading…
Reference in New Issue
Block a user