Mercurial > hg > release > icedtea6-1.8
changeset 2085:4e8e7394fd77
S6539464, RH500077: Ensure Math functions return consistent results.
2010-09-03 Andrew John Hughes <ahughes@redhat.com>
* Makefile.am: Add new patch.
* patches/hotspot/original/6539464-consistent-math.patch:
Backport fix for S6539464 which ensures Math functions
return consistent results.
* NEWS: Updated.
author | Andrew John Hughes <ahughes@redhat.com> |
---|---|
date | Mon, 06 Sep 2010 14:48:38 +0100 |
parents | 59c86078a676 |
children | d3e0fe2c10b2 |
files | ChangeLog Makefile.am NEWS patches/hotspot/original/6539464-consistent-math.patch |
diffstat | 4 files changed, 90 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sun Aug 29 12:54:00 2010 +0200 +++ b/ChangeLog Mon Sep 06 14:48:38 2010 +0100 @@ -1,3 +1,11 @@ +2010-09-03 Andrew John Hughes <ahughes@redhat.com> + + * Makefile.am: Add new patch. + * patches/hotspot/original/6539464-consistent-math.patch: + Backport fix for S6539464 which ensures Math functions + return consistent results. + * NEWS: Updated. + 2010-08-27 Andrew John Hughes <ahughes@redhat.com> Matthias Klose <doko@ubuntu.com>
--- a/Makefile.am Sun Aug 29 12:54:00 2010 +0200 +++ b/Makefile.am Mon Sep 06 14:48:38 2010 +0100 @@ -400,7 +400,8 @@ patches/hotspot/original/icedtea-6778657-f2i-overflow.patch \ patches/hotspot/original/icedtea-6791168.patch \ patches/hotspot/original/icedtea-6793825-includedb.patch \ - patches/openjdk/6822370-reentrantreadwritelock.patch + patches/openjdk/6822370-reentrantreadwritelock.patch \ + patches/hotspot/original/6539464-consistent-math.patch endif if HAS_PAX
--- a/NEWS Sun Aug 29 12:54:00 2010 +0200 +++ b/NEWS Mon Sep 06 14:48:38 2010 +0100 @@ -5,6 +5,7 @@ - G266295: Provide font configuration for Gentoo. - Provide font configuration for RHEL 6. - S6951319: enable solaris builds using Sun Studio 12 update 1 (fixes PR398) + - S6539464, RH500077: Ensure java.lang.Math functions provide consistent results. - NetX: - Fix browser command in BasicService.showDocument(URL) - Run programs that inherit main(String[]) in their main-class
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/original/6539464-consistent-math.patch Mon Sep 06 14:48:38 2010 +0100 @@ -0,0 +1,79 @@ +# HG changeset patch +# User never +# Date 1239043997 25200 +# Node ID 819880572f0972750d759c1fa6f8705c33b42172 +# Parent 1f2abec697143b7575318be7db855e5e9f893e69 +6539464: Math.log() produces inconsistent results between successive runs. +Reviewed-by: kvn + +diff -r 1f2abec69714 -r 819880572f09 src/cpu/x86/vm/templateInterpreter_x86_64.cpp +--- openjdk.orig/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Fri Apr 03 18:51:31 2009 -0700 ++++ openjdk/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Mon Apr 06 11:53:17 2009 -0700 +@@ -1393,12 +1393,13 @@ + case Interpreter::empty : entry_point = ((InterpreterGenerator*) this)->generate_empty_entry(); break; + case Interpreter::accessor : entry_point = ((InterpreterGenerator*) this)->generate_accessor_entry(); break; + case Interpreter::abstract : entry_point = ((InterpreterGenerator*) this)->generate_abstract_entry(); break; +- case Interpreter::java_lang_math_sin : break; +- case Interpreter::java_lang_math_cos : break; +- case Interpreter::java_lang_math_tan : break; +- case Interpreter::java_lang_math_abs : break; +- case Interpreter::java_lang_math_log : break; +- case Interpreter::java_lang_math_log10 : break; ++ ++ case Interpreter::java_lang_math_sin : // fall thru ++ case Interpreter::java_lang_math_cos : // fall thru ++ case Interpreter::java_lang_math_tan : // fall thru ++ case Interpreter::java_lang_math_abs : // fall thru ++ case Interpreter::java_lang_math_log : // fall thru ++ case Interpreter::java_lang_math_log10 : // fall thru + case Interpreter::java_lang_math_sqrt : entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind); break; + default : ShouldNotReachHere(); break; + } +diff -r 1f2abec69714 -r 819880572f09 test/compiler/6539464/Test.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/hotspot/test/compiler/6539464/Test.java Mon Apr 06 11:53:17 2009 -0700 +@@ -0,0 +1,44 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code 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 ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/** ++ * @test ++ * @bug 6539464 ++ * @summary Math.log() produces inconsistent results between successive runs. ++ * ++ * @run main/othervm -Xcomp -XX:CompileOnly=Test.main Test ++ */ ++ ++public class Test { ++ static double log_value = 17197; ++ static double log_result = Math.log(log_value); ++ ++ public static void main(String[] args) throws Exception { ++ for (int i = 0; i < 1000000; i++) { ++ double log_result2 = Math.log(log_value); ++ if (log_result2 != log_result) { ++ throw new InternalError("Math.log produces inconsistent results: " + log_result2 + " != " + log_result); ++ } ++ } ++ } ++}