diff --git a/packages/databases/mysql/package.mk b/packages/databases/mysql/package.mk index 97c02e75f5..0ea0d00ae2 100644 --- a/packages/databases/mysql/package.mk +++ b/packages/databases/mysql/package.mk @@ -17,7 +17,7 @@ ################################################################################ PKG_NAME="mysql" -PKG_VERSION="5.7.15" +PKG_VERSION="5.7.17" 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 index f993a59e2c..4c5aef58e6 100644 --- a/packages/databases/mysql/patches/mysql-0002-revert-floating-point-optimizations.patch +++ b/packages/databases/mysql/patches/mysql-0002-revert-floating-point-optimizations.patch @@ -1,93 +1,38 @@ 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 @@ +--- a/cmake/build_configurations/compiler_options.cmake 2016-12-19 09:18:07.169866414 +0000 ++++ b/cmake/build_configurations/compiler_options.cmake 2016-12-19 09:19:26.290338156 +0000 +@@ -15,8 +15,6 @@ INCLUDE(CheckCCompilerFlag) INCLUDE(CheckCXXCompilerFlag) +-INCLUDE(cmake/compiler_bugs.cmake) -INCLUDE(cmake/floating_point.cmake) IF(SIZEOF_VOIDP EQUAL 4) SET(32BIT 1) -@@ -34,10 +33,6 @@ +@@ -35,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") +- # Disable expensive-optimization if shift-or-optimization bug effective +- IF(HAVE_C_SHIFT_OR_OPTIMIZATION_BUG) +- SET(C_NO_EXPENSIVE_OPTIMIZATIONS TRUE) - 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}") + # Disable floating point expression contractions to avoid result differences + IF(HAVE_C_FLOATING_POINT_FUSED_MADD) + IF(HAVE_C_FP_CONTRACT_FLAG) +@@ -69,14 +63,6 @@ + IF(HAVE_CXX_SHIFT_OR_OPTIMIZATION_BUG) + SET(CXX_NO_EXPENSIVE_OPTIMIZATIONS TRUE) 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") +- # Disable floating point expression contractions to avoid result differences +- IF(HAVE_CXX_FLOATING_POINT_FUSED_MADD) +- IF(HAVE_CXX_FP_CONTRACT_FLAG) +- SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} -ffp-contract=off") +- ELSE() +- SET(CXX_NO_EXPENSIVE_OPTIMIZATIONS TRUE) +- ENDIF() - 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}") + IF(CXX_NO_EXPENSIVE_OPTIMIZATIONS) + SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} -fno-expensive-optimizations") + ENDIF()