From 34c4f0c7f9179d5716b6545dbe651401fea4adc5 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 9 Sep 2016 02:02:34 -0700 Subject: [PATCH] mysql: update to 5.7.15 --- packages/databases/mysql/package.mk | 2 +- ...-revert-floating-point-optimizations.patch | 93 +++++++++++++++++++ 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 packages/databases/mysql/patches/mysql-0002-revert-floating-point-optimizations.patch diff --git a/packages/databases/mysql/package.mk b/packages/databases/mysql/package.mk index 7b2f4f62ad..9a5c8dc54a 100644 --- a/packages/databases/mysql/package.mk +++ b/packages/databases/mysql/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="mysql" -PKG_VERSION="5.7.13" +PKG_VERSION="5.7.15" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="LGPL" diff --git a/packages/databases/mysql/patches/mysql-0002-revert-floating-point-optimizations.patch b/packages/databases/mysql/patches/mysql-0002-revert-floating-point-optimizations.patch new file mode 100644 index 0000000000..f993a59e2c --- /dev/null +++ b/packages/databases/mysql/patches/mysql-0002-revert-floating-point-optimizations.patch @@ -0,0 +1,93 @@ +diff -Naur a/cmake/build_configurations/compiler_options.cmake b/cmake/build_configurations/compiler_options.cmake +--- a/cmake/build_configurations/compiler_options.cmake 2016-07-12 04:55:26.000000000 -0700 ++++ b/cmake/build_configurations/compiler_options.cmake 2016-09-09 01:56:54.715063581 -0700 +@@ -15,7 +15,6 @@ + + INCLUDE(CheckCCompilerFlag) + INCLUDE(CheckCXXCompilerFlag) +-INCLUDE(cmake/floating_point.cmake) + + IF(SIZEOF_VOIDP EQUAL 4) + SET(32BIT 1) +@@ -34,10 +33,6 @@ + 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() +@@ -53,10 +48,6 @@ + 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 -Naur a/cmake/floating_point.cmake b/cmake/floating_point.cmake +--- a/cmake/floating_point.cmake 2016-07-12 04:55:26.000000000 -0700 ++++ b/cmake/floating_point.cmake 1969-12-31 16:00:00.000000000 -0800 +@@ -1,56 +0,0 @@ +-# 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}")