Update to MySQL 5.7.14
This commit is contained in:
		
							parent
							
								
									a0bac69f97
								
							
						
					
					
						commit
						e32085d812
					
				| @ -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