From gnu_andrew at member.fsf.org Tue Sep 1 02:31:21 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Tue, 1 Sep 2009 10:31:21 +0100 Subject: Fix for PR381 Stackoverflow error with SecurityManager, signed jar and debug In-Reply-To: <1251727214.3836.105.camel@springer.wildebeest.org> References: <1251700435.3836.49.camel@springer.wildebeest.org> <1251727214.3836.105.camel@springer.wildebeest.org> Message-ID: <17c6771e0909010231s81cde37t8ef577cabd5265bb@mail.gmail.com> 2009/8/31 Mark Wielaard : > Hi, > > On Mon, 2009-08-31 at 08:33 +0200, Mark Wielaard wrote: >> 2009-08-31 ?Mark Wielaard ? >> ? ? ? ? ? ? Keith Seitz ? >> >> ? ? PR381 Stackoverflow error with SecurityManager, signed jar and debug >> ? ? * patches/icedtea-use-system-tzdata.patch: Updated to initialize >> ? ? JAVAZI_DIR once and inside a AccessController.doPrivileged() block. >> ? ? * patches/icedtea-timezone-default-permission.patch: New patch. >> ? ? * overlays/openjdk/jdk/test/java/util/TimeZone/ >> ? ? (TimeZoneDatePermissionCheck.java, TimeZoneDatePermissionCheck.sh): >> ? ? New test. >> ? ? * Makefile.am: Add new patch. >> ? ? * HACKING: Describe new patch. > > Lillian requested this changeset also be pushed on the 1.5 branch, which > I have just done after some quick build/smoke testing that everything > looked fine after the transplant. > > Should this also go onto the 1.6 branch? > > Cheers, > > Mark > > Sounds like a good idea to me. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From mjw at icedtea.classpath.org Tue Sep 1 03:53:49 2009 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Tue, 01 Sep 2009 10:53:49 +0000 Subject: /hg/release/icedtea6-1.6: PR381 Stackoverflow error with Securit... Message-ID: changeset b3106a2e4455 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=b3106a2e4455 author: Mark Wielaard date: Mon Aug 31 07:45:07 2009 +0200 PR381 Stackoverflow error with SecurityManager, signed jar and debug 2009-08-31 Mark Wielaard Keith Seitz * patches/icedtea-use-system-tzdata.patch: Updated to initialize JAVAZI_DIR once and inside a AccessController.doPrivileged() block. * patches/icedtea-timezone-default-permission.patch: New patch. * overlays/openjdk/jdk/test/java/util/TimeZone/ (TimeZoneDatePermissionCheck.java, TimeZoneDatePermissionCheck.sh): New test. * Makefile.am: Add new patch. * HACKING: Describe new patch. diffstat: 7 files changed, 184 insertions(+), 34 deletions(-) ChangeLog | 13 + HACKING | 8 - Makefile.am | 1 overlays/openjdk/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.java | 40 +++++ overlays/openjdk/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh | 61 ++++++++ patches/icedtea-timezone-default-permission.patch | 23 +++ patches/icedtea-use-system-tzdata.patch | 72 +++++----- diffs (273 lines): diff -r 64057113c917 -r b3106a2e4455 ChangeLog --- a/ChangeLog Thu Aug 27 17:43:31 2009 +0200 +++ b/ChangeLog Mon Aug 31 07:45:07 2009 +0200 @@ -1,3 +1,16 @@ 2009-08-27 Kees Cook + Keith Seitz + + PR381 Stackoverflow error with SecurityManager, signed jar and debug + * patches/icedtea-use-system-tzdata.patch: Updated to initialize + JAVAZI_DIR once and inside a AccessController.doPrivileged() block. + * patches/icedtea-timezone-default-permission.patch: New patch. + * overlays/openjdk/jdk/test/java/util/TimeZone/ + (TimeZoneDatePermissionCheck.java, TimeZoneDatePermissionCheck.sh): + New test. + * Makefile.am: Add new patch. + * HACKING: Describe new patch. + 2009-08-27 Kees Cook * patches/openjdk/oj100103-debugger-socket-overflow.patch: New. diff -r 64057113c917 -r b3106a2e4455 HACKING --- a/HACKING Thu Aug 27 17:43:31 2009 +0200 +++ b/HACKING Mon Aug 31 07:45:07 2009 +0200 @@ -114,8 +114,12 @@ The following patches are only applied t * icedtea-lucene-crash.patch: Fix lucene bad code generation bug #6707044. * icedtea-6700047-loopopts.patch: Fix partial peeling issue, bug #6700047. * icedtea-6712835-ifnode.patch: Fix infinite loop in PhaseIterGVN::transform. -* icedtea-timezone.patch : Makes java only look for time zone information in /etc/sysconfig/clock if /etc/localtime is not found (fix - for rh-489586) +* icedtea-timezone.patch : Makes java only look for time zone information in + /etc/sysconfig/clock if /etc/localtime is not found (fix for rh-489586) +* icedtea-timezone-default-permission.patch: Partial fix for PR381 + (in combination with icedtea-use-system-tzdata.patch) security check + debug printing overflow. Also in openjdk7 b22, but apparently lost + since b22 was from "before hg". * icedtea-dnd-filelists.patch: Fix drag and drop behaviour when dragging a file list between JVMs (S5079469). Backported from OpenJDK. * icedtea-signed-types-hot6.patch: Make use of unsigned/signed types explicit. * openjdk/6648816.patch: Backport of regression (NPE) fix in AccessControlContext diff -r 64057113c917 -r b3106a2e4455 Makefile.am --- a/Makefile.am Thu Aug 27 17:43:31 2009 +0200 +++ b/Makefile.am Mon Aug 31 07:45:07 2009 +0200 @@ -536,6 +536,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-rmi_amd64.patch \ patches/icedtea-tools.patch \ patches/icedtea-timezone.patch \ + patches/icedtea-timezone-default-permission.patch \ patches/icedtea-use-system-tzdata.patch \ patches/icedtea-headers.patch \ patches/hotspot/$(HSBUILD)/icedtea-headers.patch \ diff -r 64057113c917 -r b3106a2e4455 overlays/openjdk/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/overlays/openjdk/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.java Mon Aug 31 07:45:07 2009 +0200 @@ -0,0 +1,40 @@ +/* Testcase for PR381 Stackoverflow error with security manager, signed jars + and -Djava.security.debug set. + +Copyright (c) 2009, Red Hat Inc. + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. +*/ + + +import java.util.Date; + +/** + * Test class. Create a test keystore and dummy cert, create a jar file to + * sign with the test class in it. Sign it run it with the security manager + * on, plus accesscontroller debugging, will go into infinite recursion + * trying to get enough permissions for printing Date of failing + * certificate, unless fix is applied. + */ +public class TimeZoneDatePermissionCheck +{ + public static void main(String[] args) + { + System.out.println(new Date()); + } +} diff -r 64057113c917 -r b3106a2e4455 overlays/openjdk/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/overlays/openjdk/jdk/test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh Mon Aug 31 07:45:07 2009 +0200 @@ -0,0 +1,61 @@ +# Testcase for PR381 Stackoverflow error with security manager, signed jars +# and -Djava.security.debug set. +# +# Copyright (c) 2009, Red Hat Inc. +# +# This file is part of IcedTea. +# +# IcedTea 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; either version 2, or (at your option) +# any later version. +# +# IcedTea 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 IcedTea; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301 USA. + +# @test +# @bug 0000381 +# @summary Stackoverflow error with security manager, signed jars and debug. +# @build TimeZoneDatePermissionCheck +# @run shell TimeZoneDatePermissionCheck.sh + +# Set default if not run under jtreg from test dir itself +if [ "${TESTCLASSES}" = "" ] ; then + TESTCLASSES="." +fi +if [ "${TESTJAVA}" = "" ] ; then + TESTJAVA=/usr +fi + +# create a test keystore and dummy cert +rm -f ${TESTCLASSES}/timezonedatetest.store +${TESTJAVA}/bin/keytool -genkeypair -alias testcert \ + -keystore ${TESTCLASSES}/timezonedatetest.store \ + -storepass testpass -validity 360 \ + -dname "cn=Mark Wildebeest, ou=FreeSoft, o=Red Hat, c=NL" \ + -keypass testpass + +# create a jar file to sign with the test class in it. +rm -f ${TESTCLASSES}/timezonedatetest.jar +${TESTJAVA}/bin/jar cf \ + ${TESTCLASSES}/timezonedatetest.jar \ + -C ${TESTCLASSES} TimeZoneDatePermissionCheck.class + +# sign it +${TESTJAVA}/bin/jarsigner \ + -keystore ${TESTCLASSES}/timezonedatetest.store \ + -storepass testpass ${TESTCLASSES}/timezonedatetest.jar testcert + +# run it with the security manager on, plus accesscontroller debugging +# will go into infinite recursion trying to get enough permissions for +# printing Date of failing certificate unless fix is applied. +${TESTJAVA}/bin/java -Djava.security.manager \ + -Djava.security.debug=access,failure,policy \ + -cp ${TESTCLASSES}/timezonedatetest.jar TimeZoneDatePermissionCheck diff -r 64057113c917 -r b3106a2e4455 patches/icedtea-timezone-default-permission.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-timezone-default-permission.patch Mon Aug 31 07:45:07 2009 +0200 @@ -0,0 +1,23 @@ +--- openjdk7/jdk/src/share/classes/java/util/TimeZone.java 2009-08-04 18:54:13.026104895 +0200 ++++ openjdk/jdk/src/share/classes/java/util/TimeZone.java 2009-08-04 18:53:09.035985858 +0200 +@@ -602,11 +602,7 @@ + } + }); + +- if (hasPermission()) { +- defaultTimeZone = tz; +- } else { +- defaultZoneTL.set(tz); +- } ++ defaultTimeZone = tz; + return tz; + } + +@@ -637,6 +633,7 @@ + if (hasPermission()) { + synchronized (TimeZone.class) { + defaultTimeZone = zone; ++ defaultZoneTL.set(null); + } + } else { + defaultZoneTL.set(zone); diff -r 64057113c917 -r b3106a2e4455 patches/icedtea-use-system-tzdata.patch --- a/patches/icedtea-use-system-tzdata.patch Thu Aug 27 17:43:31 2009 +0200 +++ b/patches/icedtea-use-system-tzdata.patch Mon Aug 31 07:45:07 2009 +0200 @@ -1,14 +1,34 @@ ---- ../openjdkb23/openjdk/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2007-10-30 04:38:28.000000000 -0400 -+++ openjdk/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2007-11-13 13:16:52.000000000 -0500 -@@ -28,6 +28,7 @@ - import java.io.File; - import java.io.FileInputStream; - import java.io.FileNotFoundException; -+import java.security.AccessControlException; - import java.io.IOException; - import java.lang.ref.SoftReference; - import java.security.AccessController; -@@ -1021,11 +1022,29 @@ +--- openjdk6.orig/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java Sat Mar 15 13:43:05 2008 -0400 ++++ openjdk/jdk/src/share/classes/sun/util/calendar/ZoneInfoFile.java Fri Aug 21 11:34:56 2009 +0200 +@@ -465,6 +465,27 @@ + */ + public static final byte TAG_TZDataVersion = 68; + ++ // Cached location of the TZDATA files ++ private static final String JAVAZI_DIR = setup_JAVAZI_DIR(); ++ ++ private static String setup_JAVAZI_DIR() { ++ try { ++ final String dir = AccessController.doPrivileged ++ (new sun.security.action.GetPropertyAction("user.zoneinfo.dir")); ++ return AccessController.doPrivileged ++ (new PrivilegedExceptionAction() { ++ public String run() { ++ File f = new File(dir, "ZoneInfoMappings"); ++ if (f.exists()) ++ return dir; ++ return null; ++ } ++ }); ++ } catch (PrivilegedActionException e) { ++ return null; ++ } ++ } ++ + /** + * Excluded zones item tag. (Added in Mustang) + */ +@@ -1021,11 +1042,17 @@ byte[] buffer = null; try { @@ -17,29 +37,17 @@ - final String fname = homeDir + File.separator + "lib" + File.separator - + "zi" + File.separator + fileName; - buffer = (byte[]) AccessController.doPrivileged(new PrivilegedExceptionAction() { -+ String zi_dir = (String) AccessController.doPrivileged(new sun.security.action.GetPropertyAction("user.zoneinfo.dir")); -+ File dir = null; -+ if (zi_dir != null) -+ dir = new File(zi_dir); + -+ // Some minimal sanity checking -+ if (dir != null) { -+ try { -+ File f = new File(dir, "ZoneInfoMappings"); -+ if (!f.exists()) -+ dir = null; -+ } catch (AccessControlException ace) { -+ dir = null; -+ } -+ } ++ String zi_dir = JAVAZI_DIR; ++ if (zi_dir == null) { ++ // Fall back to JDK-supplied tzdata ++ String homeDir = (String) AccessController.doPrivileged(new sun.security.action.GetPropertyAction("java.home")); ++ zi_dir = homeDir + File.separator + "lib" + File.separator ++ + "zi"; ++ } + -+ if (dir == null) { -+ String homeDir = (String) AccessController.doPrivileged(new sun.security.action.GetPropertyAction("java.home")); -+ zi_dir = homeDir + File.separator + "lib" + File.separator -+ + "zi"; -+ } -+ final String fname = zi_dir + File.separator + fileName; -+ buffer = (byte[]) AccessController.doPrivileged(new PrivilegedExceptionAction() { ++ final String fname = zi_dir + File.separator + fileName; ++ buffer = (byte[]) AccessController.doPrivileged(new PrivilegedExceptionAction() { public Object run() throws IOException { File file = new File(fname); if (!file.canRead()) { From mjw at redhat.com Tue Sep 1 03:59:02 2009 From: mjw at redhat.com (Mark Wielaard) Date: Tue, 01 Sep 2009 12:59:02 +0200 Subject: Fix for PR381 Stackoverflow error with SecurityManager, signed jar and debug In-Reply-To: <17c6771e0909010231s81cde37t8ef577cabd5265bb@mail.gmail.com> References: <1251700435.3836.49.camel@springer.wildebeest.org> <1251727214.3836.105.camel@springer.wildebeest.org> <17c6771e0909010231s81cde37t8ef577cabd5265bb@mail.gmail.com> Message-ID: <1251802742.4273.9.camel@springer.wildebeest.org> Hi Andrew, On Tue, 2009-09-01 at 10:31 +0100, Andrew John Hughes wrote: > 2009/8/31 Mark Wielaard : > > On Mon, 2009-08-31 at 08:33 +0200, Mark Wielaard wrote: > >> 2009-08-31 Mark Wielaard > >> Keith Seitz > >> > >> PR381 Stackoverflow error with SecurityManager, signed jar and debug > >> * patches/icedtea-use-system-tzdata.patch: Updated to initialize > >> JAVAZI_DIR once and inside a AccessController.doPrivileged() block. > >> * patches/icedtea-timezone-default-permission.patch: New patch. > >> * overlays/openjdk/jdk/test/java/util/TimeZone/ > >> (TimeZoneDatePermissionCheck.java, TimeZoneDatePermissionCheck.sh): > >> New test. > >> * Makefile.am: Add new patch. > >> * HACKING: Describe new patch. > > > > Lillian requested this changeset also be pushed on the 1.5 branch, which > > I have just done after some quick build/smoke testing that everything > > looked fine after the transplant. > > > > Should this also go onto the 1.6 branch? > > > Sounds like a good idea to me. On irc Andrew Haley agreed. So I hg transplanted the commit. Did a quick build and check to see that it worked Passed: java/util/TimeZone/TimeZoneDatePermissionCheck.sh before pushing. Cheers, Mark From mjw at icedtea.classpath.org Tue Sep 1 06:20:59 2009 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Tue, 01 Sep 2009 13:20:59 +0000 Subject: /hg/release/icedtea6-1.6: PR377. SimpleTimeZone checks too stric... Message-ID: changeset 3013950f3909 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=3013950f3909 author: Mark Wielaard date: Sun Aug 30 17:58:20 2009 +0200 PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: New test. * patches/icedtea-simpletimezone-relax.patch: New patch. * Makefile.am: Add new patch. * HACKING: Describe new patch. diffstat: 5 files changed, 56 insertions(+) ChangeLog | 9 +++ HACKING | 2 Makefile.am | 1 overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java | 23 ++++++++++ patches/icedtea-simpletimezone-relax.patch | 21 +++++++++ diffs (91 lines): diff -r b3106a2e4455 -r 3013950f3909 ChangeLog --- a/ChangeLog Mon Aug 31 07:45:07 2009 +0200 +++ b/ChangeLog Sun Aug 30 17:58:20 2009 +0200 @@ -1,3 +1,12 @@ 2009-08-31 Mark Wielaard + + PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. + * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: + New test. + * patches/icedtea-simpletimezone-relax.patch: New patch. + * Makefile.am: Add new patch. + * HACKING: Describe new patch. + 2009-08-31 Mark Wielaard Keith Seitz diff -r b3106a2e4455 -r 3013950f3909 HACKING --- a/HACKING Mon Aug 31 07:45:07 2009 +0200 +++ b/HACKING Sun Aug 30 17:58:20 2009 +0200 @@ -116,6 +116,8 @@ The following patches are only applied t * icedtea-6712835-ifnode.patch: Fix infinite loop in PhaseIterGVN::transform. * icedtea-timezone.patch : Makes java only look for time zone information in /etc/sysconfig/clock if /etc/localtime is not found (fix for rh-489586) +* icedtea-simpletimezone-relax.patch: Fix for PR377, Jordan end of day rule + in Asia/Amman TimeZone. SimpleTimeZone checks too strict. * icedtea-timezone-default-permission.patch: Partial fix for PR381 (in combination with icedtea-use-system-tzdata.patch) security check debug printing overflow. Also in openjdk7 b22, but apparently lost diff -r b3106a2e4455 -r 3013950f3909 Makefile.am --- a/Makefile.am Mon Aug 31 07:45:07 2009 +0200 +++ b/Makefile.am Sun Aug 30 17:58:20 2009 +0200 @@ -537,6 +537,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-tools.patch \ patches/icedtea-timezone.patch \ patches/icedtea-timezone-default-permission.patch \ + patches/icedtea-simpletimezone-relax.patch \ patches/icedtea-use-system-tzdata.patch \ patches/icedtea-headers.patch \ patches/hotspot/$(HSBUILD)/icedtea-headers.patch \ diff -r b3106a2e4455 -r 3013950f3909 overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java Sun Aug 30 17:58:20 2009 +0200 @@ -0,0 +1,23 @@ +/* + * @test + * @bug 0000377 + * @summary SimpleTimeZone should accept start/end rules at end of day + */ + +import java.util.Calendar; +import java.util.SimpleTimeZone; + +public class EndOfDay +{ + public static void main(String[] args) + { + SimpleTimeZone stz; + stz = new SimpleTimeZone(0, "End/Day", + Calendar.MARCH, -1, Calendar.FRIDAY, + 24 * 60 * 60 * 1000, + Calendar.APRIL, 1, Calendar.THURSDAY, + 24 * 60 * 60 * 1000, + 3600000); + System.err.println(stz); + } +} diff -r b3106a2e4455 -r 3013950f3909 patches/icedtea-simpletimezone-relax.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-simpletimezone-relax.patch Sun Aug 30 17:58:20 2009 +0200 @@ -0,0 +1,21 @@ +diff -r 348fce38de3f src/share/classes/java/util/SimpleTimeZone.java +--- openjdk/jdk/src/share/classes/java/util/SimpleTimeZone.java Fri Jun 26 19:50:44 2009 +0400 ++++ openjdk/jdk/src/share/classes/java/util/SimpleTimeZone.java Sat Aug 29 22:36:41 2009 +0200 +@@ -1372,7 +1372,7 @@ + throw new IllegalArgumentException( + "Illegal start month " + startMonth); + } +- if (startTime < 0 || startTime >= millisPerDay) { ++ if (startTime < 0 || startTime > millisPerDay) { + throw new IllegalArgumentException( + "Illegal start time " + startTime); + } +@@ -1419,7 +1419,7 @@ + throw new IllegalArgumentException( + "Illegal end month " + endMonth); + } +- if (endTime < 0 || endTime >= millisPerDay) { ++ if (endTime < 0 || endTime > millisPerDay) { + throw new IllegalArgumentException( + "Illegal end time " + endTime); + } From mark at klomp.org Tue Sep 1 06:25:19 2009 From: mark at klomp.org (Mark Wielaard) Date: Tue, 01 Sep 2009 15:25:19 +0200 Subject: Jordan (Asia/Amman) versus SimpleTimeZone In-Reply-To: <1251648936.5795.17.camel@springer.wildebeest.org> References: <1251578474.3908.20.camel@springer.wildebeest.org> <4A9A71D4.50109@sun.com> <1251648936.5795.17.camel@springer.wildebeest.org> Message-ID: <1251811519.4205.29.camel@springer.wildebeest.org> On Sun, 2009-08-30 at 18:15 +0200, Mark Wielaard wrote: > I added it to IcedTea6 plus a new testcase for the general issue. > > 2009-08-30 Mark Wielaard > > PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. > * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: > New test. > * patches/icedtea-simpletimezone-relax.patch: New patch. > * Makefile.am: Add new patch. > * HACKING: Describe new patch. Now also on the 1.6 branch on request from Andrew (irc). Lillian, do you want it also on the 1.5 branch? Cheers, Mark From aph at redhat.com Tue Sep 1 07:23:45 2009 From: aph at redhat.com (Andrew Haley) Date: Tue, 01 Sep 2009 15:23:45 +0100 Subject: Jordan (Asia/Amman) versus SimpleTimeZone In-Reply-To: <1251811519.4205.29.camel@springer.wildebeest.org> References: <1251578474.3908.20.camel@springer.wildebeest.org> <4A9A71D4.50109@sun.com> <1251648936.5795.17.camel@springer.wildebeest.org> <1251811519.4205.29.camel@springer.wildebeest.org> Message-ID: <4A9D2E71.2010601@redhat.com> Mark Wielaard wrote: > On Sun, 2009-08-30 at 18:15 +0200, Mark Wielaard wrote: >> I added it to IcedTea6 plus a new testcase for the general issue. >> >> 2009-08-30 Mark Wielaard >> >> PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. >> * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: >> New test. >> * patches/icedtea-simpletimezone-relax.patch: New patch. >> * Makefile.am: Add new patch. >> * HACKING: Describe new patch. > > Now also on the 1.6 branch on request from Andrew (irc). > > Lillian, do you want it also on the 1.5 branch? I think this patch should be committed to all active branches. Andrew. From mjw at icedtea.classpath.org Tue Sep 1 08:14:47 2009 From: mjw at icedtea.classpath.org (mjw at icedtea.classpath.org) Date: Tue, 01 Sep 2009 15:14:47 +0000 Subject: /hg/release/icedtea6-1.5: PR377. SimpleTimeZone checks too stric... Message-ID: changeset e28e125f9a21 in /hg/release/icedtea6-1.5 details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=e28e125f9a21 author: Mark Wielaard date: Sun Aug 30 17:58:20 2009 +0200 PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: New test. * patches/icedtea-simpletimezone-relax.patch: New patch. * Makefile.am: Add new patch. * HACKING: Describe new patch. diffstat: 5 files changed, 56 insertions(+) ChangeLog | 9 +++ HACKING | 2 Makefile.am | 1 overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java | 23 ++++++++++ patches/icedtea-simpletimezone-relax.patch | 21 +++++++++ diffs (91 lines): diff -r cae52872f2d5 -r e28e125f9a21 ChangeLog --- a/ChangeLog Mon Aug 31 10:26:15 2009 -0400 +++ b/ChangeLog Sun Aug 30 17:58:20 2009 +0200 @@ -1,3 +1,12 @@ 2009-08-31 Lillian Angel + + PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. + * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: + New test. + * patches/icedtea-simpletimezone-relax.patch: New patch. + * Makefile.am: Add new patch. + * HACKING: Describe new patch. + 2009-08-31 Lillian Angel * configure.ac: bumped version. diff -r cae52872f2d5 -r e28e125f9a21 HACKING --- a/HACKING Mon Aug 31 10:26:15 2009 -0400 +++ b/HACKING Sun Aug 30 17:58:20 2009 +0200 @@ -114,6 +114,8 @@ The following patches are only applied t * icedtea-6712835-ifnode.patch: Fix infinite loop in PhaseIterGVN::transform. * icedtea-timezone.patch : Makes java only look for time zone information in /etc/sysconfig/clock if /etc/localtime is not found (fix for rh-489586) +* icedtea-simpletimezone-relax.patch: Fix for PR377, Jordan end of day rule + in Asia/Amman TimeZone. SimpleTimeZone checks too strict. * icedtea-timezone-default-permission.patch: Partial fix for PR381 (in combination with icedtea-use-system-tzdata.patch) security check debug printing overflow. Also in openjdk7 b22, but apparently lost diff -r cae52872f2d5 -r e28e125f9a21 Makefile.am --- a/Makefile.am Mon Aug 31 10:26:15 2009 -0400 +++ b/Makefile.am Sun Aug 30 17:58:20 2009 +0200 @@ -523,6 +523,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-demos.patch \ patches/icedtea-timezone.patch \ patches/icedtea-timezone-default-permission.patch \ + patches/icedtea-simpletimezone-relax.patch \ patches/icedtea-use-system-tzdata.patch \ patches/icedtea-headers.patch \ patches/hotspot/$(HSBUILD)/icedtea-headers.patch \ diff -r cae52872f2d5 -r e28e125f9a21 overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java Sun Aug 30 17:58:20 2009 +0200 @@ -0,0 +1,23 @@ +/* + * @test + * @bug 0000377 + * @summary SimpleTimeZone should accept start/end rules at end of day + */ + +import java.util.Calendar; +import java.util.SimpleTimeZone; + +public class EndOfDay +{ + public static void main(String[] args) + { + SimpleTimeZone stz; + stz = new SimpleTimeZone(0, "End/Day", + Calendar.MARCH, -1, Calendar.FRIDAY, + 24 * 60 * 60 * 1000, + Calendar.APRIL, 1, Calendar.THURSDAY, + 24 * 60 * 60 * 1000, + 3600000); + System.err.println(stz); + } +} diff -r cae52872f2d5 -r e28e125f9a21 patches/icedtea-simpletimezone-relax.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-simpletimezone-relax.patch Sun Aug 30 17:58:20 2009 +0200 @@ -0,0 +1,21 @@ +diff -r 348fce38de3f src/share/classes/java/util/SimpleTimeZone.java +--- openjdk/jdk/src/share/classes/java/util/SimpleTimeZone.java Fri Jun 26 19:50:44 2009 +0400 ++++ openjdk/jdk/src/share/classes/java/util/SimpleTimeZone.java Sat Aug 29 22:36:41 2009 +0200 +@@ -1372,7 +1372,7 @@ + throw new IllegalArgumentException( + "Illegal start month " + startMonth); + } +- if (startTime < 0 || startTime >= millisPerDay) { ++ if (startTime < 0 || startTime > millisPerDay) { + throw new IllegalArgumentException( + "Illegal start time " + startTime); + } +@@ -1419,7 +1419,7 @@ + throw new IllegalArgumentException( + "Illegal end month " + endMonth); + } +- if (endTime < 0 || endTime >= millisPerDay) { ++ if (endTime < 0 || endTime > millisPerDay) { + throw new IllegalArgumentException( + "Illegal end time " + endTime); + } From mark at klomp.org Tue Sep 1 08:18:38 2009 From: mark at klomp.org (Mark Wielaard) Date: Tue, 01 Sep 2009 17:18:38 +0200 Subject: Jordan (Asia/Amman) versus SimpleTimeZone In-Reply-To: <4A9D2E71.2010601@redhat.com> References: <1251578474.3908.20.camel@springer.wildebeest.org> <4A9A71D4.50109@sun.com> <1251648936.5795.17.camel@springer.wildebeest.org> <1251811519.4205.29.camel@springer.wildebeest.org> <4A9D2E71.2010601@redhat.com> Message-ID: <1251818318.4205.32.camel@springer.wildebeest.org> On Tue, 2009-09-01 at 15:23 +0100, Andrew Haley wrote: > Mark Wielaard wrote: > > On Sun, 2009-08-30 at 18:15 +0200, Mark Wielaard wrote: > >> I added it to IcedTea6 plus a new testcase for the general issue. > >> > >> 2009-08-30 Mark Wielaard > >> > >> PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. > >> * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: > >> New test. > >> * patches/icedtea-simpletimezone-relax.patch: New patch. > >> * Makefile.am: Add new patch. > >> * HACKING: Describe new patch. > > > > Now also on the 1.6 branch on request from Andrew (irc). > > > > Lillian, do you want it also on the 1.5 branch? > > I think this patch should be committed to all active branches. OK, pushed to icedtea6 trunk, icedtea6-1.5 and icedtea6-1.5 release branches. Cheers, Mark From gnu_andrew at member.fsf.org Tue Sep 1 08:59:53 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Tue, 1 Sep 2009 16:59:53 +0100 Subject: JTreg results for ARM In-Reply-To: <17c6771e0908261412m5cc3282di8c314686fb9c27fb@mail.gmail.com> References: <200908262049.n7QKndXX009606@parsley.camswl.com> <17c6771e0908261202g6c46849bse1aa148e322aaea8@mail.gmail.com> <1251319296.24577.3.camel@mint.camswl.com> <17c6771e0908261412m5cc3282di8c314686fb9c27fb@mail.gmail.com> Message-ID: <17c6771e0909010859n64a22562x42b22fac0f9de252@mail.gmail.com> 2009/8/26 Andrew John Hughes : > 2009/8/26 Edward Nevill : >> On Wed, 2009-08-26 at 20:02 +0100, Andrew John Hughes wrote: >>> 2009/8/26 Edward Nevill : >>> > >>> Wouldn't Zero on ARM be a better initial reference? >>> >>> I can't do x86 but could set an x86_64 run going tonight if that would >>> be of any help. >>> >>> > Regards, >>> > Ed. >>> > >>> >> >> Yes, both would be good references. Could you do the x86_64 run, no >> hurry, I am out of the office until Tues. If you could keep the raw >> results, ie including the tests that passed, so I can diff the results >> and ensure I am running the same set of tests. >> >> Thx, >> Ed. >> >> >> > > Ok, in that case I'll set it going Friday so it has more time. ?From > the vague memories I have of trying it on PPC, it takes a long time :) > -- > Andrew :-) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and the OpenJDK > http://www.gnu.org/software/classpath > http://openjdk.java.net > > PGP Key: 94EFD9D8 (http://subkeys.pgp.net) > Fingerprint: F8EF F1EA 401E 2E60 15FA ?7927 142C 2591 94EF D9D8 > Results are available here: http://fuseyism.com/zero6.jtreg.tar.bz2 -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From langel at icedtea.classpath.org Tue Sep 1 09:33:56 2009 From: langel at icedtea.classpath.org (langel at icedtea.classpath.org) Date: Tue, 01 Sep 2009 16:33:56 +0000 Subject: /hg/release/icedtea6-1.5: 2009-09-01 Lillian Angel changeset d0593233c9ce in /hg/release/icedtea6-1.5 details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=d0593233c9ce author: langel date: Tue Sep 01 12:37:08 2009 -0400 2009-09-01 Lillian Angel * configure.ac: Bumped version. diffstat: 2 files changed, 6 insertions(+), 2 deletions(-) ChangeLog | 6 +++++- configure.ac | 2 +- diffs (22 lines): diff -r e28e125f9a21 -r d0593233c9ce ChangeLog --- a/ChangeLog Sun Aug 30 17:58:20 2009 +0200 +++ b/ChangeLog Tue Sep 01 12:37:08 2009 -0400 @@ -1,4 +1,8 @@ 2009-08-30 Mark Wielaard +2009-09-01 Lillian Angel + + * configure.ac: Bumped version. + +2009-09-01 Mark Wielaard PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. * overlays/openjdk/jdk/test/java/util/SimpleTimeZone/EndOfDay.java: diff -r e28e125f9a21 -r d0593233c9ce configure.ac --- a/configure.ac Sun Aug 30 17:58:20 2009 +0200 +++ b/configure.ac Tue Sep 01 12:37:08 2009 -0400 @@ -1,4 +1,4 @@ AC_INIT([icedtea6], [1.5.2], [distro-pkg -AC_INIT([icedtea6], [1.5.2], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6], [1.5.3], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From langel at icedtea.classpath.org Tue Sep 1 09:34:07 2009 From: langel at icedtea.classpath.org (langel at icedtea.classpath.org) Date: Tue, 01 Sep 2009 16:34:07 +0000 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... Message-ID: changeset 503129230ba0 in /hg/release/icedtea6-1.5 details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 author: langel date: Tue Sep 01 12:37:18 2009 -0400 Added tag icedtea6-1.5.3 for changeset d0593233c9ce diffstat: 1 file changed, 1 insertion(+) .hgtags | 1 + diffs (8 lines): diff -r d0593233c9ce -r 503129230ba0 .hgtags --- a/.hgtags Tue Sep 01 12:37:08 2009 -0400 +++ b/.hgtags Tue Sep 01 12:37:18 2009 -0400 @@ -17,3 +17,4 @@ ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 +d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 From Thomas.Rodriguez at Sun.COM Tue Sep 1 13:29:39 2009 From: Thomas.Rodriguez at Sun.COM (Tom Rodriguez) Date: Tue, 01 Sep 2009 13:29:39 -0700 Subject: [patch] Adding stack markings to the x86 assembly for not using executable stack In-Reply-To: <20090827162542.GJ10947@outflux.net> References: <4A96663B.1040109@ubuntu.com> <17c6771e0908270404t3554158cka2afe14cd636f572@mail.gmail.com> <20090827162542.GJ10947@outflux.net> Message-ID: >> Are you sending this patch upstream? It would be good to have some >> feedback from the HotSpot developers before we commit this for a >> release. >> >> Does this affect SPARC too? > > I'm not familiar with SPARC hardware, but if it supports "execute" > memory > protections, then it is a valuable change there too. It it doesn't, > it > won't hurt anything, IIUC. The machinery for this on Solaris is completely different. On Solaris it's done using mapfiles and it wouldn't be a bad idea to request non- executable stacks though this brings up a question about how all this interacts with shared libraries. If you have an executable that disables execute and it dlopens a library that doesn't, what happens? Presumably the executables and libraries have to be in agreement for this to really work, right? tom > > -Kees > > -- > Kees Cook > Ubuntu Security Team From gnu_andrew at member.fsf.org Tue Sep 1 15:15:43 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Tue, 1 Sep 2009 23:15:43 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: References: Message-ID: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> 2009/9/1 : > changeset 503129230ba0 in /hg/release/icedtea6-1.5 > details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 > author: langel > date: Tue Sep 01 12:37:18 2009 -0400 > > ? ? ? ?Added tag icedtea6-1.5.3 for changeset d0593233c9ce > > > diffstat: > > 1 file changed, 1 insertion(+) > .hgtags | ? ?1 + > > diffs (8 lines): > > diff -r d0593233c9ce -r 503129230ba0 .hgtags > --- a/.hgtags ? Tue Sep 01 12:37:08 2009 -0400 > +++ b/.hgtags ? Tue Sep 01 12:37:18 2009 -0400 > @@ -17,3 +17,4 @@ ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 > ?ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 > ?3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 > ?d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 > +d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 > Huh? Has there been a 1.5.2 release? I didn't see an announcement. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From mark at klomp.org Wed Sep 2 00:37:59 2009 From: mark at klomp.org (Mark Wielaard) Date: Wed, 02 Sep 2009 09:37:59 +0200 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> Message-ID: <1251877079.2759.9.camel@hermans.wildebeest.org> Hi Andrew, On Tue, 2009-09-01 at 23:15 +0100, Andrew John Hughes wrote: > 2009/9/1 : > > changeset 503129230ba0 in /hg/release/icedtea6-1.5 > > details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 > > author: langel > > date: Tue Sep 01 12:37:18 2009 -0400 > > > > Added tag icedtea6-1.5.3 for changeset d0593233c9ce > > Huh? Has there been a 1.5.2 release? I didn't see an announcement. Although it is technically possible to move a tag after it has been created, I don't think it is a good idea. Allocating a new tag name seems a better choice. That said, it would be good to post a message to the list about intentions of any commit, even if they are routine ones like this. Cheers, Mark P.S. Please do try to trim the messages you reply to a bit to only include the relevant context if you can. Thanks. From aph at redhat.com Wed Sep 2 02:36:16 2009 From: aph at redhat.com (Andrew Haley) Date: Wed, 02 Sep 2009 10:36:16 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <1251877079.2759.9.camel@hermans.wildebeest.org> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <1251877079.2759.9.camel@hermans.wildebeest.org> Message-ID: <4A9E3C90.8030304@redhat.com> Mark Wielaard wrote: > Hi Andrew, > > On Tue, 2009-09-01 at 23:15 +0100, Andrew John Hughes wrote: >> 2009/9/1 : >>> changeset 503129230ba0 in /hg/release/icedtea6-1.5 >>> details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 >>> author: langel >>> date: Tue Sep 01 12:37:18 2009 -0400 >>> >>> Added tag icedtea6-1.5.3 for changeset d0593233c9ce >> Huh? Has there been a 1.5.2 release? I didn't see an announcement. > > Although it is technically possible to move a tag after it has been > created, I don't think it is a good idea. Allocating a new tag name > seems a better choice. Not to me. We surely don't want phantom tags for nonexistent releases. This is very bad practice; IMO, as usual. Andrew. From mark at klomp.org Wed Sep 2 03:28:40 2009 From: mark at klomp.org (Mark Wielaard) Date: Wed, 02 Sep 2009 12:28:40 +0200 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <4A9E3C90.8030304@redhat.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <1251877079.2759.9.camel@hermans.wildebeest.org> <4A9E3C90.8030304@redhat.com> Message-ID: <1251887320.4946.32.camel@springer.wildebeest.org> On Wed, 2009-09-02 at 10:36 +0100, Andrew Haley wrote: > Mark Wielaard wrote: > > On Tue, 2009-09-01 at 23:15 +0100, Andrew John Hughes wrote: > >> 2009/9/1 : > >>> Added tag icedtea6-1.5.3 for changeset d0593233c9ce > >> Huh? Has there been a 1.5.2 release? I didn't see an announcement. > > > > Although it is technically possible to move a tag after it has been > > created, I don't think it is a good idea. Allocating a new tag name > > seems a better choice. > > Not to me. We surely don't want phantom tags for nonexistent releases. > This is very bad practice; IMO, as usual. OK, but then we need to better communicate when a tag/release is made. I had assumed that a tag is only created when the intention is to declare that changeset as the release. Tags that aren't stable feel wrong (IMO also of course), so 1.5.2 was tagged, but deemed not a great release, lets just better ourselves with the 1.5.3 tag/release. But I now assume that assumption was wrong :) So may I humbly suggest that even "routine" commits like these get a message to the list that explain their intention ("yeah, I am tagging this now as release-x-y-z, but don't count on it yet, it might move later"). Cheers, Mark From mark at klomp.org Wed Sep 2 04:29:24 2009 From: mark at klomp.org (Mark Wielaard) Date: Wed, 02 Sep 2009 13:29:24 +0200 Subject: [patch] Adding stack markings to the x86 assembly for not using executable stack In-Reply-To: References: <4A96663B.1040109@ubuntu.com> <17c6771e0908270404t3554158cka2afe14cd636f572@mail.gmail.com> <20090827162542.GJ10947@outflux.net> Message-ID: <1251890964.4946.43.camel@springer.wildebeest.org> On Tue, 2009-09-01 at 13:29 -0700, Tom Rodriguez wrote: > it wouldn't be a bad idea to request non- > executable stacks though this brings up a question about how all this > interacts with shared libraries. If you have an executable that > disables execute and it dlopens a library that doesn't, what happens? > Presumably the executables and libraries have to be in agreement for > this to really work, right? If anything (executable, shared library) needs executable stack ld.so will mark the stack as executable. When you dlopen a shared library that needs executable stack and the stack wasn't marked as executable yet then the stack will be made executable. Except of course when selinux is set to enforce disallowing marking the stack executable (which is a good thing to have, it will quickly catch mistakes like the above). Cheers, Mark From gnu_andrew at member.fsf.org Wed Sep 2 05:45:51 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 2 Sep 2009 13:45:51 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <4A9E3C90.8030304@redhat.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <1251877079.2759.9.camel@hermans.wildebeest.org> <4A9E3C90.8030304@redhat.com> Message-ID: <17c6771e0909020545v566237f6t126f5c34d6ff3513@mail.gmail.com> 2009/9/2 Andrew Haley : > Mark Wielaard wrote: >> Hi Andrew, >> >> On Tue, 2009-09-01 at 23:15 +0100, Andrew John Hughes wrote: >>> 2009/9/1 ?: >>>> changeset 503129230ba0 in /hg/release/icedtea6-1.5 >>>> details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 >>>> author: langel >>>> date: Tue Sep 01 12:37:18 2009 -0400 >>>> >>>> ? ? ? ?Added tag icedtea6-1.5.3 for changeset d0593233c9ce >>> Huh? Has there been a 1.5.2 release? I didn't see an announcement. >> >> Although it is technically possible to move a tag after it has been >> created, I don't think it is a good idea. Allocating a new tag name >> seems a better choice. > > Not to me. ?We surely don't want phantom tags for nonexistent releases. > This is very bad practice; IMO, as usual. > That's my opinion as well. We now seem to have two tags (1.5.2 and 1.5.3) for non-existent releases. The last release is still 1.5.1 and that's the only one of these I can download a tarball for from http://icedtea.classpath.org/download/source/. I agree the tags shouldn't move, but that only applies after a release has being made. I doubt anyone is going to be relying on this 1.5.2 tag as the only evidence of it is a single commit e-mail. I also think it should be fairly obvious that adding a tag does not constitute a release, but it seems that isn't the case. > Andrew. > > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From mark at klomp.org Wed Sep 2 06:36:36 2009 From: mark at klomp.org (Mark Wielaard) Date: Wed, 02 Sep 2009 15:36:36 +0200 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <17c6771e0909020545v566237f6t126f5c34d6ff3513@mail.gmail.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <1251877079.2759.9.camel@hermans.wildebeest.org> <4A9E3C90.8030304@redhat.com> <17c6771e0909020545v566237f6t126f5c34d6ff3513@mail.gmail.com> Message-ID: <1251898596.9442.3.camel@hermans.wildebeest.org> Hi, On Wed, 2009-09-02 at 13:45 +0100, Andrew John Hughes wrote: > That's my opinion as well. We now seem to have two tags (1.5.2 and > 1.5.3) for non-existent releases. The last release is still 1.5.1 and > that's the only one of these I can download a tarball for from > http://icedtea.classpath.org/download/source/. I agree the tags > shouldn't move, but that only applies after a release has being made. > I doubt anyone is going to be relying on this 1.5.2 tag as the only > evidence of it is a single commit e-mail. I also think it should be > fairly obvious that adding a tag does not constitute a release, but it > seems that isn't the case. OK, apparently I am the only person who assumes tagging something with an official release name shows intent to do a release from that commit. IMHO it would be better to only tag official releases with official (sounding) release names. But in any case, please do communicate about the intent of any commit you make to avoid any confusion. Cheers, Mark From langel at redhat.com Wed Sep 2 06:47:29 2009 From: langel at redhat.com (Lillian Angel) Date: Wed, 02 Sep 2009 09:47:29 -0400 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> Message-ID: <4A9E7771.8050806@redhat.com> Andrew John Hughes wrote: > 2009/9/1 : > >> changeset 503129230ba0 in /hg/release/icedtea6-1.5 >> details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 >> author: langel >> date: Tue Sep 01 12:37:18 2009 -0400 >> >> Added tag icedtea6-1.5.3 for changeset d0593233c9ce >> >> >> diffstat: >> >> 1 file changed, 1 insertion(+) >> .hgtags | 1 + >> >> diffs (8 lines): >> >> diff -r d0593233c9ce -r 503129230ba0 .hgtags >> --- a/.hgtags Tue Sep 01 12:37:08 2009 -0400 >> +++ b/.hgtags Tue Sep 01 12:37:18 2009 -0400 >> @@ -17,3 +17,4 @@ ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 >> ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 >> 3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 >> d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 >> +d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 >> >> > > Huh? Has there been a 1.5.2 release? I didn't see an announcement. > Sorry, we were just building rpms for RHEL (including some important patches), there is no official release. I realize this is out of order, should I make a formal annoucement? Cheers, Lillian From gnu_andrew at member.fsf.org Wed Sep 2 07:18:55 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 2 Sep 2009 15:18:55 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <4A9E7771.8050806@redhat.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <4A9E7771.8050806@redhat.com> Message-ID: <17c6771e0909020718k7509717cv7a0f2bd75d12fd68@mail.gmail.com> 2009/9/2 Lillian Angel : > Andrew John Hughes wrote: >> >> 2009/9/1 ?: >> >>> >>> changeset 503129230ba0 in /hg/release/icedtea6-1.5 >>> details: >>> http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 >>> author: langel >>> date: Tue Sep 01 12:37:18 2009 -0400 >>> >>> ? ? ? Added tag icedtea6-1.5.3 for changeset d0593233c9ce >>> >>> >>> diffstat: >>> >>> 1 file changed, 1 insertion(+) >>> .hgtags | ? ?1 + >>> >>> diffs (8 lines): >>> >>> diff -r d0593233c9ce -r 503129230ba0 .hgtags >>> --- a/.hgtags ? Tue Sep 01 12:37:08 2009 -0400 >>> +++ b/.hgtags ? Tue Sep 01 12:37:18 2009 -0400 >>> @@ -17,3 +17,4 @@ ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 >>> ?ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 >>> ?3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 >>> ?d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 >>> +d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 >>> >>> >> >> Huh? Has there been a 1.5.2 release? I didn't see an announcement. >> > > Sorry, we were just building rpms for RHEL (including some important > patches), there is no official release. I realize this is out of order, > should I make a formal annoucement? > > > Cheers, > Lillian > Are we now at the point on the 1.5 branch where a release would make sense? If so, then it should be tagged as icedtea6-1.5.2, tarballed and announced. The two current tags, icedtea6-1.5.2 and icedtea6-1.5.3, don't correspond to releases and should be removed. As regards tagging the tree, I don't see a problem with applying tags as needed for distro builds. They just shouldn't use the icedtea6-x syntax unless there is also going to be a formal release (tarball, announcement, et. al.) - that's what's caused the confusion here. If you look at the tags used by GCC (http://gcc.gnu.org/viewcvs/tags/) you will see they use all sorts of things beyond release markers. So if you need to mark the revision a RHEL package was based on, for instance, you could just use something like rhel- as a tag. Hope that clarifies things, Cheers, -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From gnu_andrew at member.fsf.org Wed Sep 2 07:25:21 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 2 Sep 2009 15:25:21 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <1251898596.9442.3.camel@hermans.wildebeest.org> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <1251877079.2759.9.camel@hermans.wildebeest.org> <4A9E3C90.8030304@redhat.com> <17c6771e0909020545v566237f6t126f5c34d6ff3513@mail.gmail.com> <1251898596.9442.3.camel@hermans.wildebeest.org> Message-ID: <17c6771e0909020725x222754fak87bf099e3c3b6b24@mail.gmail.com> 2009/9/2 Mark Wielaard : > Hi, > > On Wed, 2009-09-02 at 13:45 +0100, Andrew John Hughes wrote: >> That's my opinion as well. ?We now seem to have two tags (1.5.2 and >> 1.5.3) for non-existent releases. ?The last release is still 1.5.1 and >> that's the only one of these I can download a tarball for from >> http://icedtea.classpath.org/download/source/. ?I agree the tags >> shouldn't move, but that only applies after a release has being made. >> I doubt anyone is going to be relying on this 1.5.2 tag as the only >> evidence of it is a single commit e-mail. ?I also think it should be >> fairly obvious that adding a tag does not constitute a release, but it >> seems that isn't the case. > > OK, apparently I am the only person who assumes tagging something with > an official release name shows intent to do a release from that commit. > IMHO it would be better to only tag official releases with official > (sounding) release names. But in any case, please do communicate about > the intent of any commit you make to avoid any confusion. > > Cheers, > > Mark > > I don't disagree they indicate _intent_ to create a release; that's why I queried the change to begin with. My point was that the changeset tagged icedtea6-1.5.2 didn't result in a release with that name, so can quite happily be moved or just removed altogether. Given Lillian's e-mail, I think there was some confusion over tag names (we've never used anything but icedtea6-x or icedtea-x after all) and that these tags should have instead been named after the distro package in order to declare their true intent. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From a.radke at arcor.de Wed Sep 2 10:11:21 2009 From: a.radke at arcor.de (Andreas Radke) Date: Wed, 2 Sep 2009 19:11:21 +0200 Subject: a new release or not??? In-Reply-To: <17c6771e0909020725x222754fak87bf099e3c3b6b24@mail.gmail.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <1251877079.2759.9.camel@hermans.wildebeest.org> <4A9E3C90.8030304@redhat.com> <17c6771e0909020545v566237f6t126f5c34d6ff3513@mail.gmail.com> <1251898596.9442.3.camel@hermans.wildebeest.org> <17c6771e0909020725x222754fak87bf099e3c3b6b24@mail.gmail.com> Message-ID: <20090902191121.33f51edc@workstation64.home> Wtf are you doing here? I'm the openjdk package maintainer for a linux distribution and see some security related patches floating around in the thread topic and then a release tag and then it's going to become a never announced internal whatever??? That doesn't look professional! And there are more people out there than RedHat/Ubuntu using your baby! Please take official releases more serious! -Andreas Radke ArchLinux From mark at klomp.org Wed Sep 2 10:28:45 2009 From: mark at klomp.org (Mark Wielaard) Date: Wed, 02 Sep 2009 19:28:45 +0200 Subject: a new release or not??? In-Reply-To: <20090902191121.33f51edc@workstation64.home> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <1251877079.2759.9.camel@hermans.wildebeest.org> <4A9E3C90.8030304@redhat.com> <17c6771e0909020545v566237f6t126f5c34d6ff3513@mail.gmail.com> <1251898596.9442.3.camel@hermans.wildebeest.org> <17c6771e0909020725x222754fak87bf099e3c3b6b24@mail.gmail.com> <20090902191121.33f51edc@workstation64.home> Message-ID: <1251912525.9442.17.camel@hermans.wildebeest.org> Hi Andreas, On Wed, 2009-09-02 at 19:11 +0200, Andreas Radke wrote: > Wtf are you doing here? :) Discussing. Please feel free to join. > I'm the openjdk package maintainer for a linux distribution and see > some security related patches floating around in the thread topic and > then a release tag and then it's going to become a never announced > internal whatever??? Just to be clear the release with all known security issues resolved was IcedTea6 1.5.1, officially released on August 7: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2009-August/006764.html The discussion/confusion is around the fact that there are two release branches active. IcedTea6-1.5 and IcedTea6-1.6. Lillian is handling the 1.5 branch and Andrew is handling the 1.6 branch (there is also of course the trunk IcedTea6 where all new development takes place). Nothing is "internal" whatever, everything is public at http://icedtea.classpath.org/hg/ (including all tags for each branch) Even the discussion about what to release as what is public (on this list). Please do feel free to join the discussion about what you like to be considered for each (future) release. Cheers, Mark From aph at redhat.com Wed Sep 2 10:57:18 2009 From: aph at redhat.com (Andrew Haley) Date: Wed, 02 Sep 2009 18:57:18 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <1251898596.9442.3.camel@hermans.wildebeest.org> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <1251877079.2759.9.camel@hermans.wildebeest.org> <4A9E3C90.8030304@redhat.com> <17c6771e0909020545v566237f6t126f5c34d6ff3513@mail.gmail.com> <1251898596.9442.3.camel@hermans.wildebeest.org> Message-ID: <4A9EB1FE.2010102@redhat.com> Mark Wielaard wrote: > On Wed, 2009-09-02 at 13:45 +0100, Andrew John Hughes wrote: >> That's my opinion as well. We now seem to have two tags (1.5.2 and >> 1.5.3) for non-existent releases. The last release is still 1.5.1 and >> that's the only one of these I can download a tarball for from >> http://icedtea.classpath.org/download/source/. I agree the tags >> shouldn't move, but that only applies after a release has being made. >> I doubt anyone is going to be relying on this 1.5.2 tag as the only >> evidence of it is a single commit e-mail. I also think it should be >> fairly obvious that adding a tag does not constitute a release, but it >> seems that isn't the case. > > OK, apparently I am the only person who assumes tagging something with > an official release name shows intent to do a release from that commit. > IMHO it would be better to only tag official releases with official > (sounding) release names. But in any case, please do communicate about > the intent of any commit you make to avoid any confusion. Yes. It is probably best to name the tag icedtea-1.5.x-candidate-N and then only make the icedtea-1.5.x-release tag when the release actually happens. That way, you don't have to explain what the tag means: it's in the name. Andrew. From aph at redhat.com Wed Sep 2 11:06:45 2009 From: aph at redhat.com (Andrew Haley) Date: Wed, 02 Sep 2009 19:06:45 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <17c6771e0909020718k7509717cv7a0f2bd75d12fd68@mail.gmail.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <4A9E7771.8050806@redhat.com> <17c6771e0909020718k7509717cv7a0f2bd75d12fd68@mail.gmail.com> Message-ID: <4A9EB435.5080508@redhat.com> Andrew John Hughes wrote: > 2009/9/2 Lillian Angel : >> Andrew John Hughes wrote: >>> 2009/9/1 : >>> >>>> changeset 503129230ba0 in /hg/release/icedtea6-1.5 >>>> details: >>>> http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 >>>> author: langel >>>> date: Tue Sep 01 12:37:18 2009 -0400 >>>> >>>> Added tag icedtea6-1.5.3 for changeset d0593233c9ce >>>> >>>> >>>> diffstat: >>>> >>>> 1 file changed, 1 insertion(+) >>>> .hgtags | 1 + >>>> >>>> diffs (8 lines): >>>> >>>> diff -r d0593233c9ce -r 503129230ba0 .hgtags >>>> --- a/.hgtags Tue Sep 01 12:37:08 2009 -0400 >>>> +++ b/.hgtags Tue Sep 01 12:37:18 2009 -0400 >>>> @@ -17,3 +17,4 @@ ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 >>>> ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 >>>> 3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 >>>> d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 >>>> +d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 >>>> >>>> >>> Huh? Has there been a 1.5.2 release? I didn't see an announcement. >>> >> Sorry, we were just building rpms for RHEL (including some important >> patches), there is no official release. I realize this is out of order, >> should I make a formal annoucement? > > Are we now at the point on the 1.5 branch where a release would make > sense? If so, then it should be tagged as icedtea6-1.5.2, tarballed > and announced. The two current tags, icedtea6-1.5.2 and > icedtea6-1.5.3, don't correspond to releases and should be removed. I think this will be a useful release. It's basically the stable 1.5 branch plus a couple of bug fixes. I know that we at Red Hat want it for a RHEL release, but all distros that are using 1.5 would benefit. So, icedtea6-1.5.2 would IMO be appropriate. Andrew. From langel at redhat.com Wed Sep 2 11:09:58 2009 From: langel at redhat.com (Lillian Angel) Date: Wed, 02 Sep 2009 14:09:58 -0400 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <4A9EB435.5080508@redhat.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <4A9E7771.8050806@redhat.com> <17c6771e0909020718k7509717cv7a0f2bd75d12fd68@mail.gmail.com> <4A9EB435.5080508@redhat.com> Message-ID: <4A9EB4F6.9030206@redhat.com> Andrew Haley wrote: > Andrew John Hughes wrote: > >> 2009/9/2 Lillian Angel : >> >>> Andrew John Hughes wrote: >>> >>>> 2009/9/1 : >>>> >>>> >>>>> changeset 503129230ba0 in /hg/release/icedtea6-1.5 >>>>> details: >>>>> http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 >>>>> author: langel >>>>> date: Tue Sep 01 12:37:18 2009 -0400 >>>>> >>>>> Added tag icedtea6-1.5.3 for changeset d0593233c9ce >>>>> >>>>> >>>>> diffstat: >>>>> >>>>> 1 file changed, 1 insertion(+) >>>>> .hgtags | 1 + >>>>> >>>>> diffs (8 lines): >>>>> >>>>> diff -r d0593233c9ce -r 503129230ba0 .hgtags >>>>> --- a/.hgtags Tue Sep 01 12:37:08 2009 -0400 >>>>> +++ b/.hgtags Tue Sep 01 12:37:18 2009 -0400 >>>>> @@ -17,3 +17,4 @@ ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 >>>>> ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 >>>>> 3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 >>>>> d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 >>>>> +d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 >>>>> >>>>> >>>>> >>>> Huh? Has there been a 1.5.2 release? I didn't see an announcement. >>>> >>>> >>> Sorry, we were just building rpms for RHEL (including some important >>> patches), there is no official release. I realize this is out of order, >>> should I make a formal annoucement? >>> >> Are we now at the point on the 1.5 branch where a release would make >> sense? If so, then it should be tagged as icedtea6-1.5.2, tarballed >> and announced. The two current tags, icedtea6-1.5.2 and >> icedtea6-1.5.3, don't correspond to releases and should be removed. >> > > I think this will be a useful release. It's basically the stable 1.5 > branch plus a couple of bug fixes. I know that we at Red Hat want it > for a RHEL release, but all distros that are using 1.5 would benefit. > So, icedtea6-1.5.2 would IMO be appropriate. Do you propose we move the 1.5.2 tag to replace the 1.5.3 tag and have an official release then? Lillian From aph at redhat.com Wed Sep 2 11:10:38 2009 From: aph at redhat.com (Andrew Haley) Date: Wed, 02 Sep 2009 19:10:38 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <4A9EB4F6.9030206@redhat.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <4A9E7771.8050806@redhat.com> <17c6771e0909020718k7509717cv7a0f2bd75d12fd68@mail.gmail.com> <4A9EB435.5080508@redhat.com> <4A9EB4F6.9030206@redhat.com> Message-ID: <4A9EB51E.1020300@redhat.com> Lillian Angel wrote: > Andrew Haley wrote: >> Andrew John Hughes wrote: >> >>> 2009/9/2 Lillian Angel : >>> >>>> Andrew John Hughes wrote: >>>> >>>>> 2009/9/1 : >>>>> >>>>> >>>>>> changeset 503129230ba0 in /hg/release/icedtea6-1.5 >>>>>> details: >>>>>> http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 >>>>>> >>>>>> author: langel >>>>>> date: Tue Sep 01 12:37:18 2009 -0400 >>>>>> >>>>>> Added tag icedtea6-1.5.3 for changeset d0593233c9ce >>>>>> >>>>>> >>>>>> diffstat: >>>>>> >>>>>> 1 file changed, 1 insertion(+) >>>>>> .hgtags | 1 + >>>>>> >>>>>> diffs (8 lines): >>>>>> >>>>>> diff -r d0593233c9ce -r 503129230ba0 .hgtags >>>>>> --- a/.hgtags Tue Sep 01 12:37:08 2009 -0400 >>>>>> +++ b/.hgtags Tue Sep 01 12:37:18 2009 -0400 >>>>>> @@ -17,3 +17,4 @@ ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 >>>>>> ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 >>>>>> 3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 >>>>>> d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 >>>>>> +d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 >>>>>> >>>>>> >>>>>> >>>>> Huh? Has there been a 1.5.2 release? I didn't see an announcement. >>>>> >>>>> >>>> Sorry, we were just building rpms for RHEL (including some important >>>> patches), there is no official release. I realize this is out of order, >>>> should I make a formal annoucement? >>>> >>> Are we now at the point on the 1.5 branch where a release would make >>> sense? If so, then it should be tagged as icedtea6-1.5.2, tarballed >>> and announced. The two current tags, icedtea6-1.5.2 and >>> icedtea6-1.5.3, don't correspond to releases and should be removed. >>> >> >> I think this will be a useful release. It's basically the stable 1.5 >> branch plus a couple of bug fixes. I know that we at Red Hat want it >> for a RHEL release, but all distros that are using 1.5 would benefit. >> So, icedtea6-1.5.2 would IMO be appropriate. > > > Do you propose we move the 1.5.2 tag to replace the 1.5.3 tag and have > an official release then? That's what I'm suggesting, if no-one objects. Assuming that it's passed all its tests, that is! Andrew. From gnu_andrew at member.fsf.org Wed Sep 2 11:11:44 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 2 Sep 2009 19:11:44 +0100 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.3 for changeset... In-Reply-To: <4A9EB51E.1020300@redhat.com> References: <17c6771e0909011515q65e8b115j851851f3313cd584@mail.gmail.com> <4A9E7771.8050806@redhat.com> <17c6771e0909020718k7509717cv7a0f2bd75d12fd68@mail.gmail.com> <4A9EB435.5080508@redhat.com> <4A9EB4F6.9030206@redhat.com> <4A9EB51E.1020300@redhat.com> Message-ID: <17c6771e0909021111n647b1121i51c7bf9e83e73ea7@mail.gmail.com> 2009/9/2 Andrew Haley : > Lillian Angel wrote: >> Andrew Haley wrote: >>> Andrew John Hughes wrote: >>> >>>> 2009/9/2 Lillian Angel : >>>> >>>>> Andrew John Hughes wrote: >>>>> >>>>>> 2009/9/1 ?: >>>>>> >>>>>> >>>>>>> changeset 503129230ba0 in /hg/release/icedtea6-1.5 >>>>>>> details: >>>>>>> http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=503129230ba0 >>>>>>> >>>>>>> author: langel >>>>>>> date: Tue Sep 01 12:37:18 2009 -0400 >>>>>>> >>>>>>> ? ? ? Added tag icedtea6-1.5.3 for changeset d0593233c9ce >>>>>>> >>>>>>> >>>>>>> diffstat: >>>>>>> >>>>>>> 1 file changed, 1 insertion(+) >>>>>>> .hgtags | ? ?1 + >>>>>>> >>>>>>> diffs (8 lines): >>>>>>> >>>>>>> diff -r d0593233c9ce -r 503129230ba0 .hgtags >>>>>>> --- a/.hgtags ? Tue Sep 01 12:37:08 2009 -0400 >>>>>>> +++ b/.hgtags ? Tue Sep 01 12:37:18 2009 -0400 >>>>>>> @@ -17,3 +17,4 @@ ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 >>>>>>> ?ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 >>>>>>> ?3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 >>>>>>> ?d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 >>>>>>> +d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 >>>>>>> >>>>>>> >>>>>>> >>>>>> Huh? Has there been a 1.5.2 release? I didn't see an announcement. >>>>>> >>>>>> >>>>> Sorry, we were just building rpms for RHEL (including some important >>>>> patches), there is no official release. I realize this is out of order, >>>>> should I make a formal annoucement? >>>>> >>>> Are we now at the point on the 1.5 branch where a release would make >>>> sense? ?If so, then it should be tagged as icedtea6-1.5.2, tarballed >>>> and announced. ?The two current tags, icedtea6-1.5.2 and >>>> icedtea6-1.5.3, don't correspond to releases and should be removed. >>>> >>> >>> I think this will be a useful release. ?It's basically the stable 1.5 >>> branch plus a couple of bug fixes. ?I know that we at Red Hat want it >>> for a RHEL release, but all distros that are using 1.5 would benefit. >>> So, icedtea6-1.5.2 would IMO be appropriate. >> >> >> Do you propose we move the 1.5.2 tag to replace the 1.5.3 tag and have >> an official release then? > > That's what I'm suggesting, if no-one objects. ?Assuming that it's passed > all its tests, that is! > > Andrew. > > I'd agree with that. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From langel at icedtea.classpath.org Wed Sep 2 11:16:34 2009 From: langel at icedtea.classpath.org (langel at icedtea.classpath.org) Date: Wed, 02 Sep 2009 18:16:34 +0000 Subject: /hg/release/icedtea6-1.5: 2009-09-02 Lillian Angel changeset 5a75245ca41a in /hg/release/icedtea6-1.5 details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=5a75245ca41a author: langel date: Wed Sep 02 14:19:45 2009 -0400 2009-09-02 Lillian Angel * configure.ac: Moved version back to 1.5.2. * .hgtags: Removed icedtea6-1.5.3 tag, and re-tagged as icedtea6-1.5.2 in preparation for 1.5.2 release. diffstat: 3 files changed, 7 insertions(+), 3 deletions(-) .hgtags | 2 -- ChangeLog | 6 ++++++ configure.ac | 2 +- diffs (31 lines): diff -r 503129230ba0 -r 5a75245ca41a .hgtags --- a/.hgtags Tue Sep 01 12:37:18 2009 -0400 +++ b/.hgtags Wed Sep 02 14:19:45 2009 -0400 @@ -16,5 +16,3 @@ 07de70c5883a637ea2ef4aba3f8472edd7e12f1e 07de70c5883a637ea2ef4aba3f8472edd7e12f1e icedtea6-1.5rc2 ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 -d70ae78f89c2cd9cb782f197804a5bcf99ca9949 icedtea6-1.5.2 -d0593233c9ce2110854a97a36eda57996ba34d0e icedtea6-1.5.3 diff -r 503129230ba0 -r 5a75245ca41a ChangeLog --- a/ChangeLog Tue Sep 01 12:37:18 2009 -0400 +++ b/ChangeLog Wed Sep 02 14:19:45 2009 -0400 @@ -1,3 +1,9 @@ 2009-09-01 Lillian Angel + + * configure.ac: Moved version back to 1.5.2. + * .hgtags: Removed icedtea6-1.5.3 tag, and re-tagged as icedtea6-1.5.2 + in preparation for 1.5.2 release. + 2009-09-01 Lillian Angel * configure.ac: Bumped version. diff -r 503129230ba0 -r 5a75245ca41a configure.ac --- a/configure.ac Tue Sep 01 12:37:18 2009 -0400 +++ b/configure.ac Wed Sep 02 14:19:45 2009 -0400 @@ -1,4 +1,4 @@ AC_INIT([icedtea6], [1.5.3], [distro-pkg -AC_INIT([icedtea6], [1.5.3], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6], [1.5.2], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From langel at icedtea.classpath.org Wed Sep 2 11:16:45 2009 From: langel at icedtea.classpath.org (langel at icedtea.classpath.org) Date: Wed, 02 Sep 2009 18:16:45 +0000 Subject: /hg/release/icedtea6-1.5: Added tag icedtea6-1.5.2 for changeset... Message-ID: changeset 180570a437ab in /hg/release/icedtea6-1.5 details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=180570a437ab author: langel date: Wed Sep 02 14:19:58 2009 -0400 Added tag icedtea6-1.5.2 for changeset 5a75245ca41a diffstat: 1 file changed, 1 insertion(+) .hgtags | 1 + diffs (8 lines): diff -r 5a75245ca41a -r 180570a437ab .hgtags --- a/.hgtags Wed Sep 02 14:19:45 2009 -0400 +++ b/.hgtags Wed Sep 02 14:19:58 2009 -0400 @@ -16,3 +16,4 @@ 07de70c5883a637ea2ef4aba3f8472edd7e12f1e 07de70c5883a637ea2ef4aba3f8472edd7e12f1e icedtea6-1.5rc2 ffe92bbe7e8466b323f0aedbdac4b6ecf44eafe2 icedtea6-1.5 3b93da7c778a0a5147db1eec28218a8df462161d icedtea6-1.5.1 +5a75245ca41a1f9885fc2853af4c6147ef6445f4 icedtea6-1.5.2 From gbenson at icedtea.classpath.org Thu Sep 3 06:10:02 2009 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Thu, 03 Sep 2009 13:10:02 +0000 Subject: /hg/icedtea6: 2009-09-03 Gary Benson Message-ID: changeset ad90da0ee95f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ad90da0ee95f author: Gary Benson date: Thu Sep 03 09:03:41 2009 -0400 2009-09-03 Gary Benson * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp Added copyright header. * ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp: Added copyright header and "intentionally empty" message. * ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp (ZeroStackPrinter::print_word): Replaced a couple of "%d"s with INTPTR_FORMAT. diffstat: 19 files changed, 473 insertions(+), 2 deletions(-) ChangeLog | 30 ++++++++++ ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp | 25 ++++++++ ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp | 4 - ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp | 26 ++++++++ ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp | 26 ++++++++ ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp | 26 ++++++++ ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp | 26 ++++++++ ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp | 26 ++++++++ diffs (truncated from 570 to 500 lines): diff -r 21edcf84dc76 -r ad90da0ee95f ChangeLog --- a/ChangeLog Mon Aug 31 07:45:07 2009 +0200 +++ b/ChangeLog Thu Sep 03 09:03:41 2009 -0400 @@ -1,3 +1,33 @@ 2009-08-31 Mark Wielaard + + * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp + Added copyright header. + * ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp: + Added copyright header and "intentionally empty" message. + * ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp: + Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp: + Likewise. + + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp + (ZeroStackPrinter::print_word): Replaced a couple of "%d"s with + INTPTR_FORMAT. + 2009-08-31 Mark Wielaard Keith Seitz diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp Thu Sep 03 09:03:41 2009 -0400 @@ -1,3 +1,28 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + #if defined(PRODUCT) && defined(HOTSPOT_ASM) #define _iaccess_0 ((Bytecodes::Code)0xdb) #define _iaccess_1 ((Bytecodes::Code)0xdc) diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp Thu Sep 03 09:03:41 2009 -0400 @@ -190,7 +190,7 @@ class ZeroStackPrinter { } } else { - snprintf(_buf, _buflen, "%s[%d]", + snprintf(_buf, _buflen, "%s[" INTPTR_FORMAT "]", top_frame ? "stack_word" : "local", istate->stack_base() - addr - 1); field = _buf; @@ -250,7 +250,7 @@ class ZeroStackPrinter { } } else { - snprintf(_buf, _buflen, "%s[%d]", + snprintf(_buf, _buflen, "%s[" INTPTR_FORMAT "]", top_frame ? "stack_word" : "local", stack_base - addr - 1); field = _buf; diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 -r ad90da0ee95f ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp Thu Sep 03 09:03:41 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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 From gbenson at redhat.com Thu Sep 3 06:17:57 2009 From: gbenson at redhat.com (Gary Benson) Date: Thu, 3 Sep 2009 14:17:57 +0100 Subject: Zero tweaks Message-ID: <20090903131757.GB3933@redhat.com> Hi all, This commit updates the Zero in icedtea6 to match the one in http://cr.openjdk.java.net/~gbenson/zero-07/. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r 21edcf84dc76 ChangeLog --- a/ChangeLog Mon Aug 31 07:45:07 2009 +0200 +++ b/ChangeLog Thu Sep 03 09:00:35 2009 -0400 @@ -1,3 +1,33 @@ +2009-09-03 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp + Added copyright header. + * ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp: + Added copyright header and "intentionally empty" message. + * ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp: + Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp: + Likewise. + + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp + (ZeroStackPrinter::print_word): Replaced a couple of "%d"s with + INTPTR_FORMAT. + 2009-08-31 Mark Wielaard Keith Seitz diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp Thu Sep 03 09:00:35 2009 -0400 @@ -1,3 +1,28 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + #if defined(PRODUCT) && defined(HOTSPOT_ASM) #define _iaccess_0 ((Bytecodes::Code)0xdb) #define _iaccess_1 ((Bytecodes::Code)0xdc) diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp Thu Sep 03 09:00:35 2009 -0400 @@ -190,7 +190,7 @@ } } else { - snprintf(_buf, _buflen, "%s[%d]", + snprintf(_buf, _buflen, "%s[" INTPTR_FORMAT "]", top_frame ? "stack_word" : "local", istate->stack_base() - addr - 1); field = _buf; @@ -250,7 +250,7 @@ } } else { - snprintf(_buf, _buflen, "%s[%d]", + snprintf(_buf, _buflen, "%s[" INTPTR_FORMAT "]", top_frame ? "stack_word" : "local", stack_base - addr - 1); field = _buf; diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty diff -r 21edcf84dc76 ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp Mon Aug 31 07:45:07 2009 +0200 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp Thu Sep 03 09:00:35 2009 -0400 @@ -0,0 +1,26 @@ +/* + * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2009 Red Hat, Inc. + * 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. + * + */ + +// This file is intentionally empty From gbenson at icedtea.classpath.org Thu Sep 3 08:29:31 2009 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Thu, 03 Sep 2009 15:29:31 +0000 Subject: /hg/icedtea6: 2009-09-03 Gary Benson Message-ID: changeset cc4f8460a676 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=cc4f8460a676 author: Gary Benson date: Thu Sep 03 11:23:31 2009 -0400 2009-09-03 Gary Benson * ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp: Reformatted with trailing opening braces. * ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/copy_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/debug_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/dump_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/registerMap_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/register_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/vm_version_zero.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/vmreg_zero.cpp: Likewise. * ports/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp: Likewise. * ports/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline .hpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hp p: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp: Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp: Likewise. diffstat: 58 files changed, 624 insertions(+), 892 deletions(-) ChangeLog | 70 ++++ ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp | 36 -- ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp | 3 ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp | 3 ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp | 51 +-- ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp | 43 ++ ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp | 3 ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp | 145 ++++------ ports/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp | 2 ports/hotspot/src/cpu/zero/vm/copy_zero.hpp | 38 +- ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp | 6 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 80 ++--- ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp | 1 ports/hotspot/src/cpu/zero/vm/debug_zero.cpp | 3 ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp | 3 ports/hotspot/src/cpu/zero/vm/dump_zero.cpp | 5 ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp | 6 ports/hotspot/src/cpu/zero/vm/entry_zero.hpp | 18 - ports/hotspot/src/cpu/zero/vm/frame_zero.cpp | 51 +-- ports/hotspot/src/cpu/zero/vm/frame_zero.hpp | 25 - ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp | 63 +--- ports/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp | 9 ports/hotspot/src/cpu/zero/vm/icache_zero.cpp | 2 ports/hotspot/src/cpu/zero/vm/icache_zero.hpp | 1 ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp | 6 ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp | 1 ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp | 24 - ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp | 51 +-- ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp | 15 - ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp | 24 - ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp | 20 - ports/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp | 24 - ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp | 3 ports/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp | 105 ++----- ports/hotspot/src/cpu/zero/vm/registerMap_zero.hpp | 2 ports/hotspot/src/cpu/zero/vm/register_zero.hpp | 18 - ports/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp | 35 +- ports/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp | 3 ports/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp | 28 - ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp | 12 ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 2 ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp | 6 ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 75 +---- ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp | 27 - ports/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp | 12 ports/hotspot/src/cpu/zero/vm/vm_version_zero.hpp | 3 ports/hotspot/src/cpu/zero/vm/vmreg_zero.cpp | 15 - ports/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp | 8 ports/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp | 12 ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp | 78 +---- ports/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp | 9 ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp | 27 - ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 138 ++++----- ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp | 3 ports/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp | 6 ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp | 9 ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp | 6 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 42 -- diffs (truncated from 3573 to 500 lines): diff -r ad90da0ee95f -r cc4f8460a676 ChangeLog --- a/ChangeLog Thu Sep 03 09:03:41 2009 -0400 +++ b/ChangeLog Thu Sep 03 11:23:31 2009 -0400 @@ -1,3 +1,73 @@ 2009-09-03 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp: Reformatted + with trailing opening braces. + * ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp: + Likewise. + * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/copy_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp: + Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/debug_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/dump_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/registerMap_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/register_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vm_version_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vmreg_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp: + Likewise. + 2009-09-03 Gary Benson * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp diff -r ad90da0ee95f -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp Thu Sep 03 09:03:41 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp Thu Sep 03 11:23:31 2009 -0400 @@ -26,67 +26,55 @@ #include "incls/_precompiled.incl" #include "incls/_assembler_zero.cpp.incl" -int AbstractAssembler::code_fill_byte() -{ +int AbstractAssembler::code_fill_byte() { return 0; } -void Assembler::pd_patch_instruction(address branch, address target) -{ +void Assembler::pd_patch_instruction(address branch, address target) { Unimplemented(); } #ifndef PRODUCT -void Assembler::pd_print_patched_instruction(address branch) -{ +void Assembler::pd_print_patched_instruction(address branch) { Unimplemented(); } #endif // PRODUCT -void MacroAssembler::align(int modulus) -{ +void MacroAssembler::align(int modulus) { while (offset() % modulus != 0) emit_byte(AbstractAssembler::code_fill_byte()); } -void MacroAssembler::bang_stack_with_offset(int offset) -{ +void MacroAssembler::bang_stack_with_offset(int offset) { Unimplemented(); } -void MacroAssembler::advance(int bytes) -{ +void MacroAssembler::advance(int bytes) { _code_pos += bytes; sync(); } -void MacroAssembler::store_oop(jobject obj) -{ +void MacroAssembler::store_oop(jobject obj) { code_section()->relocate(pc(), oop_Relocation::spec_for_immediate()); emit_address((address) obj); } -static void _UnimplementedStub() -{ +static void _UnimplementedStub() { report_unimplemented(__FILE__, __LINE__); } -address UnimplementedStub() -{ +address UnimplementedStub() { return (address) _UnimplementedStub; } -address UnimplementedEntry() -{ +address UnimplementedEntry() { return (address) _UnimplementedStub; } -static void _ShouldNotReachHereStub() -{ +static void _ShouldNotReachHereStub() { report_should_not_reach_here(__FILE__, __LINE__); } -address ShouldNotReachHereStub() -{ +address ShouldNotReachHereStub() { return (address) _ShouldNotReachHereStub; } diff -r ad90da0ee95f -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp Thu Sep 03 09:03:41 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp Thu Sep 03 11:23:31 2009 -0400 @@ -52,8 +52,7 @@ class MacroAssembler : public Assembler }; #ifdef ASSERT -inline bool AbstractAssembler::pd_check_instruction_mark() -{ +inline bool AbstractAssembler::pd_check_instruction_mark() { Unimplemented(); } #endif diff -r ad90da0ee95f -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp Thu Sep 03 09:03:41 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp Thu Sep 03 11:23:31 2009 -0400 @@ -28,8 +28,7 @@ #ifdef CC_INTERP -const char *BytecodeInterpreter::name_of_field_at_address(address addr) -{ +const char *BytecodeInterpreter::name_of_field_at_address(address addr) { #define DO(member) {if (addr == (address) &(member)) return XSTR(member);} DO(_thread); DO(_bcp); diff -r ad90da0ee95f -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp Thu Sep 03 09:03:41 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp Thu Sep 03 11:23:31 2009 -0400 @@ -35,72 +35,55 @@ interpreterState _self_link; public: - inline void set_locals(intptr_t* new_locals) - { + inline void set_locals(intptr_t* new_locals) { _locals = new_locals; } - inline void set_method(methodOop new_method) - { + inline void set_method(methodOop new_method) { _method = new_method; } - inline interpreterState self_link() - { + inline interpreterState self_link() { return _self_link; } - inline void set_self_link(interpreterState new_self_link) - { + inline void set_self_link(interpreterState new_self_link) { _self_link = new_self_link; } - inline interpreterState prev_link() - { + inline interpreterState prev_link() { return _prev_link; } - inline void set_prev_link(interpreterState new_prev_link) - { + inline void set_prev_link(interpreterState new_prev_link) { _prev_link = new_prev_link; } - inline void set_stack_limit(intptr_t* new_stack_limit) - { + inline void set_stack_limit(intptr_t* new_stack_limit) { _stack_limit = new_stack_limit; } - inline void set_stack_base(intptr_t* new_stack_base) - { + inline void set_stack_base(intptr_t* new_stack_base) { _stack_base = new_stack_base; } - inline void set_monitor_base(BasicObjectLock *new_monitor_base) - { + inline void set_monitor_base(BasicObjectLock *new_monitor_base) { _monitor_base = new_monitor_base; } - inline void set_thread(JavaThread* new_thread) - { + inline void set_thread(JavaThread* new_thread) { _thread = new_thread; } - inline void set_constants(constantPoolCacheOop new_constants) - { + inline void set_constants(constantPoolCacheOop new_constants) { _constants = new_constants; } - inline oop oop_temp() - { + inline oop oop_temp() { return _oop_temp; } - inline oop *oop_temp_addr() - { + inline oop *oop_temp_addr() { return &_oop_temp; } - inline void set_oop_temp(oop new_oop_temp) - { + inline void set_oop_temp(oop new_oop_temp) { _oop_temp = new_oop_temp; } - inline address callee_entry_point() - { + inline address callee_entry_point() { return _result._to_call._callee_entry_point; } - inline address osr_buf() - { + inline address osr_buf() { return _result._osr._osr_buf; } - inline address osr_entry() - { + inline address osr_entry() { return _result._osr._osr_entry; } diff -r ad90da0ee95f -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp Thu Sep 03 09:03:41 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp Thu Sep 03 11:23:31 2009 -0400 @@ -25,15 +25,33 @@ // Inline interpreter functions for zero -inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { return op1 + op2; } -inline jfloat BytecodeInterpreter::VMfloatSub(jfloat op1, jfloat op2) { return op1 - op2; } -inline jfloat BytecodeInterpreter::VMfloatMul(jfloat op1, jfloat op2) { return op1 * op2; } -inline jfloat BytecodeInterpreter::VMfloatDiv(jfloat op1, jfloat op2) { return op1 / op2; } -inline jfloat BytecodeInterpreter::VMfloatRem(jfloat op1, jfloat op2) { return fmod(op1, op2); } - -inline jfloat BytecodeInterpreter::VMfloatNeg(jfloat op) { return -op; } - -inline int32_t BytecodeInterpreter::VMfloatCompare(jfloat op1, jfloat op2, int32_t direction) { +inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { + return op1 + op2; +} + +inline jfloat BytecodeInterpreter::VMfloatSub(jfloat op1, jfloat op2) { + return op1 - op2; +} + +inline jfloat BytecodeInterpreter::VMfloatMul(jfloat op1, jfloat op2) { + return op1 * op2; +} + +inline jfloat BytecodeInterpreter::VMfloatDiv(jfloat op1, jfloat op2) { + return op1 / op2; +} + +inline jfloat BytecodeInterpreter::VMfloatRem(jfloat op1, jfloat op2) { + return fmod(op1, op2); +} + +inline jfloat BytecodeInterpreter::VMfloatNeg(jfloat op) { + return -op; +} + +inline int32_t BytecodeInterpreter::VMfloatCompare(jfloat op1, + jfloat op2, + int32_t direction) { return ( op1 < op2 ? -1 : op1 > op2 ? 1 : op1 == op2 ? 0 : @@ -41,7 +59,8 @@ inline int32_t BytecodeInterpreter::VMfl } -inline void BytecodeInterpreter::VMmemCopy64(uint32_t to[2], const uint32_t from[2]) { +inline void BytecodeInterpreter::VMmemCopy64(uint32_t to[2], + const uint32_t from[2]) { *(uint64_t *) to = *(uint64_t *) from; } @@ -182,7 +201,9 @@ inline jdouble BytecodeInterpreter::VMdo return op1 - op2; } -inline int32_t BytecodeInterpreter::VMdoubleCompare(jdouble op1, jdouble op2, int32_t direction) { +inline int32_t BytecodeInterpreter::VMdoubleCompare(jdouble op1, + jdouble op2, + int32_t direction) { return ( op1 < op2 ? -1 : op1 > op2 ? 1 : op1 == op2 ? 0 : diff -r ad90da0ee95f -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp Thu Sep 03 09:03:41 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp Thu Sep 03 11:23:31 2009 -0400 @@ -26,8 +26,7 @@ #include "incls/_precompiled.incl" #include "incls/_bytecodes_zero.cpp.incl" -void Bytecodes::pd_initialize() -{ +void Bytecodes::pd_initialize() { #if defined(PRODUCT) && defined(HOTSPOT_ASM) def(_iaccess_0, "_iaccess_0", "b_jj", NULL, T_INT, 1, true, _aload_0); def(_iaccess_1, "_iaccess_1", "b_jj", NULL, T_INT, 1, true, _aload_1); diff -r ad90da0ee95f -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp Thu Sep 03 09:03:41 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp Thu Sep 03 11:23:31 2009 -0400 @@ -27,8 +27,7 @@ class Bytes: AllStatic { public: // Returns true if the byte ordering used by Java is different // from the native byte ordering of the underlying machine. - static inline bool is_Java_byte_ordering_different() - { + static inline bool is_Java_byte_ordering_different() { #ifdef VM_LITTLE_ENDIAN return true; #else @@ -48,10 +47,10 @@ class Bytes: AllStatic { static inline u4 get_native_u4(address p) { switch (intptr_t(p) & 3) { - case 0: return *(u4*)p; - - case 2: return ( u4( ((u2*)p)[1] ) << 16 ) - | ( u4( ((u2*)p)[0] ) ); + case 0: return *(u4*)p; + + case 2: return ( u4( ((u2*)p)[1] ) << 16 ) + | ( u4( ((u2*)p)[0] ) ); default: return ( u4(p[3]) << 24 ) | ( u4(p[2]) << 16 ) @@ -62,29 +61,29 @@ class Bytes: AllStatic { static inline u8 get_native_u8(address p) { switch (intptr_t(p) & 7) { - case 0: return *(u8*)p; - - case 4: return ( u8( ((u4*)p)[1] ) << 32 ) - | ( u8( ((u4*)p)[0] ) ); - - case 2: return ( u8( ((u2*)p)[3] ) << 48 ) - | ( u8( ((u2*)p)[2] ) << 32 ) - | ( u8( ((u2*)p)[1] ) << 16 ) - | ( u8( ((u2*)p)[0] ) ); - - default: return ( u8(p[7]) << 56 ) - | ( u8(p[6]) << 48 ) - | ( u8(p[5]) << 40 ) - | ( u8(p[4]) << 32 ) - | ( u8(p[3]) << 24 ) - | ( u8(p[2]) << 16 ) - | ( u8(p[1]) << 8 ) - | u8(p[0]); - } - } - - static inline void put_native_u2(address p, u2 x) { - if ( (intptr_t(p) & 1) == 0 ) *(u2*)p = x; + case 0: return *(u8*)p; + + case 4: return ( u8( ((u4*)p)[1] ) << 32 ) + | ( u8( ((u4*)p)[0] ) ); + + case 2: return ( u8( ((u2*)p)[3] ) << 48 ) + | ( u8( ((u2*)p)[2] ) << 32 ) + | ( u8( ((u2*)p)[1] ) << 16 ) + | ( u8( ((u2*)p)[0] ) ); + + default: return ( u8(p[7]) << 56 ) + | ( u8(p[6]) << 48 ) + | ( u8(p[5]) << 40 ) + | ( u8(p[4]) << 32 ) + | ( u8(p[3]) << 24 ) + | ( u8(p[2]) << 16 ) + | ( u8(p[1]) << 8 ) + | u8(p[0]); + } + } + + static inline void put_native_u2(address p, u2 x) { + if ((intptr_t(p) & 1) == 0) *(u2*) p = x; else { p[1] = x >> 8; p[0] = x; @@ -143,10 +142,10 @@ class Bytes: AllStatic { static inline u4 get_native_u4(address p) { switch (intptr_t(p) & 3) { - case 0: return *(u4*)p; - - case 2: return ( u4( ((u2*)p)[0] ) << 16 ) - | ( u4( ((u2*)p)[1] ) ); + case 0: return *(u4*)p; + + case 2: return ( u4( ((u2*)p)[0] ) << 16 ) + | ( u4( ((u2*)p)[1] ) ); default: return ( u4(p[0]) << 24 ) | ( u4(p[1]) << 16 ) @@ -157,28 +156,28 @@ class Bytes: AllStatic { static inline u8 get_native_u8(address p) { switch (intptr_t(p) & 7) { - case 0: return *(u8*)p; - - case 4: return ( u8( ((u4*)p)[0] ) << 32 ) - | ( u8( ((u4*)p)[1] ) ); - - case 2: return ( u8( ((u2*)p)[0] ) << 48 ) - | ( u8( ((u2*)p)[1] ) << 32 ) - | ( u8( ((u2*)p)[2] ) << 16 ) - | ( u8( ((u2*)p)[3] ) ); - - default: return ( u8(p[0]) << 56 ) - | ( u8(p[1]) << 48 ) - | ( u8(p[2]) << 40 ) - | ( u8(p[3]) << 32 ) - | ( u8(p[4]) << 24 ) - | ( u8(p[5]) << 16 ) - | ( u8(p[6]) << 8 ) - | u8(p[7]); - } - } - - static inline void put_native_u2(address p, u2 x) { + case 0: return *(u8*)p; + + case 4: return ( u8( ((u4*)p)[0] ) << 32 ) + | ( u8( ((u4*)p)[1] ) ); + + case 2: return ( u8( ((u2*)p)[0] ) << 48 ) + | ( u8( ((u2*)p)[1] ) << 32 ) + | ( u8( ((u2*)p)[2] ) << 16 ) + | ( u8( ((u2*)p)[3] ) ); + + default: return ( u8(p[0]) << 56 ) + | ( u8(p[1]) << 48 ) + | ( u8(p[2]) << 40 ) + | ( u8(p[3]) << 32 ) + | ( u8(p[4]) << 24 ) + | ( u8(p[5]) << 16 ) + | ( u8(p[6]) << 8 ) + | u8(p[7]); + } From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 10:53:12 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 17:53:12 +0000 Subject: [Bug 344] cacao build broken in IcedTea7 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=344 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 10:53:49 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 17:53:49 +0000 Subject: [Bug 344] cacao build broken in IcedTea7 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=344 ------- Comment #2 from gnu_andrew at member.fsf.org 2009-09-03 17:53 ------- Closed as WORKSFORME. If this still fails and you can find more information on why it does so, please reopen the bug. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 10:54:22 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 17:54:22 +0000 Subject: [Bug 375] IcedTea fails to build using ecj-3.5 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=375 ------- Comment #1 from gnu_andrew at member.fsf.org 2009-09-03 17:54 ------- Didn't you fix this with a patch to IcedTea6? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 10:56:06 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 17:56:06 +0000 Subject: [Bug 377] TimeZone.getOffset() fails for some TZ Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | ------- Comment #9 from gnu_andrew at member.fsf.org 2009-09-03 17:56 ------- Reopening as not yet in OpenJDK6. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 10:56:25 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 17:56:25 +0000 Subject: [Bug 377] TimeZone.getOffset() fails for some TZ Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |ASSIGNED -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 10:56:48 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 17:56:48 +0000 Subject: [Bug 381] Stackoverflow error with security manager, signed jars and -Djava.security.debug set Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | ------- Comment #22 from gnu_andrew at member.fsf.org 2009-09-03 17:56 ------- Reopening; this fix isn't upstream. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 11:17:14 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 18:17:14 +0000 Subject: [Bug 377] TimeZone.getOffset() fails for some TZ Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 ------- Comment #10 from mark at klomp.org 2009-09-03 18:17 ------- It might be better to track such issue somewhere else, since it is fixed in IcedTea already. May I suggest http://bugs.openjdk.java.net/ ? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 11:24:04 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 18:24:04 +0000 Subject: [Bug 377] TimeZone.getOffset() fails for some TZ Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 ------- Comment #11 from gnu_andrew at member.fsf.org 2009-09-03 18:23 ------- Hmmm, maybe. I'm beginning to feel bugs.openjdk.java.net is completely useless; fewer Sun engineers use it than read the mailing lists (which is already too few) and we can't even use its IDs to commit bugs. I feel pushing the bug upstream or deciding not to is part of the process for the majority of IcedTea bugs. The issue is only really resolved when we don't have to patch the sources to fix it. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 11:33:28 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 18:33:28 +0000 Subject: [Bug 381] Stackoverflow error with security manager, signed jars and -Djava.security.debug set Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 ------- Comment #23 from mark at klomp.org 2009-09-03 18:33 ------- (In reply to comment #22) > Reopening; this fix isn't upstream. Please track such issues upstream. It is enough if the bug fix is in IcedTea, and you add a reference to an bugs.openjdk.java.net id and/or a URL to a post to the relevant mailinglist patch post at mail.openjdk.java.net to the wiki page where we document such issues: http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From gnu_andrew at member.fsf.org Thu Sep 3 12:50:35 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 3 Sep 2009 20:50:35 +0100 Subject: [PATCH FOR REVIEW]: Support PKCS11 cryptography via NSS Message-ID: <17c6771e0909031250o7e0b4e99k3d46ddaa93f28316@mail.gmail.com> IcedTea6, as currently built, does not support elliptic curve cryptography (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=356). For this to be enabled, the provider must be added to jre/lib/security/java.security and configured to point to the system NSS. With the proprietary JDK, this is not something that can be done 'out of the box', but we can do this with IcedTea by detecting NSS using configure. The attached patch does just that. It also fixes an issue (6763530) that prevents newer versions of NSS from working. When applied, NSS can be enabled just by passing --enable-nss to configure. The following then works: $ /home/andrew/build/icedtea6/bin/keytool -v -genkeypair -keyalg EC -keysize 256 -keystore ectest.jks Enter keystore password: Re-enter new password: etc. The configure check doesn't verify that NSS was built with EC support. I couldn't find an easy way of doing this. It is enabled during the build by defining NSS_ENABLE_ECC (-DNSS_ENABLE_ESS). From mozilla/security/coreconf/config.mk: ifdef NSS_ENABLE_ECC DEFINES += -DNSS_ENABLE_ECC endif Thus the define is not available in the installed headers, so the only way to do a check would seem to be to write code to generate an EC key with NSS and check for failure. The same check would later be invalidated if the system NSS changes after OpenJDK is built, and so OpenJDK would need to be rebuilt. If someone wants to write such a test, feel free but AFAICS it wouldn't gain anything. OpenJDK will still build (linking is done at runtime) and if NSS doesn't have EC support, then OpenJDK won't which is no different from the current status quo. Does this look ok for commit? ChangeLog: * HACKING: Updated. * Makefile.am: Add two new patches. Copy nss.cfg to jre/lib/security if NSS is enabled. * configure.ac:Check for NSS and set NSS_LIBDIR and ENABLE_NSS if found. * nss.cfg.in: Template for the nss configuration file. * patches/icedtea-nss-6763530.patch: Fix for Sun bug 6763530 which is triggered by newer versions of NSS. * patches/icedtea-nss-config.patch: Patch java.security with the PCKS11 provider configuration. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 -------------- next part -------------- diff -r 91ea4bb21412 HACKING --- a/HACKING Tue Sep 01 17:05:17 2009 +0100 +++ b/HACKING Thu Sep 03 20:40:26 2009 +0100 @@ -124,7 +124,9 @@ in Asia/Amman TimeZone. SimpleTimeZone checks too strict. * icedtea-dnd-filelists.patch: Fix drag and drop behaviour when dragging a file list between JVMs (S5079469). Backported from OpenJDK. * icedtea-signed-types-hot6.patch: Make use of unsigned/signed types explicit. -* openjdk/6648816.patch: Backport of regression (NPE) fix in AccessControlContext +* openjdk/6648816.patch: Backport of regression (NPE) fix in AccessControlContext (PR364/S6648816) +* icedtea-nss-config.patch: Add the NSS PKCS11 security provider. (PR356) +* icedtea-nss-6763530.patch: Fix PKCS11 provider when used with newer version of NSS (>=3.12.3) (PR356, S6763530). The following patches are only applied to OpenJDK in IcedTea: diff -r 91ea4bb21412 Makefile.am --- a/Makefile.am Tue Sep 01 17:05:17 2009 +0100 +++ b/Makefile.am Thu Sep 03 20:40:26 2009 +0100 @@ -685,6 +685,11 @@ ICEDTEA_PATCHES += patches/icedtea-systemtap.patch endif +if ENABLE_NSS +ICEDTEA_PATCHES += patches/icedtea-nss-config.patch \ + patches/icedtea-nss-6763530.patch +endif + ICEDTEA_PATCHES += \ patches/icedtea-demo-swingapplet.patch \ patches/icedtea-awt-window-size.patch \ @@ -1218,6 +1223,10 @@ $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ fi endif +if ENABLE_NSS + cp $(abs_top_builddir)/nss.cfg \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; +endif @echo "IcedTea is served:" $(BUILD_OUTPUT_DIR) mkdir -p stamps touch stamps/icedtea.stamp @@ -1303,6 +1312,10 @@ $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ fi endif +if ENABLE_NSS + cp $(abs_top_builddir)/nss.cfg \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; +endif @echo "IcedTea (debug build) is served:" \ $(BUILD_OUTPUT_DIR)-debug mkdir -p stamps diff -r 91ea4bb21412 configure.ac --- a/configure.ac Tue Sep 01 17:05:17 2009 +0100 +++ b/configure.ac Thu Sep 03 20:40:26 2009 +0100 @@ -157,6 +157,14 @@ AM_CONDITIONAL([ENABLE_SYSTEMTAP], [test x$ENABLE_SYSTEMTAP = xyes]) AC_MSG_RESULT(${ENABLE_SYSTEMTAP}) +AC_MSG_CHECKING([whether to include elliptic curve cryptography support via NSS]) +AC_ARG_ENABLE([nss], + [AS_HELP_STRING([--enable-nss], + [Enable inclusion of NSS security provider])], + [ENABLE_NSS="${enableval}"], [ENABLE_NSS='no']) +AM_CONDITIONAL([ENABLE_NSS], [test x$ENABLE_NSS = xyes]) +AC_MSG_RESULT(${ENABLE_NSS}) + AC_MSG_CHECKING(how many parallel build jobs to execute) AC_ARG_WITH([parallel-jobs], [AS_HELP_STRING([--with-parallel-jobs], @@ -486,6 +494,18 @@ AC_SUBST(MOZILLA_VERSION_COLLAPSED, $xulrunner_cv_collapsed_version) fi +if test "x${ENABLE_NSS}" = "xyes" +then + PKG_CHECK_MODULES(NSS, nss, [NSS_FOUND=yes], [NSS_FOUND=no]) + if test "x${NSS_FOUND}" = xno + then + AC_MSG_ERROR([Could not find NSS. Either install it or configure using --disable-nss.]) + fi + NSS_LIBDIR=`$PKG_CONFIG --variable=libdir nss` + AC_SUBST(NSS_LIBDIR) + AC_CONFIG_FILES([nss.cfg]) +fi + AC_MSG_CHECKING(for --with-additional-vms) AC_ARG_WITH(additional-vms, AC_HELP_STRING([--with-additional-vms=vm-list], [build additional virtual machines. Valid value is a comma separated string with the backend names `cacao', `zero' and `shark'.]), diff -r 91ea4bb21412 nss.cfg.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nss.cfg.in Thu Sep 03 20:40:26 2009 +0100 @@ -0,0 +1,4 @@ +name = NSS +nssLibraryDirectory = @NSS_LIBDIR@ +nssDbMode = noDb +attributes = compatibility diff -r 91ea4bb21412 patches/icedtea-nss-6763530.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-nss-6763530.patch Thu Sep 03 20:40:26 2009 +0100 @@ -0,0 +1,55 @@ +diff -r 1f83d4e42eda src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java +--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java Mon Aug 31 12:55:15 2009 +0900 ++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java Thu Sep 03 18:47:40 2009 +0100 +@@ -40,6 +40,8 @@ + import sun.security.pkcs11.wrapper.*; + import static sun.security.pkcs11.wrapper.PKCS11Constants.*; + ++import sun.security.util.DerValue; ++ + /** + * EC KeyFactory implemenation. + * +@@ -201,7 +203,14 @@ + + private PublicKey generatePublic(ECPoint point, ECParameterSpec params) throws PKCS11Exception { + byte[] encodedParams = ECParameters.encodeParameters(params); +- byte[] encodedPoint = ECParameters.encodePoint(point, params.getCurve()); ++ DerValue pkECPoint = new DerValue(DerValue.tag_OctetString, ++ ECParameters.encodePoint(point, params.getCurve())); ++ byte[] encodedPoint = null; ++ try { ++ encodedPoint = pkECPoint.toByteArray(); ++ } catch (IOException e) { ++ throw new IllegalArgumentException("Could not DER encode point", e); ++ } + CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { + new CK_ATTRIBUTE(CKA_CLASS, CKO_PUBLIC_KEY), + new CK_ATTRIBUTE(CKA_KEY_TYPE, CKK_EC), +diff -r 1f83d4e42eda src/share/classes/sun/security/pkcs11/P11Key.java +--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11Key.java Mon Aug 31 12:55:15 2009 +0900 ++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Key.java Thu Sep 03 18:47:40 2009 +0100 +@@ -44,6 +44,8 @@ + import sun.security.pkcs11.wrapper.*; + import static sun.security.pkcs11.wrapper.PKCS11Constants.*; + ++import sun.security.util.DerValue; ++ + /** + * Key implementation classes. + * +@@ -1014,10 +1016,13 @@ + }; + fetchAttributes(attributes); + try { ++ DerValue wECPoint = new DerValue(attributes[0].getByteArray()); ++ if (wECPoint.getTag() != DerValue.tag_OctetString) ++ throw new IOException("Unexpected tag: " + wECPoint.getTag()); + params = P11ECKeyFactory.decodeParameters + (attributes[1].getByteArray()); + w = P11ECKeyFactory.decodePoint +- (attributes[0].getByteArray(), params.getCurve()); ++ (wECPoint.getDataBytes(), params.getCurve()); + } catch (Exception e) { + throw new RuntimeException("Could not parse key values", e); + } diff -r 91ea4bb21412 patches/icedtea-nss-config.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-nss-config.patch Thu Sep 03 20:40:26 2009 +0100 @@ -0,0 +1,10 @@ +--- openjdk.orig/jdk/src/share/lib/security/java.security 2009-08-25 11:43:59.000000000 +0100 ++++ openjdk/jdk/src/share/lib/security/java.security 2009-08-27 14:23:54.000000000 +0100 +@@ -51,6 +51,7 @@ + security.provider.6=com.sun.security.sasl.Provider + security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI + security.provider.8=sun.security.smartcardio.SunPCSC ++security.provider.9=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg + + # + # Select the source of seed data for SecureRandom. By default an From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 13:03:05 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 20:03:05 +0000 Subject: [Bug 377] TimeZone.getOffset() fails for some TZ Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 ------- Comment #12 from gnu_andrew at member.fsf.org 2009-09-03 20:03 ------- I've filed a bug on bugs.openjdk.java.net: https://bugs.openjdk.java.net/show_bug.cgi?id=100106 but I don't see the point as this is not (yet) a bug reporting system, but a mechanism for posting patches for those without commit right AIUI. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6851214 http://mail.openjdk.java.net/pipermail/jdk6-dev/2009-September/000717.html http://cr.openjdk.java.net/~andrew/6851214/webrev.01/ This is still a bug in IcedTea while we still have to maintain a patch separate from the upstream sources. IcedTea is not a fork. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 13:03:38 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 20:03:38 +0000 Subject: [Bug 377] TimeZone.getOffset() fails for some TZ Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |http://bugs.sun.com/bugdatab | |ase/view_bug.do?bug_id=68512 | |14 ------- Comment #13 from gnu_andrew at member.fsf.org 2009-09-03 20:03 ------- Add Sun bug ID link. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 13:05:34 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 20:05:34 +0000 Subject: [Bug 381] Stackoverflow error with security manager, signed jars and -Djava.security.debug set Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 ------- Comment #24 from gnu_andrew at member.fsf.org 2009-09-03 20:05 ------- I don't believe it is enough. Having to maintain a patch to the sources in IcedTea is still a bug. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 13:25:30 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 20:25:30 +0000 Subject: [Bug 381] Stackoverflow error with security manager, signed jars and -Djava.security.debug set Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 ------- Comment #25 from mark at klomp.org 2009-09-03 20:25 ------- (In reply to comment #24) > I don't believe it is enough. Having to maintain a patch to the sources in > IcedTea is still a bug. Yes, but a bug upstream :) If they don't accept patches for working code that is a bug, but sadly that is what happens. If OpenJDK merged all IcedTea contributions then we wouldn't need IcedTea anymore indeed. But sadly for lots of reasons they don't :( Either because they don't care about some issues, because they are just slow in accepting or because of silly legal reasons, but that is how it is. BTW. I am not saying you shouldn't try. I am extremely happy you try and are so persistent. I am just saying that I don't think trying to track such issues in the IcedTea bugzilla is the most efficient way to do such things. There is the wiki and the openjdk bug tracker that are more appropriate imho. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 15:53:02 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 22:53:02 +0000 Subject: [Bug 381] Stackoverflow error with security manager, signed jars and -Djava.security.debug set Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |ASSIGNED ------- Comment #26 from gnu_andrew at member.fsf.org 2009-09-03 22:53 ------- Ok. It just feels like I'm the only one doing so at times, despite this being what we are all supposed to be aiming for. Are you ok with your patch going upstream? If so, then I'll start trying to push it upstream, record that here and close the bug. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 15:54:53 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 22:54:53 +0000 Subject: [Bug 235] Zero/Shark doesn't correctly replace HotSpot in IcedTea6 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=235 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID ------- Comment #2 from gnu_andrew at member.fsf.org 2009-09-03 22:54 ------- Closed this as invalid now, as everything is based on b14. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 15:59:49 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Sep 2009 22:59:49 +0000 Subject: [Bug 377] TimeZone.getOffset() fails for some TZ Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED ------- Comment #14 from gnu_andrew at member.fsf.org 2009-09-03 22:59 ------- Tracked upstream. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu Sep 3 23:45:50 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 04 Sep 2009 06:45:50 +0000 Subject: [Bug 381] Stackoverflow error with security manager, signed jars and -Djava.security.debug set Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 ------- Comment #27 from mark at klomp.org 2009-09-04 06:45 ------- (In reply to comment #26) > Ok. It just feels like I'm the only one doing so at times, despite this being > what we are all supposed to be aiming for. Yeah, understood and appreciated. You definitely are the person pushing the most, hardest and persistent. > Are you ok with your patch going upstream? If so, then I'll start trying to > push it upstream, record that here and close the bug. That was the intention of Keith originally back in August 2007 and if accepted, the bugfixes/improvements made should also be pushed. http://mail.openjdk.java.net/pipermail/core-libs-dev/2007-August/000066.html Note that part two, the icedtea-timezone-default-permission.patch was already independently found by someone else and pushed into openjdk7. See the discussion linked in comment #19 and connent #20. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From gbenson at icedtea.classpath.org Fri Sep 4 02:49:14 2009 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Fri, 04 Sep 2009 09:49:14 +0000 Subject: /hg/icedtea6: 2009-09-04 Gary Benson Message-ID: changeset 903849a786da in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=903849a786da author: Gary Benson date: Fri Sep 04 05:43:23 2009 -0400 2009-09-04 Gary Benson * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp (ICache::initialize): New method. (ICache::invalidate_word): Likewise. (ICache::invalidate_range): Likewise. * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp (ICacheStubGenerator::generate_icache_flush): Replaced with stub. * patches/icedtea-zero.patch (AbstractICache::invalidate_range): Removed #ifdef ZERO. diffstat: 4 files changed, 22 insertions(+), 27 deletions(-) ChangeLog | 13 +++++++++++++ patches/icedtea-zero.patch | 18 ------------------ ports/hotspot/src/cpu/zero/vm/icache_zero.cpp | 8 ++------ ports/hotspot/src/cpu/zero/vm/icache_zero.hpp | 10 +++++++--- diffs (98 lines): diff -r cc4f8460a676 -r 903849a786da ChangeLog --- a/ChangeLog Thu Sep 03 11:23:31 2009 -0400 +++ b/ChangeLog Fri Sep 04 05:43:23 2009 -0400 @@ -1,3 +1,16 @@ 2009-09-03 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp + (ICache::initialize): New method. + (ICache::invalidate_word): Likewise. + (ICache::invalidate_range): Likewise. + + * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp + (ICacheStubGenerator::generate_icache_flush): Replaced with stub. + + * patches/icedtea-zero.patch + (AbstractICache::invalidate_range): Removed #ifdef ZERO. + 2009-09-03 Gary Benson * ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp: Reformatted diff -r cc4f8460a676 -r 903849a786da patches/icedtea-zero.patch --- a/patches/icedtea-zero.patch Thu Sep 03 11:23:31 2009 -0400 +++ b/patches/icedtea-zero.patch Fri Sep 04 05:43:23 2009 -0400 @@ -100,24 +100,6 @@ tty->print_cr("self_link: " INTPTR_FORMAT, (uintptr_t) this->_self_link); } ---- openjdk/hotspot/src/share/vm/runtime/icache.cpp.orig 2008-07-27 08:37:02.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/icache.cpp 2008-07-27 08:38:13.000000000 +0000 -@@ -78,6 +78,7 @@ - } - - void AbstractICache::invalidate_range(address start, int nbytes) { -+#ifndef ZERO - static bool firstTime = true; - if (firstTime) { - guarantee(start == CAST_FROM_FN_PTR(address, _flush_icache_stub), -@@ -97,6 +98,7 @@ - } - call_flush_stub(start, round_to(nbytes, ICache::line_size) >> - ICache::log2_line_size); -+#endif - } - - // For init.cpp --- openjdk/hotspot/src/share/vm/runtime/mutex.hpp.orig 2008-07-27 08:37:02.000000000 +0000 +++ openjdk/hotspot/src/share/vm/runtime/mutex.hpp 2008-07-27 08:38:13.000000000 +0000 @@ -61,18 +61,10 @@ diff -r cc4f8460a676 -r 903849a786da ports/hotspot/src/cpu/zero/vm/icache_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/icache_zero.cpp Thu Sep 03 11:23:31 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/icache_zero.cpp Fri Sep 04 05:43:23 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007 Red Hat, Inc. + * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,11 +26,7 @@ #include "incls/_precompiled.incl" #include "incls/_icache_zero.cpp.incl" - void ICacheStubGenerator::generate_icache_flush( ICache::flush_icache_stub_t* flush_icache_stub) { - - StubCodeMark mark(this, "ICache", "flush_icache_stub"); - - *flush_icache_stub = (ICache::flush_icache_stub_t) UnimplementedStub(); + Unimplemented(); } diff -r cc4f8460a676 -r 903849a786da ports/hotspot/src/cpu/zero/vm/icache_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/icache_zero.hpp Thu Sep 03 11:23:31 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/icache_zero.hpp Fri Sep 04 05:43:23 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007 Red Hat, Inc. + * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,8 +25,12 @@ // Interface for updating the instruction cache. Whenever the VM // modifies code, part of the processor instruction cache potentially -// has to be flushed. +// has to be flushed. This implementation is empty: Zero never deals +// with code, and LLVM handles cache flushing for Shark. class ICache : public AbstractICache { - // Use default implementation + public: + static void initialize() {} + static void invalidate_word(address addr) {} + static void invalidate_range(address start, int nbytes) {} }; From gbenson at redhat.com Fri Sep 4 02:54:35 2009 From: gbenson at redhat.com (Gary Benson) Date: Fri, 4 Sep 2009 10:54:35 +0100 Subject: Zero ICache fixes Message-ID: <20090904095435.GA3312@redhat.com> Hi all, This commit rearranges the instruction cache code in Zero to remove a conditional that the HotSpot engineers didn't like. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r cc4f8460a676 ChangeLog --- a/ChangeLog Thu Sep 03 11:23:31 2009 -0400 +++ b/ChangeLog Fri Sep 04 05:43:02 2009 -0400 @@ -1,3 +1,16 @@ +2009-09-04 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp + (ICache::initialize): New method. + (ICache::invalidate_word): Likewise. + (ICache::invalidate_range): Likewise. + + * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp + (ICacheStubGenerator::generate_icache_flush): Replaced with stub. + + * patches/icedtea-zero.patch + (AbstractICache::invalidate_range): Removed #ifdef ZERO. + 2009-09-03 Gary Benson * ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp: Reformatted diff -r cc4f8460a676 patches/icedtea-zero.patch --- a/patches/icedtea-zero.patch Thu Sep 03 11:23:31 2009 -0400 +++ b/patches/icedtea-zero.patch Fri Sep 04 05:43:02 2009 -0400 @@ -100,24 +100,6 @@ tty->print_cr("self_link: " INTPTR_FORMAT, (uintptr_t) this->_self_link); } ---- openjdk/hotspot/src/share/vm/runtime/icache.cpp.orig 2008-07-27 08:37:02.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/icache.cpp 2008-07-27 08:38:13.000000000 +0000 -@@ -78,6 +78,7 @@ - } - - void AbstractICache::invalidate_range(address start, int nbytes) { -+#ifndef ZERO - static bool firstTime = true; - if (firstTime) { - guarantee(start == CAST_FROM_FN_PTR(address, _flush_icache_stub), -@@ -97,6 +98,7 @@ - } - call_flush_stub(start, round_to(nbytes, ICache::line_size) >> - ICache::log2_line_size); -+#endif - } - - // For init.cpp --- openjdk/hotspot/src/share/vm/runtime/mutex.hpp.orig 2008-07-27 08:37:02.000000000 +0000 +++ openjdk/hotspot/src/share/vm/runtime/mutex.hpp 2008-07-27 08:38:13.000000000 +0000 @@ -61,18 +61,10 @@ diff -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/icache_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/icache_zero.cpp Thu Sep 03 11:23:31 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/icache_zero.cpp Fri Sep 04 05:43:02 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007 Red Hat, Inc. + * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,11 +26,7 @@ #include "incls/_precompiled.incl" #include "incls/_icache_zero.cpp.incl" - void ICacheStubGenerator::generate_icache_flush( ICache::flush_icache_stub_t* flush_icache_stub) { - - StubCodeMark mark(this, "ICache", "flush_icache_stub"); - - *flush_icache_stub = (ICache::flush_icache_stub_t) UnimplementedStub(); + Unimplemented(); } diff -r cc4f8460a676 ports/hotspot/src/cpu/zero/vm/icache_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/icache_zero.hpp Thu Sep 03 11:23:31 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/icache_zero.hpp Fri Sep 04 05:43:02 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007 Red Hat, Inc. + * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,8 +25,12 @@ // Interface for updating the instruction cache. Whenever the VM // modifies code, part of the processor instruction cache potentially -// has to be flushed. +// has to be flushed. This implementation is empty: Zero never deals +// with code, and LLVM handles cache flushing for Shark. class ICache : public AbstractICache { - // Use default implementation + public: + static void initialize() {} + static void invalidate_word(address addr) {} + static void invalidate_range(address start, int nbytes) {} }; From gbenson at icedtea.classpath.org Fri Sep 4 04:20:21 2009 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Fri, 04 Sep 2009 11:20:21 +0000 Subject: /hg/icedtea6: 2009-09-04 Gary Benson Message-ID: changeset 61433ed873cf in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=61433ed873cf author: Gary Benson date: Fri Sep 04 07:14:31 2009 -0400 2009-09-04 Gary Benson * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp (ZeroEntry::method_entry_t): Renamed as... (ZeroEntry::NormalEntryFunc): New type. (ZeroEntry::osr_entry_t): Renamed as... (ZeroEntry::OSREntryFunc): New type. (ZeroEntry::_entry_point): Changed type. (ZeroEntry::entry_point): Changed signature. (ZeroEntry::set_entry_point): Likewise. (ZeroEntry::invoke): Added cast. (ZeroEntry::invoke_osr): Updated cast. * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp (CppInterpreter::generate_entry): Changed signature. * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp (InterpreterGenerator::generate_normal_entry): Added cast. (InterpreterGenerator::generate_native_entry): Likewise. (InterpreterGenerator::generate_accessor_entry): Likewise. (InterpreterGenerator::generate_empty_entry): Likewise. (AbstractInterpreterGenerator::generate_method_entry): Likewise. * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp (SharkCompiler::compile_method): Updated cast. * ports/hotspot/src/share/vm/shark/sharkEntry.hpp (SharkEntry::code_start): Removed cast. * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp (NativeJump::patch_verified_entry): Added cast. diffstat: 7 files changed, 70 insertions(+), 37 deletions(-) ChangeLog | 32 +++++++++ ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp | 4 - ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 35 ++++------ ports/hotspot/src/cpu/zero/vm/entry_zero.hpp | 28 ++++---- ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp | 3 ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 3 ports/hotspot/src/share/vm/shark/sharkEntry.hpp | 2 diffs (257 lines): diff -r 903849a786da -r 61433ed873cf ChangeLog --- a/ChangeLog Fri Sep 04 05:43:23 2009 -0400 +++ b/ChangeLog Fri Sep 04 07:14:31 2009 -0400 @@ -1,3 +1,35 @@ 2009-09-04 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp + (ZeroEntry::method_entry_t): Renamed as... + (ZeroEntry::NormalEntryFunc): New type. + (ZeroEntry::osr_entry_t): Renamed as... + (ZeroEntry::OSREntryFunc): New type. + (ZeroEntry::_entry_point): Changed type. + (ZeroEntry::entry_point): Changed signature. + (ZeroEntry::set_entry_point): Likewise. + (ZeroEntry::invoke): Added cast. + (ZeroEntry::invoke_osr): Updated cast. + + * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp + (CppInterpreter::generate_entry): Changed signature. + + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (InterpreterGenerator::generate_normal_entry): Added cast. + (InterpreterGenerator::generate_native_entry): Likewise. + (InterpreterGenerator::generate_accessor_entry): Likewise. + (InterpreterGenerator::generate_empty_entry): Likewise. + (AbstractInterpreterGenerator::generate_method_entry): Likewise. + + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp + (SharkCompiler::compile_method): Updated cast. + + * ports/hotspot/src/share/vm/shark/sharkEntry.hpp + (SharkEntry::code_start): Removed cast. + + * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp + (NativeJump::patch_verified_entry): Added cast. + 2009-09-04 Gary Benson * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp diff -r 903849a786da -r 61433ed873cf ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp Fri Sep 04 07:14:31 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,7 +29,7 @@ } protected: - address generate_entry(ZeroEntry::method_entry_t entry_point) { + address generate_entry(address entry_point) { ZeroEntry *entry = (ZeroEntry *) assembler()->pc(); assembler()->advance(sizeof(ZeroEntry)); entry->set_entry_point(entry_point); diff -r 903849a786da -r 61433ed873cf ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri Sep 04 07:14:31 2009 -0400 @@ -697,26 +697,26 @@ address InterpreterGenerator::generate_e if (!UseFastEmptyMethods) return NULL; - return generate_entry(CppInterpreter::empty_entry); + return generate_entry((address) CppInterpreter::empty_entry); } address InterpreterGenerator::generate_accessor_entry() { if (!UseFastAccessorMethods) return NULL; - return generate_entry(CppInterpreter::accessor_entry); + return generate_entry((address) CppInterpreter::accessor_entry); } address InterpreterGenerator::generate_native_entry(bool synchronized) { - assert (synchronized == false, "should be"); - - return generate_entry(CppInterpreter::native_entry); + assert(synchronized == false, "should be"); + + return generate_entry((address) CppInterpreter::native_entry); } address InterpreterGenerator::generate_normal_entry(bool synchronized) { - assert (synchronized == false, "should be"); - - return generate_entry(CppInterpreter::normal_entry); + assert(synchronized == false, "should be"); + + return generate_entry((address) CppInterpreter::normal_entry); } #if defined(PRODUCT) && defined(HOTSPOT_ASM) @@ -727,16 +727,15 @@ extern "C" BCI_ENTRY asm_generate_method address AbstractInterpreterGenerator::generate_method_entry( AbstractInterpreter::MethodKind kind) { - address entry_point = NULL; #if defined(PRODUCT) && defined(HOTSPOT_ASM) if (!UseCompiler && !TaggedStackInterpreter && !JvmtiExport::can_post_interpreter_events() && !PrintCommandLineFlags) { - BCI_ENTRY asm_entry = asm_generate_method_entry(kind); + address asm_entry = (address) asm_generate_method_entry(kind); if (asm_entry) - return ((InterpreterGenerator*)this)->generate_entry(asm_entry); + return ((InterpreterGenerator*) this)->generate_entry(asm_entry); } #endif // HOTSPOT_ASM @@ -746,23 +745,23 @@ address AbstractInterpreterGenerator::ge break; case Interpreter::native: - entry_point = ((InterpreterGenerator*)this)->generate_native_entry(false); + entry_point = ((InterpreterGenerator*) this)->generate_native_entry(false); break; case Interpreter::native_synchronized: - entry_point = ((InterpreterGenerator*)this)->generate_native_entry(false); + entry_point = ((InterpreterGenerator*) this)->generate_native_entry(false); break; case Interpreter::empty: - entry_point = ((InterpreterGenerator*)this)->generate_empty_entry(); + entry_point = ((InterpreterGenerator*) this)->generate_empty_entry(); break; case Interpreter::accessor: - entry_point = ((InterpreterGenerator*)this)->generate_accessor_entry(); + entry_point = ((InterpreterGenerator*) this)->generate_accessor_entry(); break; case Interpreter::abstract: - entry_point = ((InterpreterGenerator*)this)->generate_abstract_entry(); + entry_point = ((InterpreterGenerator*) this)->generate_abstract_entry(); break; case Interpreter::java_lang_math_sin: @@ -772,7 +771,7 @@ address AbstractInterpreterGenerator::ge case Interpreter::java_lang_math_log: case Interpreter::java_lang_math_log10: case Interpreter::java_lang_math_sqrt: - entry_point = ((InterpreterGenerator*)this)->generate_math_entry(kind); + entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind); break; default: @@ -780,7 +779,7 @@ address AbstractInterpreterGenerator::ge } if (entry_point == NULL) - entry_point = ((InterpreterGenerator*)this)->generate_normal_entry(false); + entry_point = ((InterpreterGenerator*) this)->generate_normal_entry(false); return entry_point; } diff -r 903849a786da -r 61433ed873cf ports/hotspot/src/cpu/zero/vm/entry_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/entry_zero.hpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/entry_zero.hpp Fri Sep 04 07:14:31 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,30 +29,32 @@ class ZeroEntry { ShouldNotCallThis(); } - public: - typedef void (*method_entry_t)(methodOop method, intptr_t base_pc, TRAPS); - typedef void (*osr_entry_t)(methodOop method, - address osr_buf, - intptr_t base_pc, - TRAPS); - private: - method_entry_t _entry_point; + address _entry_point; public: - method_entry_t entry_point() const { + address entry_point() const { return _entry_point; } - void set_entry_point(method_entry_t entry_point) { + void set_entry_point(address entry_point) { _entry_point = entry_point; } + private: + typedef void (*NormalEntryFunc)(methodOop method, + intptr_t base_pc, + TRAPS); + typedef void (*OSREntryFunc)(methodOop method, + address osr_buf, + intptr_t base_pc, + TRAPS); + public: void invoke(methodOop method, TRAPS) const { - entry_point()(method, (intptr_t) this, THREAD); + ((NormalEntryFunc) entry_point())(method, (intptr_t) this, THREAD); } void invoke_osr(methodOop method, address osr_buf, TRAPS) const { - ((osr_entry_t) entry_point())(method, osr_buf, (intptr_t) this, THREAD); + ((OSREntryFunc) entry_point())(method, osr_buf, (intptr_t) this, THREAD); } public: diff -r 903849a786da -r 61433ed873cf ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp Fri Sep 04 07:14:31 2009 -0400 @@ -42,7 +42,8 @@ void NativeJump::patch_verified_entry(ad assert(dest == SharedRuntime::get_handle_wrong_method_stub(), "should be"); #ifdef CC_INTERP - ((ZeroEntry*) verified_entry)->set_entry_point(CppInterpreter::normal_entry); + ((ZeroEntry*) verified_entry)->set_entry_point( + (address) CppInterpreter::normal_entry); #else Unimplemented(); #endif // CC_INTERP diff -r 903849a786da -r 61433ed873cf ports/hotspot/src/share/vm/shark/sharkCompiler.cpp --- a/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp Fri Sep 04 07:14:31 2009 -0400 @@ -169,8 +169,7 @@ void SharkCompiler::compile_method(ciEnv memory_manager()->set_entry_for_function(function, entry); module()->getFunctionList().push_back(function); entry->set_entry_point( - (ZeroEntry::method_entry_t) - execution_engine()->getPointerToFunction(function)); + (address) execution_engine()->getPointerToFunction(function)); address code_start = entry->code_start(); address code_limit = entry->code_limit(); diff -r 903849a786da -r 61433ed873cf ports/hotspot/src/share/vm/shark/sharkEntry.hpp --- a/ports/hotspot/src/share/vm/shark/sharkEntry.hpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkEntry.hpp Fri Sep 04 07:14:31 2009 -0400 @@ -31,7 +31,7 @@ class SharkEntry : public ZeroEntry { public: address code_start() const { - return (address) entry_point(); + return entry_point(); } address code_limit() const { From gbenson at redhat.com Fri Sep 4 04:24:42 2009 From: gbenson at redhat.com (Gary Benson) Date: Fri, 4 Sep 2009 12:24:42 +0100 Subject: Zero type changes Message-ID: <20090904112442.GB3312@redhat.com> Hi all, This commit changes the name of some types that didn't match the usual HotSpot coding standards. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r 903849a786da ChangeLog --- a/ChangeLog Fri Sep 04 05:43:23 2009 -0400 +++ b/ChangeLog Fri Sep 04 07:13:01 2009 -0400 @@ -1,3 +1,35 @@ +2009-09-04 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp + (ZeroEntry::method_entry_t): Renamed as... + (ZeroEntry::NormalEntryFunc): New type. + (ZeroEntry::osr_entry_t): Renamed as... + (ZeroEntry::OSREntryFunc): New type. + (ZeroEntry::_entry_point): Changed type. + (ZeroEntry::entry_point): Changed signature. + (ZeroEntry::set_entry_point): Likewise. + (ZeroEntry::invoke): Added cast. + (ZeroEntry::invoke_osr): Updated cast. + + * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp + (CppInterpreter::generate_entry): Changed signature. + + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (InterpreterGenerator::generate_normal_entry): Added cast. + (InterpreterGenerator::generate_native_entry): Likewise. + (InterpreterGenerator::generate_accessor_entry): Likewise. + (InterpreterGenerator::generate_empty_entry): Likewise. + (AbstractInterpreterGenerator::generate_method_entry): Likewise. + + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp + (SharkCompiler::compile_method): Updated cast. + + * ports/hotspot/src/share/vm/shark/sharkEntry.hpp + (SharkEntry::code_start): Removed cast. + + * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp + (NativeJump::patch_verified_entry): Added cast. + 2009-09-04 Gary Benson * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp diff -r 903849a786da ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp Fri Sep 04 07:13:01 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,7 +29,7 @@ } protected: - address generate_entry(ZeroEntry::method_entry_t entry_point) { + address generate_entry(address entry_point) { ZeroEntry *entry = (ZeroEntry *) assembler()->pc(); assembler()->advance(sizeof(ZeroEntry)); entry->set_entry_point(entry_point); diff -r 903849a786da ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri Sep 04 07:13:01 2009 -0400 @@ -697,26 +697,26 @@ if (!UseFastEmptyMethods) return NULL; - return generate_entry(CppInterpreter::empty_entry); + return generate_entry((address) CppInterpreter::empty_entry); } address InterpreterGenerator::generate_accessor_entry() { if (!UseFastAccessorMethods) return NULL; - return generate_entry(CppInterpreter::accessor_entry); + return generate_entry((address) CppInterpreter::accessor_entry); } address InterpreterGenerator::generate_native_entry(bool synchronized) { - assert (synchronized == false, "should be"); + assert(synchronized == false, "should be"); - return generate_entry(CppInterpreter::native_entry); + return generate_entry((address) CppInterpreter::native_entry); } address InterpreterGenerator::generate_normal_entry(bool synchronized) { - assert (synchronized == false, "should be"); + assert(synchronized == false, "should be"); - return generate_entry(CppInterpreter::normal_entry); + return generate_entry((address) CppInterpreter::normal_entry); } #if defined(PRODUCT) && defined(HOTSPOT_ASM) @@ -727,16 +727,15 @@ address AbstractInterpreterGenerator::generate_method_entry( AbstractInterpreter::MethodKind kind) { - address entry_point = NULL; #if defined(PRODUCT) && defined(HOTSPOT_ASM) if (!UseCompiler && !TaggedStackInterpreter && !JvmtiExport::can_post_interpreter_events() && !PrintCommandLineFlags) { - BCI_ENTRY asm_entry = asm_generate_method_entry(kind); + address asm_entry = (address) asm_generate_method_entry(kind); if (asm_entry) - return ((InterpreterGenerator*)this)->generate_entry(asm_entry); + return ((InterpreterGenerator*) this)->generate_entry(asm_entry); } #endif // HOTSPOT_ASM @@ -746,23 +745,23 @@ break; case Interpreter::native: - entry_point = ((InterpreterGenerator*)this)->generate_native_entry(false); + entry_point = ((InterpreterGenerator*) this)->generate_native_entry(false); break; case Interpreter::native_synchronized: - entry_point = ((InterpreterGenerator*)this)->generate_native_entry(false); + entry_point = ((InterpreterGenerator*) this)->generate_native_entry(false); break; case Interpreter::empty: - entry_point = ((InterpreterGenerator*)this)->generate_empty_entry(); + entry_point = ((InterpreterGenerator*) this)->generate_empty_entry(); break; case Interpreter::accessor: - entry_point = ((InterpreterGenerator*)this)->generate_accessor_entry(); + entry_point = ((InterpreterGenerator*) this)->generate_accessor_entry(); break; case Interpreter::abstract: - entry_point = ((InterpreterGenerator*)this)->generate_abstract_entry(); + entry_point = ((InterpreterGenerator*) this)->generate_abstract_entry(); break; case Interpreter::java_lang_math_sin: @@ -772,7 +771,7 @@ case Interpreter::java_lang_math_log: case Interpreter::java_lang_math_log10: case Interpreter::java_lang_math_sqrt: - entry_point = ((InterpreterGenerator*)this)->generate_math_entry(kind); + entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind); break; default: @@ -780,7 +779,7 @@ } if (entry_point == NULL) - entry_point = ((InterpreterGenerator*)this)->generate_normal_entry(false); + entry_point = ((InterpreterGenerator*) this)->generate_normal_entry(false); return entry_point; } diff -r 903849a786da ports/hotspot/src/cpu/zero/vm/entry_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/entry_zero.hpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/entry_zero.hpp Fri Sep 04 07:13:01 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -29,30 +29,32 @@ ShouldNotCallThis(); } - public: - typedef void (*method_entry_t)(methodOop method, intptr_t base_pc, TRAPS); - typedef void (*osr_entry_t)(methodOop method, - address osr_buf, - intptr_t base_pc, - TRAPS); - private: - method_entry_t _entry_point; + address _entry_point; public: - method_entry_t entry_point() const { + address entry_point() const { return _entry_point; } - void set_entry_point(method_entry_t entry_point) { + void set_entry_point(address entry_point) { _entry_point = entry_point; } + private: + typedef void (*NormalEntryFunc)(methodOop method, + intptr_t base_pc, + TRAPS); + typedef void (*OSREntryFunc)(methodOop method, + address osr_buf, + intptr_t base_pc, + TRAPS); + public: void invoke(methodOop method, TRAPS) const { - entry_point()(method, (intptr_t) this, THREAD); + ((NormalEntryFunc) entry_point())(method, (intptr_t) this, THREAD); } void invoke_osr(methodOop method, address osr_buf, TRAPS) const { - ((osr_entry_t) entry_point())(method, osr_buf, (intptr_t) this, THREAD); + ((OSREntryFunc) entry_point())(method, osr_buf, (intptr_t) this, THREAD); } public: diff -r 903849a786da ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp Fri Sep 04 07:13:01 2009 -0400 @@ -42,7 +42,8 @@ assert(dest == SharedRuntime::get_handle_wrong_method_stub(), "should be"); #ifdef CC_INTERP - ((ZeroEntry*) verified_entry)->set_entry_point(CppInterpreter::normal_entry); + ((ZeroEntry*) verified_entry)->set_entry_point( + (address) CppInterpreter::normal_entry); #else Unimplemented(); #endif // CC_INTERP diff -r 903849a786da ports/hotspot/src/share/vm/shark/sharkCompiler.cpp --- a/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp Fri Sep 04 07:13:01 2009 -0400 @@ -169,8 +169,7 @@ memory_manager()->set_entry_for_function(function, entry); module()->getFunctionList().push_back(function); entry->set_entry_point( - (ZeroEntry::method_entry_t) - execution_engine()->getPointerToFunction(function)); + (address) execution_engine()->getPointerToFunction(function)); address code_start = entry->code_start(); address code_limit = entry->code_limit(); diff -r 903849a786da ports/hotspot/src/share/vm/shark/sharkEntry.hpp --- a/ports/hotspot/src/share/vm/shark/sharkEntry.hpp Fri Sep 04 05:43:23 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkEntry.hpp Fri Sep 04 07:13:01 2009 -0400 @@ -31,7 +31,7 @@ public: address code_start() const { - return (address) entry_point(); + return entry_point(); } address code_limit() const { From gnu_andrew at member.fsf.org Fri Sep 4 06:53:24 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Fri, 4 Sep 2009 14:53:24 +0100 Subject: Zero type changes In-Reply-To: <20090904112442.GB3312@redhat.com> References: <20090904112442.GB3312@redhat.com> Message-ID: <17c6771e0909040653p50eb6e28h50e8fc872062a25b@mail.gmail.com> 2009/9/4 Gary Benson : > Hi all, > > This commit changes the name of some types that didn't match the > usual HotSpot coding standards. > > Cheers, > Gary > > -- > http://gbenson.net/ > Is this for the new version of the submitted Zero patch? If so, I'll commit it to the IcedTea forest. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From langel at icedtea.classpath.org Fri Sep 4 06:51:08 2009 From: langel at icedtea.classpath.org (langel at icedtea.classpath.org) Date: Fri, 04 Sep 2009 13:51:08 +0000 Subject: /hg/release/icedtea6-1.5: 2009-09-04 Lillian Angel changeset 634b6ed02270 in /hg/release/icedtea6-1.5 details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=634b6ed02270 author: langel date: Fri Sep 04 09:54:18 2009 -0400 2009-09-04 Lillian Angel * NEWS: Updated for 1.5.2 release. diffstat: 2 files changed, 8 insertions(+) ChangeLog | 4 ++++ NEWS | 4 ++++ diffs (22 lines): diff -r 180570a437ab -r 634b6ed02270 ChangeLog --- a/ChangeLog Wed Sep 02 14:19:58 2009 -0400 +++ b/ChangeLog Fri Sep 04 09:54:18 2009 -0400 @@ -1,3 +1,7 @@ 2009-09-02 Lillian Angel + + * NEWS: Updated for 1.5.2 release. + 2009-09-02 Lillian Angel * configure.ac: Moved version back to 1.5.2. diff -r 180570a437ab -r 634b6ed02270 NEWS --- a/NEWS Wed Sep 02 14:19:58 2009 -0400 +++ b/NEWS Fri Sep 04 09:54:18 2009 -0400 @@ -1,3 +1,7 @@ New in release 1.5.1 (2009-08-07) +New in release 1.5.2 (2009-09-04) +- Timezone fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 +- Stackoverflow error fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 + New in release 1.5.1 (2009-08-07) - Security updates from Sun. - Plugin/Netx security fix. From langel at icedtea.classpath.org Fri Sep 4 07:01:57 2009 From: langel at icedtea.classpath.org (langel at icedtea.classpath.org) Date: Fri, 04 Sep 2009 14:01:57 +0000 Subject: /hg/release/icedtea6-1.5: 2009-09-04 Lillian Angel changeset 7ea6d4f11077 in /hg/release/icedtea6-1.5 details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=7ea6d4f11077 author: langel date: Fri Sep 04 10:05:08 2009 -0400 2009-09-04 Lillian Angel * NEWS: Updated for 1.5.2 release. diffstat: 1 file changed, 2 insertions(+) NEWS | 2 ++ diffs (12 lines): diff -r 634b6ed02270 -r 7ea6d4f11077 NEWS --- a/NEWS Fri Sep 04 09:54:18 2009 -0400 +++ b/NEWS Fri Sep 04 10:05:08 2009 -0400 @@ -1,6 +1,8 @@ New in release 1.5.2 (2009-09-04) New in release 1.5.2 (2009-09-04) - Timezone fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 - Stackoverflow error fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 +- Backport regression (NPE) fix for AccessControlContext fix +- Bump to hs14b16 New in release 1.5.1 (2009-08-07) - Security updates from Sun. From gbenson at redhat.com Fri Sep 4 07:08:47 2009 From: gbenson at redhat.com (Gary Benson) Date: Fri, 4 Sep 2009 15:08:47 +0100 Subject: Zero type changes In-Reply-To: <17c6771e0909040653p50eb6e28h50e8fc872062a25b@mail.gmail.com> References: <20090904112442.GB3312@redhat.com> <17c6771e0909040653p50eb6e28h50e8fc872062a25b@mail.gmail.com> Message-ID: <20090904140846.GC3312@redhat.com> Andrew John Hughes wrote: > 2009/9/4 Gary Benson : > > This commit changes the name of some types that didn't match the > > usual HotSpot coding standards. > > Is this for the new version of the submitted Zero patch? If so, I'll > commit it to the IcedTea forest. It might be easier to wait until I've created a new webrev, then back out the previous one and apply the new one. Up to you though :) Cheers, Gary -- http://gbenson.net/ From gnu_andrew at member.fsf.org Fri Sep 4 07:14:54 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Fri, 4 Sep 2009 15:14:54 +0100 Subject: Zero type changes In-Reply-To: <20090904140846.GC3312@redhat.com> References: <20090904112442.GB3312@redhat.com> <17c6771e0909040653p50eb6e28h50e8fc872062a25b@mail.gmail.com> <20090904140846.GC3312@redhat.com> Message-ID: <17c6771e0909040714h328d2fb0t87dac8dd99efc909@mail.gmail.com> 2009/9/4 Gary Benson : > Andrew John Hughes wrote: >> 2009/9/4 Gary Benson : >> > This commit changes the name of some types that didn't match the >> > usual HotSpot coding standards. >> >> Is this for the new version of the submitted Zero patch? If so, I'll >> commit it to the IcedTea forest. > > It might be easier to wait until I've created a new webrev, then back > out the previous one and apply the new one. ?Up to you though :) > > Cheers, > Gary > > -- > http://gbenson.net/ > Yeah I may as well wait for the new webrev so I know what I'm getting :) Shouldn't be any need to back out the old one though, it should merge on top just fine. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From bugzilla-daemon at icedtea.classpath.org Fri Sep 4 08:08:20 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 04 Sep 2009 15:08:20 +0000 Subject: [Bug 381] Stackoverflow error with security manager, signed jars and -Djava.security.debug set Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 ------- Comment #28 from gnu_andrew at member.fsf.org 2009-09-04 15:08 ------- Yeah, I've already started the push for the tzdata patch as I mentioned above. I was referring to the new patch. Given it's already in 7, I can't see Joe having a problem with getting it into 6. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From langel at redhat.com Fri Sep 4 08:55:33 2009 From: langel at redhat.com (Lillian Angel) Date: Fri, 04 Sep 2009 11:55:33 -0400 Subject: IcedTea 1.5.2 Released! Message-ID: <4AA13875.9040304@redhat.com> We are proud to announce the release of IcedTea6 1.5.2. The IcedTea6 project provides a harness to build the source code from OpenJDK6 (http://openjdk.java.net) using Free Software build tools. What's New? ----------------- - Timezone fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 - Stackoverflow error fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 - Backport regression (NPE) fix for AccessControlContext fix - Bump to hs14b16 ----------------- The tarball and nosrc RPM can be downloaded here: http://icedtea.classpath.org/download/fedora/java-1.6.0-openjdk-1.6.0.0-28.b16.fc11.nosrc.rpm http://icedtea.classpath.org/download/source/icedtea6-1.5.2.tar.gz The following people helped with this release: Gary Benson, Deepak Bhole, Andrew Haley, Andrew John Hughes, Mark Wielaard, Lillian Angel We would also like to thank the bug reporters and testers! To get started: $ hg clone http://icedtea.classpath.org/hg/release/icedtea6-1.5 $ cd icedtea6-1.5 Full build requirements and instructions are in INSTALL: $ ./configure [--enable-visualvm --with-openjdk --enable-pulse-java --enable-systemtap ...] $ make From martinrb at google.com Fri Sep 4 12:57:32 2009 From: martinrb at google.com (Martin Buchholz) Date: Fri, 4 Sep 2009 12:57:32 -0700 Subject: IcedTea 1.5.2 Released! In-Reply-To: <4AA13875.9040304@redhat.com> References: <4AA13875.9040304@redhat.com> Message-ID: <1ccfd1c10909041257l21bb4ed8j9a55a87c522ad979@mail.gmail.com> On Fri, Sep 4, 2009 at 08:55, Lillian Angel wrote: > We are proud to announce the release of IcedTea6 1.5.2. > > The IcedTea6 project provides a harness to build the source code from > OpenJDK6 (http://openjdk.java.net) using Free Software build tools. You guys are too modest. A Free Software build environment is only one of the goals/priorities that is different from upstream openjdk6. Some others that come to mind are: - support some platforms not supported by upstream - provide/maintain Free Software replacements for proprietary parts of JDK6. Martin From gnu_andrew at member.fsf.org Fri Sep 4 13:38:35 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Fri, 4 Sep 2009 21:38:35 +0100 Subject: IcedTea 1.5.2 Released! In-Reply-To: <1ccfd1c10909041257l21bb4ed8j9a55a87c522ad979@mail.gmail.com> References: <4AA13875.9040304@redhat.com> <1ccfd1c10909041257l21bb4ed8j9a55a87c522ad979@mail.gmail.com> Message-ID: <17c6771e0909041338m7cda507br50585775dd30becb@mail.gmail.com> 2009/9/4 Martin Buchholz : > On Fri, Sep 4, 2009 at 08:55, Lillian Angel wrote: >> We are proud to announce the release of IcedTea6 1.5.2. >> >> The IcedTea6 project provides a harness to build the source code from >> OpenJDK6 (http://openjdk.java.net) using Free Software build tools. > > You guys are too modest. ?A Free Software build environment is only > one of the goals/priorities that is different from upstream openjdk6. > Some others that come to mind are: > - support some platforms not supported by upstream > - provide/maintain Free Software replacements for proprietary parts of JDK6. > > Martin > Thanks Martin. I thought the same when writing the last IcedTea7 announcement and so expanded Lillian's text to say: The IcedTea project provides a harness to build the source code from OpenJDK7 using Free Software build tools. It also includes the only Free Java plugin and Web Start implementation, and support for additional architectures over and above x86, x86_64 and sparc via the Zero assembler port and the Shark JIT compiler. This emphasis the additional platform support and the plugin/javaws replacements for their proprietary counterparts. Lillian, you might want to adopt that for the next release. We should mention the ARM support too from 1.6 on :) -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From gnu_andrew at member.fsf.org Fri Sep 4 16:24:47 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Sat, 5 Sep 2009 00:24:47 +0100 Subject: /hg/release/icedtea6-1.5: 2009-09-04 Lillian Angel References: Message-ID: <17c6771e0909041624u63950c54g85a6f33e9a9d40d6@mail.gmail.com> 2009/9/4 : > changeset 7ea6d4f11077 in /hg/release/icedtea6-1.5 > details: http://icedtea.classpath.org/hg/release/icedtea6-1.5?cmd=changeset;node=7ea6d4f11077 > author: langel > date: Fri Sep 04 10:05:08 2009 -0400 > > ? ? ? ?2009-09-04 Lillian Angel > > ? ? ? ? * NEWS: Updated for 1.5.2 release. > > > diffstat: > > 1 file changed, 2 insertions(+) > NEWS | ? ?2 ++ > > diffs (12 lines): > > diff -r 634b6ed02270 -r 7ea6d4f11077 NEWS > --- a/NEWS ? ? ?Fri Sep 04 09:54:18 2009 -0400 > +++ b/NEWS ? ? ?Fri Sep 04 10:05:08 2009 -0400 > @@ -1,6 +1,8 @@ New in release 1.5.2 (2009-09-04) > ?New in release 1.5.2 (2009-09-04) > ?- Timezone fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 > ?- Stackoverflow error fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 > +- Backport regression (NPE) fix for AccessControlContext fix > +- Bump to hs14b16 > > ?New in release 1.5.1 (2009-08-07) > ?- Security updates from Sun. > Seeing these bug IDs makes me wonder why we don't have a 'target milestone' field enabled in our Bugzilla as there is in GCC's (e.g. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39408) We could then easily find all the bugs fixed for a release. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From bugzilla-daemon at icedtea.classpath.org Sun Sep 6 13:02:53 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 06 Sep 2009 20:02:53 +0000 Subject: [Bug 383] New: Graphics.drawLine fails to draw Dot, works on Sun Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=383 Summary: Graphics.drawLine fails to draw Dot, works on Sun Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: nhb_web at nexgo.de Graphics.drawLine fails to draw a dot drawLine(x, y, x, y). Please see attached screenshot and sample code. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Sun Sep 6 13:03:16 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 06 Sep 2009 20:03:16 +0000 Subject: [Bug 383] Graphics.drawLine fails to draw Dot, works on Sun Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=383 ------- Comment #1 from nhb_web at nexgo.de 2009-09-06 20:03 ------- Created an attachment (id=260) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=260&action=view) screenshot.png -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Sun Sep 6 13:04:05 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 06 Sep 2009 20:04:05 +0000 Subject: [Bug 383] Graphics.drawLine fails to draw Dot, works on Sun Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=383 ------- Comment #2 from nhb_web at nexgo.de 2009-09-06 20:04 ------- Created an attachment (id=261) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=261&action=view) test case -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From mvfranz at gmail.com Mon Sep 7 12:30:33 2009 From: mvfranz at gmail.com (Michael Franz) Date: Mon, 7 Sep 2009 15:30:33 -0400 Subject: test_gamma failure on OS X (Leopard) with bsd-port (1.11) Message-ID: Hi, I have been struggling with this for a few weeks and do not know what is causing this problem. The ecj build works fine, but when the process runs the test_gamma the javac fails to startup so that Queens is not compiled. Thus the running of Queens fails as Queens is not available. I have enabled a bunch of debugging switches that I have found in the code and force the JVM to produce a core dump when it fails. When looking at the core file I am lost trying to figure out what it is telling me. If I just continue after this error I get another error about the crc-32 from java.util.ZipEntry. If I copy this image (openjkd-ecj/build/bsd-i586/j2sdk-image) and use it as my bootstrap JDK I have the same results, so I think the JDK is built correctly, it just fails at the test_gamma run. I can remove the test_gamma test and build a working JDK. Good enough that I can run NetBeans with it. I would like to figure out why the test_gamma test fails. The log before the test starts is: cd bsd_i486_compiler2/product && ./test_gamma /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/bootstrap/jdk1.6.0 java full version "1.7.0_0-b66" Launcher state: debug:on javargs:on program name:java launcher name:java javaw:off fullversion:1.7.0_0-b66 dotversion:1.7 ergo_policy:NEVER_ACT_AS_A_SERVER_CLASS_MACHINE Command line Args: argv[0] = '/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/bootstrap/jdk1.6.0/bin/javac' argv[1] = '-d' argv[2] = '.' argv[3] = '/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/make/test/Queens.java' JRE path is /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk-ecj/build/bsd-i586/j2sdk-image/jre jvm.cfg[0] = ->-client<- name: -client vmType: VM_IF_SERVER_CLASS server_class: -server jvm.cfg[1] = ->-server<- jvm.cfg[2] = ->-hotspot<- name: -hotspot vmType: VM_ALIASED_TO alias: -client jvm.cfg[3] = ->-classic<- jvm.cfg[4] = ->-native<- jvm.cfg[5] = ->-green<- 75 micro seconds to parse jvm.cfg Default VM: client Does `/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk-ecj/build/bsd-i586/j2sdk-image/jre/lib/i386/client/libjvm.dylib' exist ... yes. Launcher state: debug:on javargs:on program name:java launcher name:java javaw:off fullversion:1.7.0_0-b66 dotversion:1.7 ergo_policy:NEVER_ACT_AS_A_SERVER_CLASS_MACHINE Command line Args: argv[0] = '/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/bootstrap/jdk1.6.0/bin/javac' argv[1] = '-d' argv[2] = '.' argv[3] = '/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/make/test/Queens.java' JRE path is /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk-ecj/build/bsd-i586/j2sdk-image/jre jvm.cfg[0] = ->-client<- name: -client vmType: VM_IF_SERVER_CLASS server_class: -server jvm.cfg[1] = ->-server<- jvm.cfg[2] = ->-hotspot<- name: -hotspot vmType: VM_ALIASED_TO alias: -client jvm.cfg[3] = ->-classic<- jvm.cfg[4] = ->-native<- jvm.cfg[5] = ->-green<- 77 micro seconds to parse jvm.cfg Default VM: client Does `/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk-ecj/build/bsd-i586/j2sdk-image/jre/lib/i386/client/libjvm.dylib' exist ... yes. JVM path is /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk-ecj/build/bsd-i586/j2sdk-image/jre/lib/i386/client/libjvm.dylib 8376 micro seconds to LoadJavaVM Checking to set threadStackSize 0 Checking to set threadStackSize 0 Checking to set threadStackSize 0 Checking to set threadStackSize 0 Checking to set threadStackSize 0 Checking to set threadStackSize 0 Checking threadStackSize 0 JavaVM args: version 0x00010002, ignoreUnrecognized is JNI_FALSE, nOptions is 6 option[ 0] = '-Denv.class.path=.:/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/bootstrap/jdk1.6.0/jre/lib/rt.jar:/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/bootstrap/jdk1.6.0/jre/lib/i18n.jar' option[ 1] = '-Dapplication.home=/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk-ecj/build/bsd-i586/j2sdk-image' option[ 2] = '-Djava.class.path=/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk-ecj/build/bsd-i586/j2sdk-image/lib/tools.jar:/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk-ecj/build/bsd-i586/j2sdk-image/classes' option[ 3] = '-Xms8m' option[ 4] = '-Dsun.java.command=com.sun.tools.javac.Main -d . /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/make/test/Queens.java' option[ 5] = '-Dsun.java.launcher=SUN_STANDARD' Error occurred during initialization of VM 1 java/lang/NoClassDefFoundError: java/lang/Object ./test_gamma: line 11: 68996 Abort trap (core dumped) ${JAVA_HOME}/bin/javac -d . /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/make/test/Queens.java java version "1.7.0_0" OpenJDK Runtime Environment (IcedTea7 1.11) (build 1.7.0_0-b66) OpenJDK Server VM (build 16.0-b06, mixed mode) Exception in thread "main" java.lang.NoClassDefFoundError: Queens Caused by: java.lang.ClassNotFoundException: Queens at java.net.URLClassLoader$2.run(URLClassLoader.java:299) at java.net.URLClassLoader$2.run(URLClassLoader.java:1) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:287) at java.lang.ClassLoader.loadClass(ClassLoader.java:392) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:334) at java.lang.ClassLoader.loadClass(ClassLoader.java:332) There are two threads and here is the back trace of the threads: #0 0x912c5136 in clock_get_attributes () #1 0x912be013 in usleep$NOCANCEL$UNIX2003 () #2 0x912d5685 in abort () #3 0x015686c5 in os::abort (dump_core=true) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/os/bsd/vm/os_bsd.cpp:1599 #4 0x01373a9d in vm_abort [inlined] () at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/runtime/java.cpp:507 #5 0x01373a9d in vm_exit_during_initialization (ex={ = {_handle = 0x25062270}, }, message=0x803208 "java/lang/Object") at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/runtime/java.cpp:551 #6 0x012c4bf3 in Exceptions::special_exception (thread=0x801800, file=0x170b434 "/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp", line=136, h_name={ = {_handle = 0x1726574}, }, message=0x108bc0 "?\003") at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/utilities/exceptions.cpp:82 #7 0x012c5689 in Exceptions::_throw_msg (thread=0x801800, file=0x170b434 "/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp", line=136, h_name={ = {_handle = 0xe6e54}, }, message=0x803208 "java/lang/Object", h_loader={_handle = 0x0}, h_protection_domain={_handle = 0xb00509f8}) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/utilities/exceptions.cpp:134 #8 0x012c576e in Exceptions::_throw_msg (thread=0x801800, file=0x170b434 "/Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp", line=136, name=0x25062270, message=0x803208 "java/lang/Object") at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/utilities/exceptions.cpp:156 #9 0x01634ddc in ~ResourceMark [inlined] () at resourceArea.hpp:138 #10 0x01634ddc in SystemDictionary::handle_resolution_exception (class_name={ = {_handle = 0x1b7a8a8}, }, class_loader={_handle = 0x170b434}, protection_domain={_handle = 0x88}, throw_error=112, klass_h={ = {_handle = 0x803208}, }, __the_thread__=0x801800) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp:127 #11 0x0163a743 in SystemDictionary::resolve_or_fail () at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp:111 #12 0x0163a743 in SystemDictionary::resolve_or_fail () at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp:148 #13 0x0163a743 in SystemDictionary::initialize_wk_klass (id=24273732, init_opt=0, __the_thread__=0x801800) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp:1880 #14 0x0163a8e9 in SystemDictionary::initialize_preloaded_classes (__the_thread__=0x1) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp:1896 #15 0x0163b129 in SystemDictionary::initialize (__the_thread__=0x801800) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp:1851 #16 0x0168474f in Universe::genesis (__the_thread__=0x801800) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/memory/universe.cpp:288 #17 0x01685821 in universe2_init () at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/memory/universe.cpp:899 #18 0x01341b52 in init_globals () at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/runtime/init.cpp:102 #19 0x0166aa1e in Threads::create_vm (args=0x801800, canTryAgain=0xb0050e5f) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/runtime/thread.cpp:2900 #20 0x013815f2 in JNI_CreateJavaVM (vm=0xb0050f4c, penv=0xb0050f48, args=0xffffffff) at /Volumes/Data/Users/mfranz/developer/icedtea/icedtea-1.11-AppleJDK/openjdk/hotspot/src/share/vm/prims/jni.cpp:3281 #21 0x00002bec in JavaMain (_args=0x3c) at ../../../src/share/bin/java.c:1133 #22 0x9121a155 in _pthread_start () #23 0x9121a012 in thread_start () and the other: #0 0x911f046e in nanosleep$UNIX2003 () #1 0x000075eb in ContinueInNewThread0 (continuation=0x2b40 , stack_size=-5763182555964637184, args=0xbfffb090) at ../../../src/solaris/bin/java_md.c:1307 #2 0x00005310 in JLI_Launch (argc=15208051, argv=0x0, jargc=2, jargv=0x141f0, appclassc=2, appclassv=0x141e8, fullversion=0xbfffa25c "?S#?\003\017", dotversion=0x0, pname=0x1286a "java", lname=0x911f046e "s\016?", javaargs=0 '\0', cpwildcard=0 '\0', javaw=0 '\0', ergo=1) at ../../../src/share/bin/java.c:1910 #3 0x0000e2dc in main (argc=4, argv=0x100a08) at ../../src/share/bin/main.c:104 ZipEntry Error: BUILD FAILED java.lang.IllegalArgumentException: invalid entry crc-32 at java.util.zip.ZipEntry.setCrc(ZipEntry.java:186) at org.apache.tools.zip.ZipFile.populateFromCentralDirectory(ZipFile.java:300) at org.apache.tools.zip.ZipFile.(ZipFile.java:152) at org.apache.tools.ant.types.ZipScanner.fillMapsFromArchive(ZipScanner.java:70) at org.apache.tools.ant.types.ArchiveScanner.scanme(ArchiveScanner.java:319) at org.apache.tools.ant.types.ArchiveScanner.getResource(ArchiveScanner.java:260) at org.apache.tools.ant.util.ResourceUtils.selectOutOfDateSources(ResourceUtils.java:162) at org.apache.tools.ant.util.ResourceUtils.selectOutOfDateSources(ResourceUtils.java:112) at org.apache.tools.ant.util.ResourceUtils.selectOutOfDateSources(ResourceUtils.java:84) at org.apache.tools.ant.taskdefs.Zip.getResourcesToAdd(Zip.java:1177) at org.apache.tools.ant.taskdefs.Zip.getResourcesToAdd(Zip.java:1012) at org.apache.tools.ant.taskdefs.Jar.getResourcesToAdd(Jar.java:737) at org.apache.tools.ant.taskdefs.Zip.executeMain(Zip.java:463) at org.apache.tools.ant.taskdefs.Zip.execute(Zip.java:416) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:623) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.Project.executeTarget(Project.java:1306) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.Main.runBuild(Main.java:758) at org.apache.tools.ant.Main.startAnt(Main.java:217) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090907/9f0d7bcd/attachment-0001.html From Christian.Thalinger at Sun.COM Mon Sep 7 13:16:43 2009 From: Christian.Thalinger at Sun.COM (Christian Thalinger) Date: Mon, 07 Sep 2009 22:16:43 +0200 Subject: test_gamma failure on OS X (Leopard) with bsd-port (1.11) In-Reply-To: References: Message-ID: <4AA56A2B.3060201@Sun.COM> Michael Franz wrote: > Hi, > > I have been struggling with this for a few weeks and do not know what is > causing this problem. The ecj build works fine, but when the process > runs the test_gamma the javac fails to startup so that Queens is not > compiled. Thus the running of Queens fails as Queens is not available. > I have enabled a bunch of debugging switches that I have found in the > code and force the JVM to produce a core dump when it fails. When > looking at the core file I am lost trying to figure out what it is > telling me. If I just continue after this error I get another error > about the crc-32 from java.util.ZipEntry. If I copy this image > (openjkd-ecj/build/bsd-i586/j2sdk-image) and use it as my bootstrap JDK > I have the same results, so I think the JDK is built correctly, it just > fails at the test_gamma run. > > I can remove the test_gamma test and build a working JDK. Good enough > that I can run NetBeans with it. I would like to figure out why the > test_gamma test fails. I have the same problem. The problem seems to be the way Darwin does the library resolving. It seems to always give the precedence to libraries in the current directory without setting {DY}LD_LIBRARY_PATH. So when javac from the bootstrap JDK is executed in the build directory, it picks up the newly built libjvm and of course the bootstrap classes and the new VM do not match. Not sure how to fix that... -- Christian From bugzilla-daemon at icedtea.classpath.org Mon Sep 7 14:52:38 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 07 Sep 2009 21:52:38 +0000 Subject: [Bug 362] setPreferedSize without layout manager works on Sun. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=362 nhb_web at nexgo.de changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|graphical window appears |setPreferedSize without |blank when using icedtea |layout manager works on Sun. |instead of Sun's JRE | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From gbenson at icedtea.classpath.org Tue Sep 8 03:42:53 2009 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Tue, 08 Sep 2009 10:42:53 +0000 Subject: /hg/icedtea6: 2009-09-08 Gary Benson Message-ID: changeset b13a59d17b81 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b13a59d17b81 author: Gary Benson date: Tue Sep 08 11:46:08 2009 +0100 2009-09-08 Gary Benson * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp (JavaThread::pop_zero_frame): Tweak. diffstat: 2 files changed, 6 insertions(+), 1 deletion(-) ChangeLog | 5 +++++ ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 2 +- diffs (24 lines): diff -r 61433ed873cf -r b13a59d17b81 ChangeLog --- a/ChangeLog Fri Sep 04 07:14:31 2009 -0400 +++ b/ChangeLog Tue Sep 08 11:46:08 2009 +0100 @@ -1,3 +1,8 @@ 2009-09-04 Gary Benson + + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::pop_zero_frame): Tweak. + 2009-09-04 Gary Benson * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp diff -r 61433ed873cf -r b13a59d17b81 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri Sep 04 07:14:31 2009 -0400 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Tue Sep 08 11:46:08 2009 +0100 @@ -45,7 +45,7 @@ _top_zero_frame = frame; } void pop_zero_frame() { - _zero_stack.set_sp((intptr_t *) _top_zero_frame + 1); + zero_stack()->set_sp((intptr_t *) _top_zero_frame + 1); _top_zero_frame = *(ZeroFrame **) _top_zero_frame; } From gbenson at icedtea.classpath.org Tue Sep 8 03:43:58 2009 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Tue, 08 Sep 2009 10:43:58 +0000 Subject: /hg/icedtea6: 2009-09-08 Gary Benson Message-ID: changeset 175266c8ad02 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=175266c8ad02 author: Gary Benson date: Tue Sep 08 11:47:14 2009 +0100 2009-09-08 Gary Benson * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Whitespace changes. diffstat: 2 files changed, 4 insertions(+), 12 deletions(-) ChangeLog | 4 ++++ ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 12 ------------ diffs (92 lines): diff -r b13a59d17b81 -r 175266c8ad02 ChangeLog --- a/ChangeLog Tue Sep 08 11:46:08 2009 +0100 +++ b/ChangeLog Tue Sep 08 11:47:14 2009 +0100 @@ -1,3 +1,7 @@ 2009-09-08 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Whitespace changes. + 2009-09-08 Gary Benson * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp diff -r b13a59d17b81 -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/stack_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Tue Sep 08 11:46:08 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Tue Sep 08 11:47:14 2009 +0100 @@ -45,7 +45,6 @@ class ZeroStack { _top = _base + (size >> LogBytesPerWord); _sp = _top; } - void teardown() { assert(!needs_setup(), "not set up"); assert(_sp == _top, "stuff on stack at teardown"); @@ -58,7 +57,6 @@ class ZeroStack { intptr_t *sp() const { return _sp; } - void set_sp(intptr_t *new_sp) { assert(_top >= new_sp && new_sp >= _base, "bad stack pointer"); _sp = new_sp; @@ -72,7 +70,6 @@ class ZeroStack { assert(_sp > _base, "stack overflow"); *(--_sp) = value; } - intptr_t pop() { assert(_sp < _top, "stack underflow"); return *(_sp++); @@ -88,11 +85,9 @@ class ZeroStack { static ByteSize base_offset() { return byte_offset_of(ZeroStack, _base); } - static ByteSize top_offset() { return byte_offset_of(ZeroStack, _top); } - static ByteSize sp_offset() { return byte_offset_of(ZeroStack, _sp); } @@ -139,7 +134,6 @@ class ZeroFrame { intptr_t *addr_of_word(int offset) const { return (intptr_t *) this - offset; } - intptr_t value_of_word(int offset) const { return *addr_of_word(offset); } @@ -158,15 +152,12 @@ class ZeroFrame { bool is_entry_frame() const { return type() == ENTRY_FRAME; } - bool is_interpreter_frame() const { return type() == INTERPRETER_FRAME; } - bool is_shark_frame() const { return type() == SHARK_FRAME; } - bool is_deoptimizer_frame() const { return type() == DEOPTIMIZER_FRAME; } @@ -176,17 +167,14 @@ class ZeroFrame { assert(is_entry_frame(), "should be"); return (EntryFrame *) this; } - InterpreterFrame *as_interpreter_frame() const { assert(is_interpreter_frame(), "should be"); return (InterpreterFrame *) this; } - SharkFrame *as_shark_frame() const { assert(is_shark_frame(), "should be"); return (SharkFrame *) this; } - DeoptimizerFrame *as_deoptimizer_frame() const { assert(is_deoptimizer_frame(), "should be"); return (DeoptimizerFrame *) this; From aph at redhat.com Tue Sep 8 09:23:31 2009 From: aph at redhat.com (Andrew Haley) Date: Tue, 08 Sep 2009 17:23:31 +0100 Subject: icedtea-1.6-branch is FROZEN Message-ID: <4AA68503.9050008@redhat.com> icedtea-1.6-branch is frozen for release. Andrew. From gnu_andrew at member.fsf.org Tue Sep 8 09:32:52 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Tue, 8 Sep 2009 17:32:52 +0100 Subject: PING 1: [PATCH FOR REVIEW]: Support PKCS11 cryptography via NSS Message-ID: <17c6771e0909080932y67703b5fy7d73f7a569ee658e@mail.gmail.com> 2009/9/3 Andrew John Hughes : > IcedTea6, as currently built, does not support elliptic curve > cryptography (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=356). > ?For this to be enabled, the provider must be added to > jre/lib/security/java.security and configured to point to the system > NSS. > > With the proprietary JDK, this is not something that can be done 'out > of the box', but we can do this with IcedTea by detecting NSS using > configure. ?The attached patch does just that. ?It also fixes an issue > (6763530) that prevents newer versions of NSS from working. ?When > applied, NSS can be enabled just by passing --enable-nss to configure. > > The following then works: > > $ /home/andrew/build/icedtea6/bin/keytool -v -genkeypair -keyalg EC > -keysize 256 -keystore ectest.jks > Enter keystore password: > Re-enter new password: > etc. > > The configure check doesn't verify that NSS was built with EC support. > ?I couldn't find an easy way of doing this. ?It is enabled during the > build by defining NSS_ENABLE_ECC (-DNSS_ENABLE_ESS). ?From > mozilla/security/coreconf/config.mk: > > ifdef NSS_ENABLE_ECC > DEFINES += -DNSS_ENABLE_ECC > endif > > Thus the define is not available in the installed headers, so the only > way to do a check would seem to be to write code to generate an EC key > with NSS and check for failure. ?The same check would later be > invalidated if the system NSS changes after OpenJDK is built, and so > OpenJDK would need to be rebuilt. > > If someone wants to write such a test, feel free but AFAICS it > wouldn't gain anything. ?OpenJDK will still build (linking is done at > runtime) and if NSS doesn't have EC support, then OpenJDK won't which > is no different from the current status quo. > > Does this look ok for commit? > > ChangeLog: > > ? ? ? ?* HACKING: Updated. > ? ? ? ?* Makefile.am: > ? ? ? ?Add two new patches. ?Copy nss.cfg to jre/lib/security if > ? ? ? ?NSS is enabled. > ? ? ? ?* configure.ac:Check for NSS and set NSS_LIBDIR > ? ? ? ?and ENABLE_NSS if found. > ? ? ? ?* nss.cfg.in: Template for the nss configuration file. > ? ? ? ?* patches/icedtea-nss-6763530.patch: > ? ? ? ?Fix for Sun bug 6763530 which is triggered by newer > ? ? ? ?versions of NSS. > ? ? ? ?* patches/icedtea-nss-config.patch: Patch java.security > ? ? ? ?with the PCKS11 provider configuration. > > -- > Andrew :-) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and the OpenJDK > http://www.gnu.org/software/classpath > http://openjdk.java.net > > PGP Key: 94EFD9D8 (http://subkeys.pgp.net) > Fingerprint: F8EF F1EA 401E 2E60 15FA ?7927 142C 2591 94EF D9D8 > Ping? I know it was a long weekend for some, but the Sun engineers have even responded to a patch I posted to hotspot-dev in the same time frame as this one... -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From aph at icedtea.classpath.org Tue Sep 8 09:28:41 2009 From: aph at icedtea.classpath.org (aph at icedtea.classpath.org) Date: Tue, 08 Sep 2009 16:28:41 +0000 Subject: /hg/release/icedtea6-1.6: 5 new changesets Message-ID: changeset 1ec1576d8e87 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=1ec1576d8e87 author: aph date: Tue Sep 08 17:27:55 2009 +0100 2009-09-08 Andrew Haley * Makefile.am (EXTRA_DIST): Remove IcedTeaNPPlugin.cc. changeset 59a945bc902a in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=59a945bc902a author: aph date: Tue Sep 08 17:28:07 2009 +0100 Added tag icedtea-1.6-release for changeset 1ec1576d8e87 changeset b9c970ddb1d5 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=b9c970ddb1d5 author: aph date: Tue Sep 08 17:29:55 2009 +0100 Added tag icedtea-1.6-release for changeset 59a945bc902a changeset 47fba49f74a8 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=47fba49f74a8 author: aph date: Tue Sep 08 17:30:18 2009 +0100 2009-09-08 Andrew Haley * icedtea-1.6 release. changeset 952a01e29182 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=952a01e29182 author: aph date: Tue Sep 08 17:30:22 2009 +0100 Added tag icedtea-1.6-release for changeset 47fba49f74a8 diffstat: 3 files changed, 15 insertions(+), 1 deletion(-) .hgtags | 7 +++++++ ChangeLog | 8 ++++++++ Makefile.am | 1 - diffs (40 lines): diff -r 3013950f3909 -r 952a01e29182 .hgtags --- a/.hgtags Sun Aug 30 17:58:20 2009 +0200 +++ b/.hgtags Tue Sep 08 17:30:22 2009 +0100 @@ -16,3 +16,10 @@ 07de70c5883a637ea2ef4aba3f8472edd7e12f1e 07de70c5883a637ea2ef4aba3f8472edd7e12f1e icedtea6-1.5rc2 926c38e2b2830971f6ca0dff2ce25f78a694b178 icedtea6-1.5rc3 1543ef3c5ed5e11eef67e6caf1b1d427289758f0 icedtea-1.6-branch +3013950f390903f30488930a2e99fa273026b581 icedtea-1.6-release +3013950f390903f30488930a2e99fa273026b581 icedtea-1.6-release +1ec1576d8e87411294629b25c5cf716e229d08be icedtea-1.6-release +1ec1576d8e87411294629b25c5cf716e229d08be icedtea-1.6-release +59a945bc902a0954c7f48ce151f390a39d475a87 icedtea-1.6-release +59a945bc902a0954c7f48ce151f390a39d475a87 icedtea-1.6-release +47fba49f74a8d772fc86f4ed67e648bc6d1a5ebd icedtea-1.6-release diff -r 3013950f3909 -r 952a01e29182 ChangeLog --- a/ChangeLog Sun Aug 30 17:58:20 2009 +0200 +++ b/ChangeLog Tue Sep 08 17:30:22 2009 +0100 @@ -1,3 +1,11 @@ 2009-08-30 Mark Wielaard + + * icedtea-1.6 release. + +2009-09-08 Andrew Haley + + * Makefile.am (EXTRA_DIST): Remove IcedTeaNPPlugin.cc. + 2009-08-30 Mark Wielaard PR377. SimpleTimeZone checks too strict for Asia/Amman TimeZone. diff -r 3013950f3909 -r 952a01e29182 Makefile.am --- a/Makefile.am Sun Aug 30 17:58:20 2009 +0200 +++ b/Makefile.am Tue Sep 08 17:30:22 2009 +0100 @@ -105,7 +105,6 @@ EXTRA_DIST = rt generated \ jconsole.desktop policytool.desktop \ test/jtreg \ IcedTeaPlugin.cc \ - IcedTeaNPPlugin.cc \ HACKING pulseaudio fsg.sh \ plugin \ hotspot.map \ From gbenson at icedtea.classpath.org Wed Sep 9 01:51:21 2009 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Wed, 09 Sep 2009 08:51:21 +0000 Subject: /hg/icedtea6: 2009-09-09 Gary Benson Message-ID: changeset 97bab225c4d6 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=97bab225c4d6 author: Gary Benson date: Wed Sep 09 04:45:17 2009 -0400 2009-09-09 Gary Benson * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp (ZeroFrame::identify_word): New method. (ZeroFrame::identify_vp_word): Likewise. * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp (EntryFrame::identify_word): New method. * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp (InterpreterFrame::identify_word): New method. * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp (SharkFrame::identify_word): New method. * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp (DeoptimizerFrame::identify_word): Likewise. * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp (frame::frame): Added frame pointer argument. (frame::_fp): New field. (frame::fp): Return the above, instead of a dummy value. (frame::zero_print_on_error): New method. * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp (frame::frame): Initialize frame pointer. * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp (frame::sender_for_entry_frame): Pass frame pointer. (frame::sender_for_interpreter_frame): Likewise. (frame::sender_for_compiled_frame): Likewise. (frame::sender_for_deoptimizer_frame): Likewise. (frame::zero_print_on_error): New method. (ZeroFrame::identify_word): Likewise. (EntryFrame::identify_word): Likewise. (InterpreterFrame::identify_word): Likewise. (SharkFrame::identify_word): Likewise. (ZeroFrame::identify_vp_word): Likewise. (DeoptimizerFrame::identify_word): Likewise. * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp (JavaThread::pd_last_frame): Pass frame pointer. * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp (os::current_frame): Implemented. * patches/icedtea-zero.patch (VMError::report): Replace stack printer code. (hotspot/src/share/vm/includeDB_core): Updated. * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Removed. diffstat: 13 files changed, 421 insertions(+), 353 deletions(-) ChangeLog | 47 + patches/icedtea-zero.patch | 96 +-- ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp | 7 ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp | 7 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp | 250 ++++++++ ports/hotspot/src/cpu/zero/vm/frame_zero.hpp | 26 ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp | 6 ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp | 7 ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp | 7 ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp | 291 ---------- ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 15 ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 13 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 2 diffs (truncated from 949 to 500 lines): diff -r 175266c8ad02 -r 97bab225c4d6 ChangeLog --- a/ChangeLog Tue Sep 08 11:47:14 2009 +0100 +++ b/ChangeLog Wed Sep 09 04:45:17 2009 -0400 @@ -1,3 +1,50 @@ 2009-09-08 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp + (ZeroFrame::identify_word): New method. + (ZeroFrame::identify_vp_word): Likewise. + + * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp + (EntryFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp + (InterpreterFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp + (SharkFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp + (DeoptimizerFrame::identify_word): Likewise. + + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp + (frame::frame): Added frame pointer argument. + (frame::_fp): New field. + (frame::fp): Return the above, instead of a dummy value. + (frame::zero_print_on_error): New method. + * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp + (frame::frame): Initialize frame pointer. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp + (frame::sender_for_entry_frame): Pass frame pointer. + (frame::sender_for_interpreter_frame): Likewise. + (frame::sender_for_compiled_frame): Likewise. + (frame::sender_for_deoptimizer_frame): Likewise. + (frame::zero_print_on_error): New method. + (ZeroFrame::identify_word): Likewise. + (EntryFrame::identify_word): Likewise. + (InterpreterFrame::identify_word): Likewise. + (SharkFrame::identify_word): Likewise. + (ZeroFrame::identify_vp_word): Likewise. + (DeoptimizerFrame::identify_word): Likewise. + + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::pd_last_frame): Pass frame pointer. + + * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp + (os::current_frame): Implemented. + + * patches/icedtea-zero.patch + (VMError::report): Replace stack printer code. + (hotspot/src/share/vm/includeDB_core): Updated. + + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Removed. + 2009-09-08 Gary Benson * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Whitespace changes. diff -r 175266c8ad02 -r 97bab225c4d6 patches/icedtea-zero.patch --- a/patches/icedtea-zero.patch Tue Sep 08 11:47:14 2009 +0100 +++ b/patches/icedtea-zero.patch Wed Sep 09 04:45:17 2009 -0400 @@ -144,43 +144,48 @@ --- openjdk/hotspot/src/share/vm/utilities/vmError.cpp.orig 2008-07-27 08:37:02.000000000 +0000 +++ openjdk/hotspot/src/share/vm/utilities/vmError.cpp 2008-07-27 08:38:13.000000000 +0000 -@@ -25,6 +25,10 @@ - # include "incls/_precompiled.incl" - # include "incls/_vmError.cpp.incl" - -+# ifdef ZERO -+# include -+# endif // ZERO -+ - // List of environment variables that should be reported in error log file. - const char *env_list[] = { - // All platforms -@@ -392,6 +397,7 @@ - st->cr(); - } - -+#ifndef ZERO - STEP(110, "(printing stack bounds)" ) - - if (_verbose) { -@@ -449,11 +455,16 @@ - st->cr(); - } - } -+#endif // !ZERO - - STEP(130, "(printing Java stack)" ) +@@ -462,6 +462,40 @@ if (_verbose && _thread && _thread->is_Java_thread()) { JavaThread* jt = (JavaThread*)_thread; +#ifdef ZERO -+ st->print_cr("Java stack:"); -+ ZeroStackPrinter(st, buf, sizeof(buf)).print(jt); ++ if (jt->zero_stack()->sp() && jt->top_zero_frame()) { ++ // StackFrameStream uses the frame anchor, which may not have ++ // been set up. This can be done at any time in Zero, however, ++ // so if it hasn't been set up then we just set it up now and ++ // clear it again when we're done. ++ bool has_last_Java_frame = jt->has_last_Java_frame(); ++ if (!has_last_Java_frame) ++ jt->set_last_Java_frame(); ++ st->print("Java frames:"); ++ ++ // If the top frame is a Shark frame and the frame anchor isn't ++ // set up then it's possible that the information in the frame ++ // is garbage: it could be from a previous decache, or it could ++ // simply have never been written. So we print a warning... ++ StackFrameStream sfs(jt); ++ if (!has_last_Java_frame && !sfs.is_done()) { ++ if (sfs.current()->zeroframe()->is_shark_frame()) { ++ st->print(" (TOP FRAME MAY BE JUNK)"); ++ } ++ } ++ st->cr(); ++ ++ // Print the frames ++ for(int i = 0; !sfs.is_done(); sfs.next(), i++) { ++ sfs.current()->zero_print_on_error(i, st, buf, sizeof(buf)); ++ st->cr(); ++ } ++ ++ // Reset the frame anchor if necessary ++ if (!has_last_Java_frame) ++ jt->reset_last_Java_frame(); ++ } +#else if (jt->has_last_Java_frame()) { st->print_cr("Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)"); for(StackFrameStream sfs(jt); !sfs.is_done(); sfs.next()) { -@@ -461,6 +472,7 @@ +@@ -469,6 +503,7 @@ st->cr(); } } @@ -188,21 +193,7 @@ } STEP(140, "(printing VM operation)" ) -@@ -472,6 +484,14 @@ void VMError::report(outputStream* st) { - op->print_on_error(st); - st->cr(); - st->cr(); -+#ifdef ZERO -+ if (op->calling_thread()->is_Java_thread()) { -+ st->print_cr("Calling thread's Java stack:"); -+ ZeroStackPrinter(st, buf, sizeof(buf)).print( -+ (JavaThread *) op->calling_thread()); -+ st->cr(); -+ } -+#endif // ZERO - } - } - + Index: openjdk/hotspot/src/share/vm/runtime/jniHandles.cpp =================================================================== --- openjdk/hotspot/src/share/vm/runtime/jniHandles.cpp.orig 2009-06-10 11:30:46.000000000 +0200 @@ -219,3 +210,20 @@ Index: openjdk/hotspot/src/share/vm/runt } +--- openjdk/hotspot/src/share/vm/includeDB_core 2009-09-08 13:22:25.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/includeDB_core 2009-09-08 13:41:57.000000000 +0100 +@@ -1655,12 +1655,14 @@ + frame_.cpp frame.inline.hpp + frame_.cpp handles.inline.hpp + frame_.cpp interpreter.hpp ++frame_.cpp interpreterRuntime.hpp + frame_.cpp javaCalls.hpp + frame_.cpp markOop.hpp + frame_.cpp methodOop.hpp + frame_.cpp monitorChunk.hpp + frame_.cpp oop.inline.hpp + frame_.cpp resourceArea.hpp ++frame_.cpp scopeDesc.hpp + frame_.cpp signature.hpp + frame_.cpp stubCodeGenerator.hpp + frame_.cpp stubRoutines.hpp diff -r 175266c8ad02 -r 97bab225c4d6 ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp Wed Sep 09 04:45:17 2009 -0400 @@ -45,4 +45,11 @@ class DeoptimizerFrame : public ZeroFram public: static DeoptimizerFrame *build(ZeroStack* stack); + + public: + void identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const; }; diff -r 175266c8ad02 -r 97bab225c4d6 ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Wed Sep 09 04:45:17 2009 -0400 @@ -57,4 +57,11 @@ class EntryFrame : public ZeroFrame { JavaCallWrapper *call_wrapper() const { return (JavaCallWrapper *) value_of_word(call_wrapper_off); } + + public: + void identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const; }; diff -r 175266c8ad02 -r 97bab225c4d6 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Wed Sep 09 04:45:17 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,19 +47,19 @@ frame frame::sender_for_entry_frame(Regi "sender should be next Java frame"); map->clear(); assert(map->include_argument_oops(), "should be set by clear"); - return frame(sender_sp()); + return frame(sender_sp(), sp() + 1); } frame frame::sender_for_interpreter_frame(RegisterMap *map) const { - return frame(sender_sp()); + return frame(sender_sp(), sp() + 1); } frame frame::sender_for_compiled_frame(RegisterMap *map) const { - return frame(sender_sp()); + return frame(sender_sp(), sp() + 1); } frame frame::sender_for_deoptimizer_frame(RegisterMap *map) const { - return frame(sender_sp()); + return frame(sender_sp(), sp() + 1); } frame frame::sender(RegisterMap* map) const { @@ -180,3 +180,243 @@ intptr_t* frame::interpreter_frame_tos_a int index = (Interpreter::expr_offset_in_bytes(offset) / wordSize); return &interpreter_frame_tos_address()[index]; } + +void frame::zero_print_on_error(int frame_index, + outputStream* st, + char* buf, + int buflen) const { + // Divide the buffer between the field and the value + buflen >>= 1; + char *fieldbuf = buf; + char *valuebuf = buf + buflen; + + // Print each word of the frame + for (intptr_t *addr = fp(); addr <= sp(); addr++) { + int offset = sp() - addr; + + // Fill in default values, then try and improve them + snprintf(fieldbuf, buflen, "word[%d]", offset); + snprintf(valuebuf, buflen, PTR_FORMAT, *addr); + zeroframe()->identify_word(frame_index, offset, fieldbuf, valuebuf, buflen); + fieldbuf[buflen - 1] = '\0'; + valuebuf[buflen - 1] = '\0'; + + // Print the result + st->print_cr(" " PTR_FORMAT ": %-21s = %s", addr, fieldbuf, valuebuf); + } +} + +void ZeroFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + switch (offset) { + case next_frame_off: + strncpy(fieldbuf, "next_frame", buflen); + break; + + case frame_type_off: + strncpy(fieldbuf, "frame_type", buflen); + if (is_entry_frame()) + strncpy(valuebuf, "ENTRY_FRAME", buflen); + else if (is_interpreter_frame()) + strncpy(valuebuf, "INTERPRETER_FRAME", buflen); + else if (is_shark_frame()) + strncpy(valuebuf, "SHARK_FRAME", buflen); + else if (is_deoptimizer_frame()) + strncpy(valuebuf, "DEOPTIMIZER_FRAME", buflen); + break; + + default: + if (is_entry_frame()) { + as_entry_frame()->identify_word( + frame_index, offset, fieldbuf, valuebuf, buflen); + } + else if (is_interpreter_frame()) { + as_interpreter_frame()->identify_word( + frame_index, offset, fieldbuf, valuebuf, buflen); + } + else if (is_shark_frame()) { + as_shark_frame()->identify_word( + frame_index, offset, fieldbuf, valuebuf, buflen); + } + else if (is_deoptimizer_frame()) { + as_deoptimizer_frame()->identify_word( + frame_index, offset, fieldbuf, valuebuf, buflen); + } + } +} + +void EntryFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + switch (offset) { + case call_wrapper_off: + strncpy(fieldbuf, "call_wrapper", buflen); + break; + + default: + snprintf(fieldbuf, buflen, "local[%d]", offset - 3); + } +} + +void InterpreterFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + interpreterState istate = interpreter_state(); + bool is_valid = istate->self_link() == istate; + intptr_t *addr = addr_of_word(offset); + + // Fixed part + if (addr >= (intptr_t *) istate) { + const char *field = istate->name_of_field_at_address((address) addr); + if (field) { + if (is_valid && !strcmp(field, "_method")) { + istate->method()->name_and_sig_as_C_string(valuebuf, buflen); + } + else if (is_valid && !strcmp(field, "_bcp") && istate->bcp()) { + snprintf(valuebuf, buflen, PTR_FORMAT " (bci %d)", + istate->bcp(), istate->method()->bci_from(istate->bcp())); + } + snprintf(fieldbuf, buflen, "%sistate->%s", + field[strlen(field) - 1] == ')' ? "(": "", field); + } + else if (addr == (intptr_t *) istate) { + strncpy(fieldbuf, "(vtable for istate)", buflen); + } + return; + } + + // Variable part + if (!is_valid) + return; + + // JNI stuff + if (istate->method()->is_native() && addr < istate->stack_base()) { + address hA = istate->method()->signature_handler(); + if (hA != NULL) { + if (hA != (address) InterpreterRuntime::slow_signature_handler) { + InterpreterRuntime::SignatureHandler *handler = + InterpreterRuntime::SignatureHandler::from_handlerAddr(hA); + + intptr_t *params = istate->stack_base() - handler->argument_count(); + if (addr >= params) { + int param = addr - params; + const char *desc = ""; + if (param == 0) + desc = " (JNIEnv)"; + else if (param == 1) { + if (istate->method()->is_static()) + desc = " (mirror)"; + else + desc = " (this)"; + } + snprintf(fieldbuf, buflen, "parameter[%d]%s", param, desc); + return; + } + + for (int i = 0; i < handler->argument_count(); i++) { + if (params[i] == (intptr_t) addr) { + snprintf(fieldbuf, buflen, "unboxed parameter[%d]", i); + return; + } + } + } + } + return; + } + + // Monitors and stack + identify_vp_word(frame_index, addr, + (intptr_t *) istate->monitor_base(), + istate->stack_base(), + fieldbuf, buflen); +} + +void SharkFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + // Fixed part + switch (offset) { + case pc_off: + strncpy(fieldbuf, "pc", buflen); + if (method()->is_oop()) { + nmethod *code = method()->code(); + if (code && code->pc_desc_at(pc())) { + SimpleScopeDesc ssd(code, pc()); + snprintf(valuebuf, buflen, PTR_FORMAT " (bci %d)", pc(), ssd.bci()); + } + } + return; + + case unextended_sp_off: + strncpy(fieldbuf, "unextended_sp", buflen); + return; + + case method_off: + strncpy(fieldbuf, "method", buflen); + if (method()->is_oop()) { + method()->name_and_sig_as_C_string(valuebuf, buflen); + } + return; + + case oop_tmp_off: + strncpy(fieldbuf, "oop_tmp", buflen); + return; + } + + // Variable part + if (method()->is_oop()) { + identify_vp_word(frame_index, addr_of_word(offset), + addr_of_word(header_words + 1), + unextended_sp() + method()->max_stack(), + fieldbuf, buflen); + } +} + +void ZeroFrame::identify_vp_word(int frame_index, + intptr_t* addr, + intptr_t* monitor_base, + intptr_t* stack_base, + char* fieldbuf, + int buflen) const { + // Monitors + if (addr >= stack_base && addr < monitor_base) { + int monitor_size = frame::interpreter_frame_monitor_size(); + int last_index = (monitor_base - stack_base) / monitor_size - 1; + int index = last_index - (addr - stack_base) / monitor_size; + intptr_t monitor = (intptr_t) ( + (BasicObjectLock *) monitor_base - 1 - index); + intptr_t offset = (intptr_t) addr - monitor; + + if (offset == BasicObjectLock::obj_offset_in_bytes()) + snprintf(fieldbuf, buflen, "monitor[%d]->_obj", index); + else if (offset == BasicObjectLock::lock_offset_in_bytes()) + snprintf(fieldbuf, buflen, "monitor[%d]->_lock", index); + + return; + } + + // Expression stack + if (addr < stack_base) { + snprintf(fieldbuf, buflen, "%s[%d]", + frame_index == 0 ? "stack_word" : "local", + (int) (stack_base - addr - 1)); + return; + } +} + +void DeoptimizerFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + // Deoptimizer frames have no extra words to identify +} diff -r 175266c8ad02 -r 97bab225c4d6 ports/hotspot/src/cpu/zero/vm/frame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Wed Sep 09 04:45:17 2009 -0400 @@ -23,24 +23,26 @@ * */ -// A frame represents a physical stack frame (an activation). Frames -// can be C or Java frames, and the Java frames can be interpreted or -// compiled. In contrast, vframes represent source-level activations, -// so that one physical frame can correspond to multiple source level -// frames because of inlining. A frame is comprised of {pc, sp} From gbenson at redhat.com Wed Sep 9 02:00:56 2009 From: gbenson at redhat.com (Gary Benson) Date: Wed, 9 Sep 2009 10:00:56 +0100 Subject: Zero stack printer changes Message-ID: <20090909090056.GA3281@redhat.com> Hi all, This patch rearranges the stack printer code in Zero so that it slots in better with HotSpot's existing frame walker and therefore requires less modification to vmError.cpp as requested by Tom Rodriguez. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r 175266c8ad02 ChangeLog --- a/ChangeLog Tue Sep 08 11:47:14 2009 +0100 +++ b/ChangeLog Wed Sep 09 04:44:36 2009 -0400 @@ -1,3 +1,50 @@ +2009-09-09 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp + (ZeroFrame::identify_word): New method. + (ZeroFrame::identify_vp_word): Likewise. + + * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp + (EntryFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp + (InterpreterFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp + (SharkFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp + (DeoptimizerFrame::identify_word): Likewise. + + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp + (frame::frame): Added frame pointer argument. + (frame::_fp): New field. + (frame::fp): Return the above, instead of a dummy value. + (frame::zero_print_on_error): New method. + * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp + (frame::frame): Initialize frame pointer. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp + (frame::sender_for_entry_frame): Pass frame pointer. + (frame::sender_for_interpreter_frame): Likewise. + (frame::sender_for_compiled_frame): Likewise. + (frame::sender_for_deoptimizer_frame): Likewise. + (frame::zero_print_on_error): New method. + (ZeroFrame::identify_word): Likewise. + (EntryFrame::identify_word): Likewise. + (InterpreterFrame::identify_word): Likewise. + (SharkFrame::identify_word): Likewise. + (ZeroFrame::identify_vp_word): Likewise. + (DeoptimizerFrame::identify_word): Likewise. + + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::pd_last_frame): Pass frame pointer. + + * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp + (os::current_frame): Implemented. + + * patches/icedtea-zero.patch + (VMError::report): Replace stack printer code. + (hotspot/src/share/vm/includeDB_core): Updated. + + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Removed. + 2009-09-08 Gary Benson * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Whitespace changes. diff -r 175266c8ad02 patches/icedtea-zero.patch --- a/patches/icedtea-zero.patch Tue Sep 08 11:47:14 2009 +0100 +++ b/patches/icedtea-zero.patch Wed Sep 09 04:44:36 2009 -0400 @@ -144,43 +144,48 @@ --- openjdk/hotspot/src/share/vm/utilities/vmError.cpp.orig 2008-07-27 08:37:02.000000000 +0000 +++ openjdk/hotspot/src/share/vm/utilities/vmError.cpp 2008-07-27 08:38:13.000000000 +0000 -@@ -25,6 +25,10 @@ - # include "incls/_precompiled.incl" - # include "incls/_vmError.cpp.incl" - -+# ifdef ZERO -+# include -+# endif // ZERO -+ - // List of environment variables that should be reported in error log file. - const char *env_list[] = { - // All platforms -@@ -392,6 +397,7 @@ - st->cr(); - } - -+#ifndef ZERO - STEP(110, "(printing stack bounds)" ) - - if (_verbose) { -@@ -449,11 +455,16 @@ - st->cr(); - } - } -+#endif // !ZERO - - STEP(130, "(printing Java stack)" ) +@@ -462,6 +462,40 @@ if (_verbose && _thread && _thread->is_Java_thread()) { JavaThread* jt = (JavaThread*)_thread; +#ifdef ZERO -+ st->print_cr("Java stack:"); -+ ZeroStackPrinter(st, buf, sizeof(buf)).print(jt); ++ if (jt->zero_stack()->sp() && jt->top_zero_frame()) { ++ // StackFrameStream uses the frame anchor, which may not have ++ // been set up. This can be done at any time in Zero, however, ++ // so if it hasn't been set up then we just set it up now and ++ // clear it again when we're done. ++ bool has_last_Java_frame = jt->has_last_Java_frame(); ++ if (!has_last_Java_frame) ++ jt->set_last_Java_frame(); ++ st->print("Java frames:"); ++ ++ // If the top frame is a Shark frame and the frame anchor isn't ++ // set up then it's possible that the information in the frame ++ // is garbage: it could be from a previous decache, or it could ++ // simply have never been written. So we print a warning... ++ StackFrameStream sfs(jt); ++ if (!has_last_Java_frame && !sfs.is_done()) { ++ if (sfs.current()->zeroframe()->is_shark_frame()) { ++ st->print(" (TOP FRAME MAY BE JUNK)"); ++ } ++ } ++ st->cr(); ++ ++ // Print the frames ++ for(int i = 0; !sfs.is_done(); sfs.next(), i++) { ++ sfs.current()->zero_print_on_error(i, st, buf, sizeof(buf)); ++ st->cr(); ++ } ++ ++ // Reset the frame anchor if necessary ++ if (!has_last_Java_frame) ++ jt->reset_last_Java_frame(); ++ } +#else if (jt->has_last_Java_frame()) { st->print_cr("Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)"); for(StackFrameStream sfs(jt); !sfs.is_done(); sfs.next()) { -@@ -461,6 +472,7 @@ +@@ -469,6 +503,7 @@ st->cr(); } } @@ -188,21 +193,7 @@ } STEP(140, "(printing VM operation)" ) -@@ -472,6 +484,14 @@ void VMError::report(outputStream* st) { - op->print_on_error(st); - st->cr(); - st->cr(); -+#ifdef ZERO -+ if (op->calling_thread()->is_Java_thread()) { -+ st->print_cr("Calling thread's Java stack:"); -+ ZeroStackPrinter(st, buf, sizeof(buf)).print( -+ (JavaThread *) op->calling_thread()); -+ st->cr(); -+ } -+#endif // ZERO - } - } - + Index: openjdk/hotspot/src/share/vm/runtime/jniHandles.cpp =================================================================== --- openjdk/hotspot/src/share/vm/runtime/jniHandles.cpp.orig 2009-06-10 11:30:46.000000000 +0200 @@ -219,3 +210,20 @@ } +--- openjdk/hotspot/src/share/vm/includeDB_core 2009-09-08 13:22:25.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/includeDB_core 2009-09-08 13:41:57.000000000 +0100 +@@ -1655,12 +1655,14 @@ + frame_.cpp frame.inline.hpp + frame_.cpp handles.inline.hpp + frame_.cpp interpreter.hpp ++frame_.cpp interpreterRuntime.hpp + frame_.cpp javaCalls.hpp + frame_.cpp markOop.hpp + frame_.cpp methodOop.hpp + frame_.cpp monitorChunk.hpp + frame_.cpp oop.inline.hpp + frame_.cpp resourceArea.hpp ++frame_.cpp scopeDesc.hpp + frame_.cpp signature.hpp + frame_.cpp stubCodeGenerator.hpp + frame_.cpp stubRoutines.hpp diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp Wed Sep 09 04:44:36 2009 -0400 @@ -45,4 +45,11 @@ public: static DeoptimizerFrame *build(ZeroStack* stack); + + public: + void identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const; }; diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Wed Sep 09 04:44:36 2009 -0400 @@ -57,4 +57,11 @@ JavaCallWrapper *call_wrapper() const { return (JavaCallWrapper *) value_of_word(call_wrapper_off); } + + public: + void identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const; }; diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Wed Sep 09 04:44:36 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,19 +47,19 @@ "sender should be next Java frame"); map->clear(); assert(map->include_argument_oops(), "should be set by clear"); - return frame(sender_sp()); + return frame(sender_sp(), sp() + 1); } frame frame::sender_for_interpreter_frame(RegisterMap *map) const { - return frame(sender_sp()); + return frame(sender_sp(), sp() + 1); } frame frame::sender_for_compiled_frame(RegisterMap *map) const { - return frame(sender_sp()); + return frame(sender_sp(), sp() + 1); } frame frame::sender_for_deoptimizer_frame(RegisterMap *map) const { - return frame(sender_sp()); + return frame(sender_sp(), sp() + 1); } frame frame::sender(RegisterMap* map) const { @@ -180,3 +180,243 @@ int index = (Interpreter::expr_offset_in_bytes(offset) / wordSize); return &interpreter_frame_tos_address()[index]; } + +void frame::zero_print_on_error(int frame_index, + outputStream* st, + char* buf, + int buflen) const { + // Divide the buffer between the field and the value + buflen >>= 1; + char *fieldbuf = buf; + char *valuebuf = buf + buflen; + + // Print each word of the frame + for (intptr_t *addr = fp(); addr <= sp(); addr++) { + int offset = sp() - addr; + + // Fill in default values, then try and improve them + snprintf(fieldbuf, buflen, "word[%d]", offset); + snprintf(valuebuf, buflen, PTR_FORMAT, *addr); + zeroframe()->identify_word(frame_index, offset, fieldbuf, valuebuf, buflen); + fieldbuf[buflen - 1] = '\0'; + valuebuf[buflen - 1] = '\0'; + + // Print the result + st->print_cr(" " PTR_FORMAT ": %-21s = %s", addr, fieldbuf, valuebuf); + } +} + +void ZeroFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + switch (offset) { + case next_frame_off: + strncpy(fieldbuf, "next_frame", buflen); + break; + + case frame_type_off: + strncpy(fieldbuf, "frame_type", buflen); + if (is_entry_frame()) + strncpy(valuebuf, "ENTRY_FRAME", buflen); + else if (is_interpreter_frame()) + strncpy(valuebuf, "INTERPRETER_FRAME", buflen); + else if (is_shark_frame()) + strncpy(valuebuf, "SHARK_FRAME", buflen); + else if (is_deoptimizer_frame()) + strncpy(valuebuf, "DEOPTIMIZER_FRAME", buflen); + break; + + default: + if (is_entry_frame()) { + as_entry_frame()->identify_word( + frame_index, offset, fieldbuf, valuebuf, buflen); + } + else if (is_interpreter_frame()) { + as_interpreter_frame()->identify_word( + frame_index, offset, fieldbuf, valuebuf, buflen); + } + else if (is_shark_frame()) { + as_shark_frame()->identify_word( + frame_index, offset, fieldbuf, valuebuf, buflen); + } + else if (is_deoptimizer_frame()) { + as_deoptimizer_frame()->identify_word( + frame_index, offset, fieldbuf, valuebuf, buflen); + } + } +} + +void EntryFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + switch (offset) { + case call_wrapper_off: + strncpy(fieldbuf, "call_wrapper", buflen); + break; + + default: + snprintf(fieldbuf, buflen, "local[%d]", offset - 3); + } +} + +void InterpreterFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + interpreterState istate = interpreter_state(); + bool is_valid = istate->self_link() == istate; + intptr_t *addr = addr_of_word(offset); + + // Fixed part + if (addr >= (intptr_t *) istate) { + const char *field = istate->name_of_field_at_address((address) addr); + if (field) { + if (is_valid && !strcmp(field, "_method")) { + istate->method()->name_and_sig_as_C_string(valuebuf, buflen); + } + else if (is_valid && !strcmp(field, "_bcp") && istate->bcp()) { + snprintf(valuebuf, buflen, PTR_FORMAT " (bci %d)", + istate->bcp(), istate->method()->bci_from(istate->bcp())); + } + snprintf(fieldbuf, buflen, "%sistate->%s", + field[strlen(field) - 1] == ')' ? "(": "", field); + } + else if (addr == (intptr_t *) istate) { + strncpy(fieldbuf, "(vtable for istate)", buflen); + } + return; + } + + // Variable part + if (!is_valid) + return; + + // JNI stuff + if (istate->method()->is_native() && addr < istate->stack_base()) { + address hA = istate->method()->signature_handler(); + if (hA != NULL) { + if (hA != (address) InterpreterRuntime::slow_signature_handler) { + InterpreterRuntime::SignatureHandler *handler = + InterpreterRuntime::SignatureHandler::from_handlerAddr(hA); + + intptr_t *params = istate->stack_base() - handler->argument_count(); + if (addr >= params) { + int param = addr - params; + const char *desc = ""; + if (param == 0) + desc = " (JNIEnv)"; + else if (param == 1) { + if (istate->method()->is_static()) + desc = " (mirror)"; + else + desc = " (this)"; + } + snprintf(fieldbuf, buflen, "parameter[%d]%s", param, desc); + return; + } + + for (int i = 0; i < handler->argument_count(); i++) { + if (params[i] == (intptr_t) addr) { + snprintf(fieldbuf, buflen, "unboxed parameter[%d]", i); + return; + } + } + } + } + return; + } + + // Monitors and stack + identify_vp_word(frame_index, addr, + (intptr_t *) istate->monitor_base(), + istate->stack_base(), + fieldbuf, buflen); +} + +void SharkFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + // Fixed part + switch (offset) { + case pc_off: + strncpy(fieldbuf, "pc", buflen); + if (method()->is_oop()) { + nmethod *code = method()->code(); + if (code && code->pc_desc_at(pc())) { + SimpleScopeDesc ssd(code, pc()); + snprintf(valuebuf, buflen, PTR_FORMAT " (bci %d)", pc(), ssd.bci()); + } + } + return; + + case unextended_sp_off: + strncpy(fieldbuf, "unextended_sp", buflen); + return; + + case method_off: + strncpy(fieldbuf, "method", buflen); + if (method()->is_oop()) { + method()->name_and_sig_as_C_string(valuebuf, buflen); + } + return; + + case oop_tmp_off: + strncpy(fieldbuf, "oop_tmp", buflen); + return; + } + + // Variable part + if (method()->is_oop()) { + identify_vp_word(frame_index, addr_of_word(offset), + addr_of_word(header_words + 1), + unextended_sp() + method()->max_stack(), + fieldbuf, buflen); + } +} + +void ZeroFrame::identify_vp_word(int frame_index, + intptr_t* addr, + intptr_t* monitor_base, + intptr_t* stack_base, + char* fieldbuf, + int buflen) const { + // Monitors + if (addr >= stack_base && addr < monitor_base) { + int monitor_size = frame::interpreter_frame_monitor_size(); + int last_index = (monitor_base - stack_base) / monitor_size - 1; + int index = last_index - (addr - stack_base) / monitor_size; + intptr_t monitor = (intptr_t) ( + (BasicObjectLock *) monitor_base - 1 - index); + intptr_t offset = (intptr_t) addr - monitor; + + if (offset == BasicObjectLock::obj_offset_in_bytes()) + snprintf(fieldbuf, buflen, "monitor[%d]->_obj", index); + else if (offset == BasicObjectLock::lock_offset_in_bytes()) + snprintf(fieldbuf, buflen, "monitor[%d]->_lock", index); + + return; + } + + // Expression stack + if (addr < stack_base) { + snprintf(fieldbuf, buflen, "%s[%d]", + frame_index == 0 ? "stack_word" : "local", + (int) (stack_base - addr - 1)); + return; + } +} + +void DeoptimizerFrame::identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const { + // Deoptimizer frames have no extra words to identify +} diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/frame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Wed Sep 09 04:44:36 2009 -0400 @@ -23,24 +23,26 @@ * */ -// A frame represents a physical stack frame (an activation). Frames -// can be C or Java frames, and the Java frames can be interpreted or -// compiled. In contrast, vframes represent source-level activations, -// so that one physical frame can correspond to multiple source level -// frames because of inlining. A frame is comprised of {pc, sp} +// A frame represents a physical stack frame on the Zero stack. public: enum { pc_return_offset = 0 }; + // Constructor public: - // Constructors - frame(intptr_t* sp); + frame(intptr_t* sp, intptr_t* fp); - // accessors for the instance variables + // The sp of a Zero frame is the address of the highest word in + // that frame. We keep track of the lowest address too, so the + // boundaries of the frame are available for debug printing. + private: + intptr_t* _fp; + + public: intptr_t* fp() const { - return (intptr_t *) -1; + return _fp; } #ifdef CC_INTERP @@ -67,3 +69,9 @@ public: frame sender_for_deoptimizer_frame(RegisterMap* map) const; + + public: + void zero_print_on_error(int index, + outputStream* st, + char* buf, + int buflen) const; diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Wed Sep 09 04:44:36 2009 -0400 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,13 +32,15 @@ inline frame::frame() { _sp = NULL; + _fp = NULL; _pc = NULL; _cb = NULL; _deopt_state = unknown; } -inline frame::frame(intptr_t* sp) { +inline frame::frame(intptr_t* sp, intptr_t* fp) { _sp = sp; + _fp = fp; switch (zeroframe()->type()) { case ZeroFrame::ENTRY_FRAME: _pc = StubRoutines::call_stub_return_pc(); diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp Wed Sep 09 04:44:36 2009 -0400 @@ -65,5 +65,12 @@ interpreterState interpreter_state() const { return (interpreterState) addr_of_word(istate_off); } + + public: + void identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const; }; #endif // CC_INTERP diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp Wed Sep 09 04:44:36 2009 -0400 @@ -70,4 +70,11 @@ methodOop method() const { return (methodOop) value_of_word(method_off); } + + public: + void identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const; }; diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,291 +0,0 @@ -/* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. - * 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. - * - */ - -#include -#include - -class ZeroStackPrinter { - private: - outputStream* _st; - char* _buf; - int _buflen; - - public: - ZeroStackPrinter(outputStream *st, char *buf, int buflen) - : _st(st), _buf(buf), _buflen(buflen) {} - - void print(JavaThread *thread) { - intptr_t *lo_addr = thread->zero_stack()->sp(); - if (!lo_addr) { - _st->print_cr(" stack not set up"); - return; - } - - intptr_t *hi_addr = (intptr_t *) thread->top_zero_frame(); - if (!hi_addr) { - _st->print_cr("no frames pushed"); - return; - } - assert(hi_addr >= lo_addr, "corrupted stack"); - - bool top_frame = true; - while (hi_addr) { - if (!top_frame) - _st->cr(); - ZeroFrame *frame = (ZeroFrame *) hi_addr; - for (intptr_t *addr = lo_addr; addr <= hi_addr; addr++) - print_word(frame, addr, top_frame); - lo_addr = hi_addr + 1; - hi_addr = *(intptr_t **) hi_addr; - top_frame = false; - } - } - - private: - void print_word(ZeroFrame *frame, intptr_t *addr, bool top_frame) { - const char *field = NULL; - const char *value = NULL; - - int word = (intptr_t *) frame - addr; - switch (word) { - case ZeroFrame::next_frame_off: - field = "next_frame"; - break; - case ZeroFrame::frame_type_off: - field = "frame_type"; - switch (*addr) { - case ZeroFrame::ENTRY_FRAME: - value = "ENTRY_FRAME"; - break; - case ZeroFrame::INTERPRETER_FRAME: - value = "INTERPRETER_FRAME"; - break; - case ZeroFrame::SHARK_FRAME: - value = "SHARK_FRAME"; - break; - case ZeroFrame::DEOPTIMIZER_FRAME: - value = "DEOPTIMIZER_FRAME"; - break; - } - break; - } - - if (!field) { - if (frame->is_entry_frame()) { - if (word == EntryFrame::call_wrapper_off) { - field = "call_wrapper"; - } - else { - snprintf(_buf, _buflen, "local[%d]", word - 3); - field = _buf; - } - } - if (frame->is_interpreter_frame()) { - interpreterState istate = - ((InterpreterFrame *) frame)->interpreter_state(); - bool is_valid = istate->self_link() == istate; - - if (addr >= (intptr_t *) istate) { - field = istate->name_of_field_at_address((address) addr); - if (field) { - if (is_valid && !strcmp(field, "_method")) { - value = istate->method()->name_and_sig_as_C_string(_buf,_buflen); - field = "istate->_method"; - } - else if (is_valid && !strcmp(field, "_bcp") && istate->bcp()) { - snprintf(_buf, _buflen, PTR_FORMAT " (bci %d)", istate->bcp(), - istate->method()->bci_from(istate->bcp())); - value = _buf; - field = "istate->_bcp"; - } - else { - snprintf(_buf, _buflen, "%sistate->%s", - field[strlen(field) - 1] == ')' ? "(": "", field); - field = _buf; - } - } - else if (addr == (intptr_t *) istate) { - field = "(vtable for istate)"; - } - } - else if (is_valid) { - intptr_t *monitor_base = (intptr_t *) istate->monitor_base(); - if (addr >= istate->stack_base() && addr < monitor_base) { - int monitor_size = frame::interpreter_frame_monitor_size(); - int last_index = - (monitor_base - istate->stack_base()) / monitor_size - 1; - int index = - last_index - (addr - istate->stack_base()) / monitor_size; - intptr_t monitor = (intptr_t) (istate->monitor_base() - 1 - index); - intptr_t offset = (intptr_t) addr - monitor; - - if (offset == BasicObjectLock::obj_offset_in_bytes()) { - snprintf(_buf, _buflen, "monitor[%d]->_obj", index); - field = _buf; - } - else if (offset == BasicObjectLock::lock_offset_in_bytes()) { - snprintf(_buf, _buflen, "monitor[%d]->_lock", index); - field = _buf; - } - } - else if (addr < istate->stack_base()) { - if (istate->method()->is_native()) { - address hA = istate->method()->signature_handler(); - if (hA != NULL) { - if (hA != (address)InterpreterRuntime::slow_signature_handler){ - InterpreterRuntime::SignatureHandler *handler = - InterpreterRuntime::SignatureHandler::from_handlerAddr(hA); - - intptr_t *params = - istate->stack_base() - handler->argument_count(); - - if (addr >= params) { - int param = addr - params; - const char *desc = ""; - if (param == 0) - desc = " (JNIEnv)"; - else if (param == 1) { - if (istate->method()->is_static()) - desc = " (mirror)"; - else - desc = " (this)"; - } - snprintf(_buf, _buflen, "parameter[%d]%s", param, desc); - field = _buf; - } - else { - for (int i = 0; i < handler->argument_count(); i++) { - if (params[i] == (intptr_t) addr) { - snprintf(_buf, _buflen, "unboxed parameter[%d]", i); - field = _buf; - break; - } - } - } - } - } - } - else { - snprintf(_buf, _buflen, "%s[" INTPTR_FORMAT "]", - top_frame ? "stack_word" : "local", - istate->stack_base() - addr - 1); - field = _buf; - } - } - } - } - if (frame->is_shark_frame()) { - SharkFrame *sf = frame->as_shark_frame(); - methodOop method = sf->method(); - - if (word == SharkFrame::pc_off) { - field = "pc"; - if (method->is_oop()) { - nmethod *code = method->code(); - address pc = sf->pc(); - if (code->pc_desc_at(pc)) { - SimpleScopeDesc ssd(code, pc); - snprintf(_buf, _buflen, PTR_FORMAT " (bci %d)", pc, ssd.bci()); - value = _buf; - } - } - } - else if (word == SharkFrame::unextended_sp_off) { - field = "unextended_sp"; - } - else if (word == SharkFrame::method_off) { - field = "method"; - if (method->is_oop()) - value = method->name_and_sig_as_C_string(_buf, _buflen); - } - else if (word == SharkFrame::oop_tmp_off) { - field = "oop_tmp"; - } - else { - SharkFrame *sf = (SharkFrame *) frame; - intptr_t *monitor_base = - (intptr_t *) frame - SharkFrame::header_words + 1; - intptr_t *stack_base = - sf->unextended_sp() + sf->method()->max_stack(); - - if (addr >= stack_base && addr < monitor_base) { - int monitor_size = frame::interpreter_frame_monitor_size(); - int last_index = (monitor_base - stack_base) / monitor_size - 1; - int index = last_index - (addr - stack_base) / monitor_size; - intptr_t monitor = - (intptr_t) ((BasicObjectLock *) monitor_base - 1 - index); - intptr_t offset = (intptr_t) addr - monitor; - - if (offset == BasicObjectLock::obj_offset_in_bytes()) { - snprintf(_buf, _buflen, "monitor[%d]->_obj", index); - field = _buf; - } - else if (offset == BasicObjectLock::lock_offset_in_bytes()) { - snprintf(_buf, _buflen, "monitor[%d]->_lock", index); - field = _buf; - } - } - else { - snprintf(_buf, _buflen, "%s[" INTPTR_FORMAT "]", - top_frame ? "stack_word" : "local", - stack_base - addr - 1); - field = _buf; - } - } - } - } - - if (!field) { - snprintf(_buf, _buflen, "word[%d]", word); - field = _buf; - } - _st->print(" %p: %-21s = ", addr, field); - if (value) - _st->print_cr("%s", value); - else - _st->print_cr(PTR_FORMAT, *addr); - } -}; - -#ifndef PRODUCT -extern "C" { - void print_zero_threads() { - char buf[O_BUFLEN]; - ZeroStackPrinter zsp(tty, buf, sizeof(buf)); - - for (JavaThread *t = Threads::first(); t; t = t->next()) { - tty->print(PTR_FORMAT, t); - tty->print(" "); - t->print_on_error(tty, buf, sizeof(buf)); - tty->cr(); - tty->cr(); - - zsp.print(t); - if (t->next()) - tty->cr(); - } - } -} -#endif // !PRODUCT diff -r 175266c8ad02 ports/hotspot/src/cpu/zero/vm/stack_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Wed Sep 09 04:44:36 2009 -0400 @@ -179,4 +179,19 @@ assert(is_deoptimizer_frame(), "should be"); return (DeoptimizerFrame *) this; } + + public: + void identify_word(int frame_index, + int offset, + char* fieldbuf, + char* valuebuf, + int buflen) const; + + protected: + void identify_vp_word(int frame_index, + intptr_t* addr, + intptr_t* monitor_base, + intptr_t* stack_base, + char* fieldbuf, + int buflen) const; }; diff -r 175266c8ad02 ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp Wed Sep 09 04:44:36 2009 -0400 @@ -36,7 +36,18 @@ } frame os::current_frame() { - Unimplemented(); + // The only thing that calls this is the stack printing code in + // VMError::report: + // - Step 110 (printing stack bounds) uses the sp in the frame + // to determine the amount of free space on the stack. We + // set the sp to a close approximation of the real value in + // order to allow this step to complete. + // - Step 120 (printing native stack) tries to walk the stack. + // The frame we create has a NULL pc, which is ignored as an + // invalid frame. + frame dummy = frame(); + dummy.set_sp((intptr_t *) current_stack_pointer()); + return dummy; } char* os::non_memory_address_word() { diff -r 175266c8ad02 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Tue Sep 08 11:47:14 2009 +0100 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Wed Sep 09 04:44:36 2009 -0400 @@ -79,7 +79,7 @@ private: frame pd_last_frame() { assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); - return frame(last_Java_sp()); + return frame(last_Java_sp(), zero_stack()->sp()); } public: From aph at icedtea.classpath.org Wed Sep 9 08:40:59 2009 From: aph at icedtea.classpath.org (aph at icedtea.classpath.org) Date: Wed, 09 Sep 2009 15:40:59 +0000 Subject: /hg/release/icedtea6-1.6: 2009-09-09 Andrew Haley changeset ddb5f1f057a6 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=ddb5f1f057a6 author: aph date: Wed Sep 09 16:44:12 2009 +0100 2009-09-09 Andrew Haley * NEWS: Update for 1.6. diffstat: 2 files changed, 13 insertions(+), 1 deletion(-) ChangeLog | 4 ++++ NEWS | 10 +++++++++- diffs (35 lines): diff -r 952a01e29182 -r ddb5f1f057a6 ChangeLog --- a/ChangeLog Tue Sep 08 17:30:22 2009 +0100 +++ b/ChangeLog Wed Sep 09 16:44:12 2009 +0100 @@ -1,3 +1,7 @@ 2009-09-08 Andrew Haley + + * NEWS: Update for 1.6. + 2009-09-08 Andrew Haley * icedtea-1.6 release. diff -r 952a01e29182 -r ddb5f1f057a6 NEWS --- a/NEWS Tue Sep 08 17:30:22 2009 +0100 +++ b/NEWS Wed Sep 09 16:44:12 2009 +0100 @@ -1,4 +1,4 @@ New in release 1.6 (UNRELEASED) -New in release 1.6 (UNRELEASED) +New in release 1.6: - Added java method tracing using systemtap version 0.9.9+. - Security fixes for: @@ -12,6 +12,14 @@ New in release 1.6 (UNRELEASED) CVE-2009-2476 - OpenJDK OpenType checks can be bypassed CVE-2009-2689 - OpenJDK JDK13Services grants unnecessary privileges CVE-2009-2690 - OpenJDK private variable information disclosure +- FAST interpreter for ARM +- Timezone fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 +- Stackoverflow error fix: +http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 +- Backport regression (NPE) fix for AccessControlContext fix +- Bump to hs14b16 +- The plugin has been updated to improve stability and cookie support. + Support for certificates with mismatched CNs has been added as well. New in release 1.5 (2009-05-20) From aph at icedtea.classpath.org Wed Sep 9 08:43:49 2009 From: aph at icedtea.classpath.org (aph at icedtea.classpath.org) Date: Wed, 09 Sep 2009 15:43:49 +0000 Subject: /hg/release/icedtea6-1.6: Added tag icedtea-1.6-release for chan... Message-ID: changeset d6379c90d5fe in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=d6379c90d5fe author: aph date: Wed Sep 09 16:44:37 2009 +0100 Added tag icedtea-1.6-release for changeset ddb5f1f057a6 diffstat: 1 file changed, 2 insertions(+) .hgtags | 2 ++ diffs (9 lines): diff -r ddb5f1f057a6 -r d6379c90d5fe .hgtags --- a/.hgtags Wed Sep 09 16:44:12 2009 +0100 +++ b/.hgtags Wed Sep 09 16:44:37 2009 +0100 @@ -23,3 +23,5 @@ 59a945bc902a0954c7f48ce151f390a39d475a87 59a945bc902a0954c7f48ce151f390a39d475a87 icedtea-1.6-release 59a945bc902a0954c7f48ce151f390a39d475a87 icedtea-1.6-release 47fba49f74a8d772fc86f4ed67e648bc6d1a5ebd icedtea-1.6-release +47fba49f74a8d772fc86f4ed67e648bc6d1a5ebd icedtea-1.6-release +ddb5f1f057a62e1278a1eeee2f797f64cf6b0ee9 icedtea-1.6-release From aph at redhat.com Wed Sep 9 10:00:07 2009 From: aph at redhat.com (Andrew Haley) Date: Wed, 09 Sep 2009 18:00:07 +0100 Subject: IcedTea6 1.6 Released! Message-ID: <4AA7DF17.20107@redhat.com> We are proud to announce the release of IcedTea6 6. The IcedTea project provides a harness to build the source code from OpenJDK7 using Free Software build tools. It also includes the only Free Java plugin and Web Start implementation, and support for additional architectures over and above x86, x86_64 and SPARC via the Zero assembler port. What's New? ----------------- - Added java method tracing using systemtap version 0.9.9+. - Security fixes for: CVE-2009-2670 - OpenJDK Untrusted applet System properties access CVE-2009-2671 CVE-2009-2672 - OpenJDK Proxy mechanism information leaks CVE-2009-2673 - OpenJDK proxy mechanism allows non-authorized socket connections CVE-2009-2674 - Java Web Start Buffer JPEG processing integer overflow CVE-2009-2675 - Java Web Start Buffer unpack200 processing integer overflow CVE-2009-2625 - OpenJDK XML parsing Denial-Of-Service CVE-2009-2475 - OpenJDK information leaks in mutable variables CVE-2009-2476 - OpenJDK OpenType checks can be bypassed CVE-2009-2689 - OpenJDK JDK13Services grants unnecessary privileges CVE-2009-2690 - OpenJDK private variable information disclosure - FAST interpreter for ARM - Timezone fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 - Stackoverflow error fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 - Backport regression (NPE) fix for AccessControlContext fix - Bump to hs14b16 - The plugin has been updated to improve stability and cookie support. Support for certificates with mismatched CNs has been added as well. ----------------- The tarball and nosrc RPM can be downloaded here: http://icedtea.classpath.org/download/fedora/java-1.6.0-openjdk-1.6.0.0-28.b16.fc11.nosrc.rpm http://icedtea.classpath.org/download/source/icedtea6-1.6.tar.gz The following people helped with this release: Gary Benson, Deepak Bhole, Andrew Haley, Andrew John Hughes, Mark Wielaard, Lillian Angel, Matthias Klose, Ed Nevill, and many others. We would also like to thank the bug reporters and testers! To get started: $ hg clone http://icedtea.classpath.org/hg/release/icedtea6-1.6 $ cd icedtea6-1.6 Full build requirements and instructions are in INSTALL: $ ./configure [--enable-visualvm --with-openjdk --enable-pulse-java --enable-systemtap ...] $ make From aph at redhat.com Wed Sep 9 10:04:40 2009 From: aph at redhat.com (Andrew Haley) Date: Wed, 09 Sep 2009 18:04:40 +0100 Subject: icedtea-1.6-branch is open In-Reply-To: <4AA68503.9050008@redhat.com> References: <4AA68503.9050008@redhat.com> Message-ID: <4AA7E028.9030307@redhat.com> The branch is now open for bug fixes, usual patch approval rules apply. Andrew. From a.radke at arcor.de Wed Sep 9 13:59:40 2009 From: a.radke at arcor.de (Andreas Radke) Date: Wed, 9 Sep 2009 22:59:40 +0200 Subject: IcedTea6 1.6 Released! In-Reply-To: <4AA7DF17.20107@redhat.com> References: <4AA7DF17.20107@redhat.com> Message-ID: <20090909225940.69c265c4@laptop64.home> Am Wed, 09 Sep 2009 18:00:07 +0100 schrieb Andrew Haley : > We are proud to announce the release of IcedTea6 6. > > The IcedTea project provides a harness to build the source code from > OpenJDK7 using Free Software build tools. It also includes the only > Free Java plugin and Web Start implementation, and support for > additional architectures over and above x86, x86_64 and SPARC via the > Zero assembler port. > > > What's New? > ----------------- > - Added java method tracing using systemtap version 0.9.9+. > - Security fixes for: > CVE-2009-2670 - OpenJDK Untrusted applet System properties access > CVE-2009-2671 CVE-2009-2672 - OpenJDK Proxy mechanism information > leaks CVE-2009-2673 - OpenJDK proxy mechanism allows non-authorized > socket connections CVE-2009-2674 - Java Web Start Buffer JPEG > processing integer overflow CVE-2009-2675 - Java Web Start Buffer > unpack200 processing integer overflow CVE-2009-2625 - OpenJDK XML > parsing Denial-Of-Service CVE-2009-2475 - OpenJDK information leaks > in mutable variables CVE-2009-2476 - OpenJDK OpenType checks can be > bypassed CVE-2009-2689 - OpenJDK JDK13Services grants unnecessary > privileges CVE-2009-2690 - OpenJDK private variable information > disclosure > - FAST interpreter for ARM > - Timezone fix: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 > - Stackoverflow error fix: > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 > - Backport regression (NPE) fix for AccessControlContext fix > - Bump to hs14b16 > - The plugin has been updated to improve stability and cookie support. > Support for certificates with mismatched CNs has been added as well. > ----------------- > > The tarball and nosrc RPM can be downloaded here: > > http://icedtea.classpath.org/download/fedora/java-1.6.0-openjdk-1.6.0.0-28.b16.fc11.nosrc.rpm > > http://icedtea.classpath.org/download/source/icedtea6-1.6.tar.gz > > > The following people helped with this release: > Gary Benson, Deepak Bhole, Andrew Haley, Andrew John Hughes, Mark > Wielaard, Lillian Angel, Matthias Klose, Ed Nevill, and many others. > > > We would also like to thank the bug reporters and testers! > > To get started: > $ hg clone http://icedtea.classpath.org/hg/release/icedtea6-1.6 > $ cd icedtea6-1.6 > > Full build requirements and instructions are in INSTALL: > $ ./configure [--enable-visualvm --with-openjdk --enable-pulse-java > --enable-systemtap ...] > $ make > We build our packages with latest openjdk/icedtea. It seems something has changed from 1.5.2 to 1.6: checking for an OpenJDK source zip... /tmp/openjdk6/trunk/src/openjdk-6-src-b16-24_apr_2009.tar.gz checking for a HotSpot source zip... 09f7962b8b44.tar.gz checking for an OpenJDK source directory... /tmp/openjdk6/trunk/src/icedtea6-1.6/openjdk checking for an alternate jar command... not specified checking whether to use CACAO as VM... no checking for CACAO home directory... $(abs_top_builddir)/cacao/install checking for a CACAO source zip... not specified checking whether to disable optimizations... checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking whether to use the zero-assembler port... no checking whether to use the Shark JIT... no checking whether to retrieve the source code from Mercurial... no checking which Mercurial revision to use... tip checking cups/cups.h usability... yes checking cups/cups.h presence... yes checking for cups/cups.h... yes checking cups/ppd.h usability... yes checking cups/ppd.h presence... yes checking for cups/ppd.h... yes checking X11/X.h usability... yes checking X11/X.h presence... yes checking for X11/X.h... yes checking for main in -ljpeg... yes checking for main in -lgif... yes checking for main in -lz... yes checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for XPROTO... yes checking for XT... yes checking for XP... yes checking for X11... yes checking for XINERAMA... yes checking for XRENDER... yes checking for LIBPNG... yes checking for XTST... yes checking for FREETYPE2... yes checking for ALSA... yes checking for XULRUNNER... yes checking for GTK... yes checking for GLIB... yes checking for xulrunner version... 1090102 checking for --with-additional-vms... configure: creating ./config.status config.status: creating Makefile config.status: creating platform_zero config.status: creating jvm.cfg config.status: creating ergo.c config.status: executing depfiles commands configure: WARNING: unrecognized options: --with-openjdk-home mkdir -p bootstrap rm -f bootstrap/jdk1.6.0 ln -sf yes bootstrap/jdk1.6.0; \ if ! bootstrap/jdk1.6.0/bin/java -version ; \ then \ echo "bootstrap/jdk1.6.0/bin/java" \ "cannot be found or is corrupted." ; \ exit 1; \ fi /bin/sh: Zeile 1: bootstrap/jdk1.6.0/bin/java: Datei oder Verzeichnis nicht gefunden bootstrap/jdk1.6.0/bin/java cannot be found or is corrupted. make: *** [stamps/bootstrap-directory-symlink.stamp] Fehler 1 ==> FEHLER: Build fehlgeschlagen. Was has been changed here? -Andy Arch Linux package maintainer From doko at ubuntu.com Wed Sep 9 14:14:19 2009 From: doko at ubuntu.com (Matthias Klose) Date: Wed, 09 Sep 2009 23:14:19 +0200 Subject: IcedTea6 1.6 Released! In-Reply-To: <20090909225940.69c265c4@laptop64.home> References: <4AA7DF17.20107@redhat.com> <20090909225940.69c265c4@laptop64.home> Message-ID: <4AA81AAB.5080303@ubuntu.com> On 09.09.2009 22:59, Andreas Radke wrote: > configure: WARNING: unrecognized options: --with-openjdk-home > Was has been changed here? run configure --help and look for the changed configuration options. Yes, we missed to document these changes. Matthias From gnu_andrew at member.fsf.org Wed Sep 9 14:27:06 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 9 Sep 2009 22:27:06 +0100 Subject: IcedTea6 1.6 Released! In-Reply-To: <4AA81AAB.5080303@ubuntu.com> References: <4AA7DF17.20107@redhat.com> <20090909225940.69c265c4@laptop64.home> <4AA81AAB.5080303@ubuntu.com> Message-ID: <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> 2009/9/9 Matthias Klose : > On 09.09.2009 22:59, Andreas Radke wrote: > >> configure: WARNING: unrecognized options: --with-openjdk-home > >> Was has been changed here? > > run configure --help and look for the changed configuration options. Yes, we > missed to document these changes. > > ?Matthias > Yeah, the important bit you missed off that big listing was the options you were passing to configure :) But if you change --with-openjdk-home to --with-openjdk, all should be well. I did document this in 7... it just seems that bit didn't get backported :( -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From a.radke at arcor.de Thu Sep 10 00:55:49 2009 From: a.radke at arcor.de (Andreas Radke) Date: Thu, 10 Sep 2009 09:55:49 +0200 (CEST) Subject: IcedTea6 1.6 Released! In-Reply-To: <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> References: <4AA7DF17.20107@redhat.com> <20090909225940.69c265c4@laptop64.home> <4AA81AAB.5080303@ubuntu.com> <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> Message-ID: Ok, found out why it failed: _javaver=1.6.0 _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk the configure check failed about this pathname. and exporting $SYSTEM_OPENJDK_DIR couldn't solve it. I have to patch configure to accept our path. Maybe you know a more simple fix. Now a bit further: one patch fails... Checking patches/icedtea-version.patch The text leading up to this was: -------------------------- |--- openjdkold/jdk/make/common/shared/Defs.gmk 2008-08-28 04:10:47.000000000 -0400 |+++ openjdk/jdk/make/common/shared/Defs.gmk 2009-02-08 08:30:21.000000000 -0500 -------------------------- No file to patch. Skipping patch. 1 out of 1 hunk ignored The text leading up to this was: -------------------------- |--- openjdk/jdk/src/share/classes/sun/misc/Version-template.java.~1~ 2008-11-25 01:04:53.000000000 -0800 |+++ openjdk/jdk/src/share/classes/sun/misc/Version-template.java 2009-02-20 09:03:25.000000000 -0800 -------------------------- No file to patch. Skipping patch. 2 out of 2 hunks ignored The text leading up to this was: -------------------------- |--- openjdk/jdk/make/java/version/Makefile.~1~ 2008-11-25 01:01:15.000000000 -0800 |+++ openjdk/jdk/make/java/version/Makefile 2009-02-20 09:03:56.000000000 -0800 -------------------------- No file to patch. Skipping patch. 1 out of 1 hunk ignored ERROR patch patches/icedtea-version.patch FAILED! WARNING make clean-patch before retrying a fix make: *** [stamps/patch.stamp] Fehler 2 How can we solve this? -Andy From aph at redhat.com Thu Sep 10 02:07:17 2009 From: aph at redhat.com (Andrew Haley) Date: Thu, 10 Sep 2009 10:07:17 +0100 Subject: IcedTea6 1.6 Released! In-Reply-To: References: <4AA7DF17.20107@redhat.com> <20090909225940.69c265c4@laptop64.home> <4AA81AAB.5080303@ubuntu.com> <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> Message-ID: <4AA8C1C5.6090404@redhat.com> Andreas Radke wrote: > Ok, found out why it failed: > > _javaver=1.6.0 > _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk > > the configure check failed about this pathname. and exporting > $SYSTEM_OPENJDK_DIR couldn't solve it. I have to patch configure to > accept our path. Maybe you know a more simple fix. > > Now a bit further: one patch fails... > > Checking patches/icedtea-version.patch > The text leading up to this was: > -------------------------- > |--- openjdkold/jdk/make/common/shared/Defs.gmk 2008-08-28 > 04:10:47.000000000 -0400 > |+++ openjdk/jdk/make/common/shared/Defs.gmk 2009-02-08 > 08:30:21.000000000 -0500 > -------------------------- > No file to patch. Skipping patch. > 1 out of 1 hunk ignored > The text leading up to this was: > -------------------------- > |--- openjdk/jdk/src/share/classes/sun/misc/Version-template.java.~1~ > 2008-11-25 01:04:53.000000000 -0800 > |+++ openjdk/jdk/src/share/classes/sun/misc/Version-template.java > 2009-02-20 09:03:25.000000000 -0800 > -------------------------- > No file to patch. Skipping patch. > 2 out of 2 hunks ignored > The text leading up to this was: > -------------------------- > |--- openjdk/jdk/make/java/version/Makefile.~1~ 2008-11-25 > 01:01:15.000000000 -0800 > |+++ openjdk/jdk/make/java/version/Makefile 2009-02-20 > 09:03:56.000000000 -0800 > -------------------------- > No file to patch. Skipping patch. > 1 out of 1 hunk ignored > ERROR patch patches/icedtea-version.patch FAILED! > WARNING make clean-patch before retrying a fix > make: *** [stamps/patch.stamp] Fehler 2 > > > How can we solve this? I get patching file openjdk/hotspot/make/linux/makefiles/optimized.make Checking patches/icedtea-version.patch Applying patches/icedtea-version.patch patching file openjdk/jdk/make/common/shared/Defs.gmk patching file openjdk/jdk/src/share/classes/sun/misc/Version-template.java patching file openjdk/jdk/make/java/version/Makefile so I do not know what is causing your problem. Please tell us precisely what you did, and some more about your environment. Andrew. From aph at redhat.com Thu Sep 10 05:14:30 2009 From: aph at redhat.com (Andrew Haley) Date: Thu, 10 Sep 2009 13:14:30 +0100 Subject: IcedTea6 1.6 Released! In-Reply-To: <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> References: <4AA7DF17.20107@redhat.com> <20090909225940.69c265c4@laptop64.home> <4AA81AAB.5080303@ubuntu.com> <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> Message-ID: <4AA8EDA6.80909@redhat.com> Andrew John Hughes wrote: > 2009/9/9 Matthias Klose : >> On 09.09.2009 22:59, Andreas Radke wrote: >> >>> configure: WARNING: unrecognized options: --with-openjdk-home >>> Was has been changed here? >> run configure --help and look for the changed configuration options. Yes, we >> missed to document these changes. >> >> Matthias >> > > Yeah, the important bit you missed off that big listing was the > options you were passing to configure :) > > But if you change --with-openjdk-home to --with-openjdk, all should be well. > > I did document this in 7... it just seems that bit didn't get backported :( Can you please back-port the documentation change? Thanks, Andrew. From aph at redhat.com Thu Sep 10 05:20:26 2009 From: aph at redhat.com (Andrew Haley) Date: Thu, 10 Sep 2009 13:20:26 +0100 Subject: Miscellaneous jar improvements Message-ID: <4AA8EF0A.9030209@redhat.com> 2009-09-10 Andrew Haley * patches/icedtea-jar-misc.patch: Import patch from upstream OpenJDK 6. http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 This is a patch to make jar much faster. On Zero targets, this much improves the build time, which is very painful on the distro builders. OK for IcedTea trunk and 1.6 branch? Andrew. From mark at klomp.org Thu Sep 10 05:34:18 2009 From: mark at klomp.org (Mark Wielaard) Date: Thu, 10 Sep 2009 14:34:18 +0200 Subject: Miscellaneous jar improvements In-Reply-To: <4AA8EF0A.9030209@redhat.com> References: <4AA8EF0A.9030209@redhat.com> Message-ID: <1252586058.9780.19.camel@springer.wildebeest.org> On Thu, 2009-09-10 at 13:20 +0100, Andrew Haley wrote: > 2009-09-10 Andrew Haley > > * patches/icedtea-jar-misc.patch: Import patch from upstream > OpenJDK 6. > http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 > > > This is a patch to make jar much faster. On Zero targets, this much > improves the build time, which is very painful on the distro builders. > > OK for IcedTea trunk and 1.6 branch? Yes, I would like to see that speedup! Martin claimed on some setup it reduced the rt.jar building to just 2 seconds (!). Seeing that building rt.jar currently is one of the most time consuming steps in the build that would be fantastic. I think this is fine, it comes with extra tests and is already in jdk7 and jdk6. If the speedup claims are true it would be good to get this sooner rather than later. But lets also try to encourage jdk6 to make a new release soon. Thanks for testing and backporting this, Mark From gnu_andrew at member.fsf.org Thu Sep 10 05:42:45 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 10 Sep 2009 13:42:45 +0100 Subject: Miscellaneous jar improvements In-Reply-To: <1252586058.9780.19.camel@springer.wildebeest.org> References: <4AA8EF0A.9030209@redhat.com> <1252586058.9780.19.camel@springer.wildebeest.org> Message-ID: <17c6771e0909100542x1c840d09h597515dc135e7150@mail.gmail.com> 2009/9/10 Mark Wielaard : > On Thu, 2009-09-10 at 13:20 +0100, Andrew Haley wrote: >> 2009-09-10 ?Andrew Haley ? >> >> ? ? ? * patches/icedtea-jar-misc.patch: Import patch from upstream >> ? ? ? OpenJDK 6. >> ? ? ? http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 >> >> >> This is a patch to make jar much faster. ?On Zero targets, this much >> improves the build time, which is very painful on the distro builders. >> >> OK for IcedTea trunk and 1.6 branch? > > Yes, I would like to see that speedup! Martin claimed on some setup it > reduced the rt.jar building to just 2 seconds (!). Seeing that building > rt.jar currently is one of the most time consuming steps in the build > that would be fantastic. > > I think this is fine, it comes with extra tests and is already in jdk7 > and jdk6. If the speedup claims are true it would be good to get this > sooner rather than later. > Yes please! Don't know how I missed this one, I saw the thread start but didn't see it turn into a commit. > But lets also try to encourage jdk6 to make a new release soon. > Which translates as encourage them to fix jcheck -- because the release is planned, it's waiting on the hs14 merge. > Thanks for testing and backporting this, > > Mark > > Likewise, -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From aph at icedtea.classpath.org Thu Sep 10 05:49:04 2009 From: aph at icedtea.classpath.org (aph at icedtea.classpath.org) Date: Thu, 10 Sep 2009 12:49:04 +0000 Subject: /hg/release/icedtea6-1.6: 2009-09-10 Andrew Haley changeset da4268686a33 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=da4268686a33 author: aph date: Thu Sep 10 13:52:13 2009 +0100 2009-09-10 Andrew Haley * Makefile.am, patches/icedtea-jar-misc.patch: Import patch from upstream OpenJDK 6. http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 diffstat: 3 files changed, 1134 insertions(+), 1 deletion(-) ChangeLog | 6 Makefile.am | 3 patches/icedtea-jar-misc.patch | 1126 ++++++++++++++++++++++++++++++++++++++++ diffs (truncated from 1156 to 500 lines): diff -r d6379c90d5fe -r da4268686a33 ChangeLog --- a/ChangeLog Wed Sep 09 16:44:37 2009 +0100 +++ b/ChangeLog Thu Sep 10 13:52:13 2009 +0100 @@ -1,3 +1,9 @@ 2009-09-09 Andrew Haley + + * Makefile.am, patches/icedtea-jar-misc.patch: Import patch from + upstream OpenJDK 6. + http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 + 2009-09-09 Andrew Haley * NEWS: Update for 1.6. diff -r d6379c90d5fe -r da4268686a33 Makefile.am --- a/Makefile.am Wed Sep 09 16:44:37 2009 +0100 +++ b/Makefile.am Thu Sep 10 13:52:13 2009 +0100 @@ -622,7 +622,8 @@ ICEDTEA_PATCHES = \ patches/security/icedtea-6824440.patch \ patches/security/icedtea-6830335.patch \ patches/security/icedtea-6845701.patch \ - patches/security/icedtea-6813167.patch + patches/security/icedtea-6813167.patch \ + patches/icedtea-jar-misc.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r d6379c90d5fe -r da4268686a33 patches/icedtea-jar-misc.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-jar-misc.patch Thu Sep 10 13:52:13 2009 +0100 @@ -0,0 +1,1126 @@ + +# HG changeset patch +# User martin +# Date 1246913604 25200 +# Node ID b35f1e5075a42030e8624459b13daa45ffc834f8 +# Parent 1661d42b1c09135b77f039e604878f0985d24255 +6854795: Miscellaneous improvements to "jar" +6834805: Improve jar -C performance +6332094: "jar t" and "jar x" should use ZipFile, not ZipInputStream +6496274: jar seems to use more CPU than it should +Summary: backport jdk7 jar command (remove use of nio2) +Reviewed-by: sherman, darcy + +--- openjdk/jdk/src/share/classes/sun/tools/jar/Main.java Thu Jun 25 17:15:18 2009 -0400 ++++ openjdk/jdk/src/share/classes/sun/tools/jar/Main.java Mon Jul 06 13:53:24 2009 -0700 +@@ -32,6 +32,8 @@ import java.util.jar.Manifest; + import java.util.jar.Manifest; + import java.text.MessageFormat; + import sun.misc.JarIndex; ++import static sun.misc.JarIndex.INDEX_NAME; ++import static java.util.jar.JarFile.MANIFEST_NAME; + + /** + * This class implements a simple utility for creating files in the JAR +@@ -46,10 +48,18 @@ class Main { + String zname = ""; + String[] files; + String rootjar = null; +- Hashtable filesTable = new Hashtable(); +- Vector paths = new Vector(); +- Vector v; +- CRC32 crc32 = new CRC32(); ++ ++ // An entryName(path)->File map generated during "expand", it helps to ++ // decide whether or not an existing entry in a jar file needs to be ++ // replaced, during the "update" operation. ++ Map entryMap = new HashMap(); ++ ++ // All files need to be added/updated. ++ Set entries = new LinkedHashSet(); ++ ++ // Directories specified by "-C" operation. ++ Set paths = new HashSet(); ++ + /* + * cflag: create + * uflag: update +@@ -62,11 +72,8 @@ class Main { + */ + boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag; + +- static final String MANIFEST = JarFile.MANIFEST_NAME; + static final String MANIFEST_DIR = "META-INF/"; + static final String VERSION = "1.0"; +- static final char SEPARATOR = File.separatorChar; +- static final String INDEX = JarIndex.INDEX_NAME; + + private static ResourceBundle rsrc; + +@@ -118,9 +125,21 @@ class Main { + this.program = program; + } + ++ /** ++ * Creates a new empty temporary file in the same directory as the ++ * specified file. A variant of File.createTempFile. ++ */ ++ private static File createTempFileInSameDirectoryAs(File file) ++ throws IOException { ++ File dir = file.getParentFile(); ++ if (dir == null) ++ dir = new File("."); ++ return File.createTempFile("jartmp", null, dir); ++ } ++ + private boolean ok; + +- /* ++ /** + * Starts main program with the specified arguments. + */ + public synchronized boolean run(String args[]) { +@@ -153,7 +172,7 @@ class Main { + } + addVersion(manifest); + addCreatedBy(manifest); +- if (isAmbigousMainClass(manifest)) { ++ if (isAmbiguousMainClass(manifest)) { + if (in != null) { + in.close(); + } +@@ -175,7 +194,8 @@ class Main { + vflag = false; + } + } +- create(new BufferedOutputStream(out), expand(files), manifest); ++ expand(null, files, false); ++ create(new BufferedOutputStream(out, 4096), manifest); + if (in != null) { + in.close(); + } +@@ -186,9 +206,7 @@ class Main { + FileOutputStream out; + if (fname != null) { + inputFile = new File(fname); +- String path = inputFile.getParent(); +- tmpFile = File.createTempFile("tmp", null, +- new File((path == null) ? "." : path)); ++ tmpFile = createTempFileInSameDirectoryAs(inputFile); + in = new FileInputStream(inputFile); + out = new FileOutputStream(tmpFile); + } else { +@@ -198,8 +216,9 @@ class Main { + } + InputStream manifest = (!Mflag && (mname != null)) ? + (new FileInputStream(mname)) : null; +- expand(files); +- boolean updateOk = update(in, new BufferedOutputStream(out), manifest); ++ expand(null, files, true); ++ boolean updateOk = update(in, new BufferedOutputStream(out), ++ manifest, null); + if (ok) { + ok = updateOk; + } +@@ -217,19 +236,32 @@ class Main { + } + tmpFile.delete(); + } +- } else if (xflag || tflag) { +- InputStream in; ++ } else if (tflag) { ++ replaceFSC(files); + if (fname != null) { +- in = new FileInputStream(fname); ++ list(fname, files); + } else { +- in = new FileInputStream(FileDescriptor.in); +- } +- if (xflag) { +- extract(new BufferedInputStream(in), files); ++ InputStream in = new FileInputStream(FileDescriptor.in); ++ try{ ++ list(new BufferedInputStream(in), files); ++ } finally { ++ in.close(); ++ } ++ } ++ } else if (xflag) { ++ replaceFSC(files); ++ if (fname != null && files != null) { ++ extract(fname, files); + } else { +- list(new BufferedInputStream(in), files); +- } +- in.close(); ++ InputStream in = (fname == null) ++ ? new FileInputStream(FileDescriptor.in) ++ : new FileInputStream(fname); ++ try { ++ extract(new BufferedInputStream(in), files); ++ } finally { ++ in.close(); ++ } ++ } + } else if (iflag) { + genIndex(rootjar, files); + } +@@ -248,8 +280,8 @@ class Main { + return ok; + } + +- /* +- * Parse command line arguments. ++ /** ++ * Parses command line arguments. + */ + boolean parseArgs(String args[]) { + /* Preprocess and expand @file arguments */ +@@ -354,7 +386,7 @@ class Main { + while (dir.indexOf("//") > -1) { + dir = dir.replace("//", "/"); + } +- paths.addElement(dir.replace(File.separatorChar, '/')); ++ paths.add(dir.replace(File.separatorChar, '/')); + nameBuf[k++] = dir + args[++i]; + } else { + nameBuf[k++] = args[i]; +@@ -383,21 +415,11 @@ class Main { + return true; + } + +- /* ++ /** + * Expands list of files to process into full list of all files that + * can be found by recursively descending directories. + */ +- String[] expand(String[] files) { +- v = new Vector(); +- expand(null, files, v, filesTable); +- files = new String[v.size()]; +- for (int i = 0; i < files.length; i++) { +- files[i] = ((File)v.elementAt(i)).getPath(); +- } +- return files; +- } +- +- void expand(File dir, String[] files, Vector v, Hashtable t) { ++ void expand(File dir, String[] files, boolean isUpdate) { + if (files == null) { + return; + } +@@ -409,17 +431,20 @@ class Main { + f = new File(dir, files[i]); + } + if (f.isFile()) { +- if (!t.contains(f)) { +- t.put(entryName(f.getPath()), f); +- v.addElement(f); ++ if (entries.add(f)) { ++ if (isUpdate) ++ entryMap.put(entryName(f.getPath()), f); + } + } else if (f.isDirectory()) { +- String dirPath = f.getPath(); +- dirPath = (dirPath.endsWith(File.separator)) ? dirPath : +- (dirPath + File.separator); +- t.put(entryName(dirPath), f); +- v.addElement(f); +- expand(f, f.list(), v, t); ++ if (entries.add(f)) { ++ if (isUpdate) { ++ String dirPath = f.getPath(); ++ dirPath = (dirPath.endsWith(File.separator)) ? dirPath : ++ (dirPath + File.separator); ++ entryMap.put(entryName(dirPath), f); ++ } ++ expand(f, f.list(), isUpdate); ++ } + } else { + error(formatMsg("error.nosuch.fileordir", String.valueOf(f))); + ok = false; +@@ -427,10 +452,10 @@ class Main { + } + } + +- /* ++ /** + * Creates a new JAR file. + */ +- void create(OutputStream out, String[] files, Manifest manifest) ++ void create(OutputStream out, Manifest manifest) + throws IOException + { + ZipOutputStream zos = new JarOutputStream(out); +@@ -446,7 +471,7 @@ class Main { + e.setSize(0); + e.setCrc(0); + zos.putNextEntry(e); +- e = new ZipEntry(MANIFEST); ++ e = new ZipEntry(MANIFEST_NAME); + e.setTime(System.currentTimeMillis()); + if (flag0) { + crc32Manifest(e, manifest); +@@ -455,42 +480,61 @@ class Main { + manifest.write(zos); + zos.closeEntry(); + } +- for (int i = 0; i < files.length; i++) { +- addFile(zos, new File(files[i])); ++ for (File file: entries) { ++ addFile(zos, file); + } + zos.close(); + } + +- /* +- * update an existing jar file. ++ private char toUpperCaseASCII(char c) { ++ return (c < 'a' || c > 'z') ? c : (char) (c + 'A' - 'a'); ++ } ++ ++ /** ++ * Compares two strings for equality, ignoring case. The second ++ * argument must contain only upper-case ASCII characters. ++ * We don't want case comparison to be locale-dependent (else we ++ * have the notorious "turkish i bug"). ++ */ ++ private boolean equalsIgnoreCase(String s, String upper) { ++ assert upper.toUpperCase(java.util.Locale.ENGLISH).equals(upper); ++ int len; ++ if ((len = s.length()) != upper.length()) ++ return false; ++ for (int i = 0; i < len; i++) { ++ char c1 = s.charAt(i); ++ char c2 = upper.charAt(i); ++ if (c1 != c2 && toUpperCaseASCII(c1) != c2) ++ return false; ++ } ++ return true; ++ } ++ ++ /** ++ * Updates an existing jar file. + */ + boolean update(InputStream in, OutputStream out, +- InputStream newManifest) throws IOException ++ InputStream newManifest, ++ JarIndex jarIndex) throws IOException + { +- Hashtable t = filesTable; +- Vector v = this.v; + ZipInputStream zis = new ZipInputStream(in); + ZipOutputStream zos = new JarOutputStream(out); + ZipEntry e = null; + boolean foundManifest = false; +- byte[] buf = new byte[1024]; +- int n = 0; + boolean updateOk = true; + +- if (t.containsKey(INDEX)) { +- addIndex((JarIndex)t.get(INDEX), zos); ++ if (jarIndex != null) { ++ addIndex(jarIndex, zos); + } + + // put the old entries first, replace if necessary + while ((e = zis.getNextEntry()) != null) { + String name = e.getName(); + +- boolean isManifestEntry = name.toUpperCase( +- java.util.Locale.ENGLISH). +- equals(MANIFEST); +- if ((name.toUpperCase().equals(INDEX) +- && t.containsKey(INDEX)) +- || (Mflag && isManifestEntry)) { ++ boolean isManifestEntry = equalsIgnoreCase(name, MANIFEST_NAME); ++ ++ if ((jarIndex != null && equalsIgnoreCase(name, INDEX_NAME)) ++ || (Mflag && isManifestEntry)) { + continue; + } else if (isManifestEntry && ((newManifest != null) || + (ename != null))) { +@@ -500,9 +544,9 @@ class Main { + // might need it below, and we can't re-read the same data + // twice. + FileInputStream fis = new FileInputStream(mname); +- boolean ambigous = isAmbigousMainClass(new Manifest(fis)); ++ boolean ambiguous = isAmbiguousMainClass(new Manifest(fis)); + fis.close(); +- if (ambigous) { ++ if (ambiguous) { + return false; + } + } +@@ -514,8 +558,7 @@ class Main { + } + updateManifest(old, zos); + } else { +- if (!t.containsKey(name)) { // copy the old stuff +- ++ if (!entryMap.containsKey(name)) { // copy the old stuff + // do our own compression + ZipEntry e2 = new ZipEntry(name); + e2.setMethod(e.getMethod()); +@@ -527,30 +570,24 @@ class Main { + e2.setCrc(e.getCrc()); + } + zos.putNextEntry(e2); +- while ((n = zis.read(buf, 0, buf.length)) != -1) { +- zos.write(buf, 0, n); +- } ++ copy(zis, zos); + } else { // replace with the new files +- addFile(zos, (File)(t.get(name))); +- t.remove(name); +- } +- } +- } +- t.remove(INDEX); ++ File f = entryMap.get(name); ++ addFile(zos, f); ++ entryMap.remove(name); ++ entries.remove(f); ++ } ++ } ++ } + + // add the remaining new files +- if (!t.isEmpty()) { +- for (int i = 0; i < v.size(); i++) { +- File f = (File)v.elementAt(i); +- if (t.containsValue(f)) { +- addFile(zos, f); +- } +- } ++ for (File f: entries) { ++ addFile(zos, f); + } + if (!foundManifest) { + if (newManifest != null) { + Manifest m = new Manifest(newManifest); +- updateOk = !isAmbigousMainClass(m); ++ updateOk = !isAmbiguousMainClass(m); + if (updateOk) { + updateManifest(m, zos); + } +@@ -567,23 +604,16 @@ class Main { + private void addIndex(JarIndex index, ZipOutputStream zos) + throws IOException + { +- ZipEntry e = new ZipEntry(INDEX); ++ ZipEntry e = new ZipEntry(INDEX_NAME); + e.setTime(System.currentTimeMillis()); + if (flag0) { +- e.setMethod(ZipEntry.STORED); +- File ifile = File.createTempFile("index", null, new File(".")); +- BufferedOutputStream bos = new BufferedOutputStream +- (new FileOutputStream(ifile)); +- index.write(bos); +- crc32File(e, ifile); +- bos.close(); +- ifile.delete(); ++ CRC32OutputStream os = new CRC32OutputStream(); ++ index.write(os); ++ os.updateEntry(e); + } + zos.putNextEntry(e); + index.write(zos); +- if (vflag) { +- // output(getMsg("out.update.manifest")); +- } ++ zos.closeEntry(); + } + + private void updateManifest(Manifest m, ZipOutputStream zos) +@@ -594,10 +624,9 @@ class Main { + if (ename != null) { + addMainClass(m, ename); + } +- ZipEntry e = new ZipEntry(MANIFEST); ++ ZipEntry e = new ZipEntry(MANIFEST_NAME); + e.setTime(System.currentTimeMillis()); + if (flag0) { +- e.setMethod(ZipEntry.STORED); + crc32Manifest(e, m); + } + zos.putNextEntry(e); +@@ -611,9 +640,9 @@ class Main { + private String entryName(String name) { + name = name.replace(File.separatorChar, '/'); + String matchPath = ""; +- for (int i = 0; i < paths.size(); i++) { +- String path = (String)paths.elementAt(i); +- if (name.startsWith(path) && (path.length() > matchPath.length())) { ++ for (String path : paths) { ++ if (name.startsWith(path) ++ && (path.length() > matchPath.length())) { + matchPath = path; + } + } +@@ -651,7 +680,7 @@ class Main { + global.put(Attributes.Name.MAIN_CLASS, mainApp); + } + +- private boolean isAmbigousMainClass(Manifest m) { ++ private boolean isAmbiguousMainClass(Manifest m) { + if (ename != null) { + Attributes global = m.getMainAttributes(); + if ((global.get(Attributes.Name.MAIN_CLASS) != null)) { +@@ -663,13 +692,12 @@ class Main { From gnu_andrew at member.fsf.org Thu Sep 10 06:26:35 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 10 Sep 2009 14:26:35 +0100 Subject: IcedTea6 1.6 Released! In-Reply-To: <4AA8EDA6.80909@redhat.com> References: <4AA7DF17.20107@redhat.com> <20090909225940.69c265c4@laptop64.home> <4AA81AAB.5080303@ubuntu.com> <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> <4AA8EDA6.80909@redhat.com> Message-ID: <17c6771e0909100626y60145523le4c528cc0b7ecc6f@mail.gmail.com> 2009/9/10 Andrew Haley : > Andrew John Hughes wrote: >> 2009/9/9 Matthias Klose : >>> On 09.09.2009 22:59, Andreas Radke wrote: >>> >>>> configure: WARNING: unrecognized options: --with-openjdk-home >>>> Was has been changed here? >>> run configure --help and look for the changed configuration options. Yes, we >>> missed to document these changes. >>> >>> ?Matthias >>> >> >> Yeah, the important bit you missed off that big listing was the >> options you were passing to configure :) >> >> But if you change --with-openjdk-home to --with-openjdk, all should be well. >> >> I did document this in 7... it just seems that bit didn't get backported :( > > Can you please back-port the documentation change? > > Thanks, > Andrew. > > Sure, how's this? * INSTALL: Update documentation to reflect recent changes and add Shark requirements. It appears --with-openjdk was never even documented, never mind this change :( Let me know if this is ok to commit and on which branches to do so. I'm also plan to forwardport the two NEWS changesets from 1.6 to HEAD; is that ok? -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 -------------- next part -------------- diff -r 7da45c5bcfa0 INSTALL --- a/INSTALL Thu Sep 10 14:16:04 2009 +0100 +++ b/INSTALL Thu Sep 10 14:22:13 2009 +0100 @@ -39,6 +39,8 @@ For building the zero-assembler port (see below), you will need libffi. +For building the Shark JIT, you will need LLVM 2.5 or current SVN. + For building with systemtap support (--enable-systemtap), you will need systemtap-sdt-devel (available since systemtap 0.9.5). This also needs the --with-abs-install-dir configure option to make sure the hotspot.stp.in @@ -51,21 +53,20 @@ See ./configure --help if you need to override the defaults. -To bootstrap IcedTea with ecj: +To bootstrap IcedTea with ecj and a Classpath-based JDK such as GCJ: autoreconf ./configure make -To build IcedTea with an older version of IcedTea, use: +To build IcedTea with an older version of IcedTea or OpenJDK, use: autoreconf -./configure --with-icedtea - [default location: /usr/lib/jvm/java-icedtea, - to specifiy location use --with-icedtea-home=/path/to/icedtea] +./configure --with-openjdk + to specify the location use --with-openjdk=/path/to/icedtea] make There is currently no install target. -IcedTea ends up in openjdk/control/build/- when the build completes. +IcedTea ends up in openjdk/build/- when the build completes. Example instantiations of - include linux-i586, linux-amd64 and linux-ppc64. Rebuilding The IcedTea Plugs From aph at redhat.com Thu Sep 10 06:29:29 2009 From: aph at redhat.com (Andrew Haley) Date: Thu, 10 Sep 2009 14:29:29 +0100 Subject: IcedTea6 1.6 Released! In-Reply-To: <17c6771e0909100626y60145523le4c528cc0b7ecc6f@mail.gmail.com> References: <4AA7DF17.20107@redhat.com> <20090909225940.69c265c4@laptop64.home> <4AA81AAB.5080303@ubuntu.com> <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> <4AA8EDA6.80909@redhat.com> <17c6771e0909100626y60145523le4c528cc0b7ecc6f@mail.gmail.com> Message-ID: <4AA8FF39.2060704@redhat.com> Andrew John Hughes wrote: > 2009/9/10 Andrew Haley : >> Andrew John Hughes wrote: >>> 2009/9/9 Matthias Klose : >>>> On 09.09.2009 22:59, Andreas Radke wrote: >>>> >>>>> configure: WARNING: unrecognized options: --with-openjdk-home >>>>> Was has been changed here? >>>> run configure --help and look for the changed configuration options. Yes, we >>>> missed to document these changes. >>>> >>>> Matthias >>>> >>> Yeah, the important bit you missed off that big listing was the >>> options you were passing to configure :) >>> >>> But if you change --with-openjdk-home to --with-openjdk, all should be well. >>> >>> I did document this in 7... it just seems that bit didn't get backported :( >> Can you please back-port the documentation change? > > Sure, how's this? > > * INSTALL: Update documentation to reflect recent changes and add > Shark requirements. > > It appears --with-openjdk was never even documented, never mind this change :( > Let me know if this is ok to commit and on which branches to do so. > I'm also plan to forwardport the two NEWS changesets from 1.6 to HEAD; > is that ok? Yes, and yes. The relevant branches are, I think, trunk and 1.6. Andrew. From aph at icedtea.classpath.org Thu Sep 10 06:27:11 2009 From: aph at icedtea.classpath.org (aph at icedtea.classpath.org) Date: Thu, 10 Sep 2009 13:27:11 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset 6aed937c788b in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=6aed937c788b author: aph date: Thu Sep 10 13:52:13 2009 +0100 2009-09-10 Andrew Haley * Makefile.am, patches/icedtea-jar-misc.patch: Import patch from upstream OpenJDK 6. http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 changeset c2589b0c25b8 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c2589b0c25b8 author: aph date: Thu Sep 10 14:02:32 2009 +0100 2009-09-10 Andrew Haley * Makefile.am, patches/icedtea-jar-misc.patch: Import patch from upstream OpenJDK 6. http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 diffstat: 3 files changed, 1134 insertions(+), 1 deletion(-) ChangeLog | 6 Makefile.am | 3 patches/icedtea-jar-misc.patch | 1126 ++++++++++++++++++++++++++++++++++++++++ diffs (truncated from 1156 to 500 lines): diff -r 97bab225c4d6 -r c2589b0c25b8 ChangeLog --- a/ChangeLog Wed Sep 09 04:45:17 2009 -0400 +++ b/ChangeLog Thu Sep 10 14:02:32 2009 +0100 @@ -1,3 +1,9 @@ 2009-09-09 Gary Benson + + * Makefile.am, patches/icedtea-jar-misc.patch: Import patch from + upstream OpenJDK 6. + http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 + 2009-09-09 Gary Benson * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp diff -r 97bab225c4d6 -r c2589b0c25b8 Makefile.am --- a/Makefile.am Wed Sep 09 04:45:17 2009 -0400 +++ b/Makefile.am Thu Sep 10 14:02:32 2009 +0100 @@ -627,7 +627,8 @@ ICEDTEA_PATCHES = \ patches/security/icedtea-6824440.patch \ patches/security/icedtea-6830335.patch \ patches/security/icedtea-6845701.patch \ - patches/security/icedtea-6813167.patch + patches/security/icedtea-6813167.patch \ + patches/icedtea-jar-misc.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 97bab225c4d6 -r c2589b0c25b8 patches/icedtea-jar-misc.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-jar-misc.patch Thu Sep 10 14:02:32 2009 +0100 @@ -0,0 +1,1126 @@ + +# HG changeset patch +# User martin +# Date 1246913604 25200 +# Node ID b35f1e5075a42030e8624459b13daa45ffc834f8 +# Parent 1661d42b1c09135b77f039e604878f0985d24255 +6854795: Miscellaneous improvements to "jar" +6834805: Improve jar -C performance +6332094: "jar t" and "jar x" should use ZipFile, not ZipInputStream +6496274: jar seems to use more CPU than it should +Summary: backport jdk7 jar command (remove use of nio2) +Reviewed-by: sherman, darcy + +--- openjdk/jdk/src/share/classes/sun/tools/jar/Main.java Thu Jun 25 17:15:18 2009 -0400 ++++ openjdk/jdk/src/share/classes/sun/tools/jar/Main.java Mon Jul 06 13:53:24 2009 -0700 +@@ -32,6 +32,8 @@ import java.util.jar.Manifest; + import java.util.jar.Manifest; + import java.text.MessageFormat; + import sun.misc.JarIndex; ++import static sun.misc.JarIndex.INDEX_NAME; ++import static java.util.jar.JarFile.MANIFEST_NAME; + + /** + * This class implements a simple utility for creating files in the JAR +@@ -46,10 +48,18 @@ class Main { + String zname = ""; + String[] files; + String rootjar = null; +- Hashtable filesTable = new Hashtable(); +- Vector paths = new Vector(); +- Vector v; +- CRC32 crc32 = new CRC32(); ++ ++ // An entryName(path)->File map generated during "expand", it helps to ++ // decide whether or not an existing entry in a jar file needs to be ++ // replaced, during the "update" operation. ++ Map entryMap = new HashMap(); ++ ++ // All files need to be added/updated. ++ Set entries = new LinkedHashSet(); ++ ++ // Directories specified by "-C" operation. ++ Set paths = new HashSet(); ++ + /* + * cflag: create + * uflag: update +@@ -62,11 +72,8 @@ class Main { + */ + boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag; + +- static final String MANIFEST = JarFile.MANIFEST_NAME; + static final String MANIFEST_DIR = "META-INF/"; + static final String VERSION = "1.0"; +- static final char SEPARATOR = File.separatorChar; +- static final String INDEX = JarIndex.INDEX_NAME; + + private static ResourceBundle rsrc; + +@@ -118,9 +125,21 @@ class Main { + this.program = program; + } + ++ /** ++ * Creates a new empty temporary file in the same directory as the ++ * specified file. A variant of File.createTempFile. ++ */ ++ private static File createTempFileInSameDirectoryAs(File file) ++ throws IOException { ++ File dir = file.getParentFile(); ++ if (dir == null) ++ dir = new File("."); ++ return File.createTempFile("jartmp", null, dir); ++ } ++ + private boolean ok; + +- /* ++ /** + * Starts main program with the specified arguments. + */ + public synchronized boolean run(String args[]) { +@@ -153,7 +172,7 @@ class Main { + } + addVersion(manifest); + addCreatedBy(manifest); +- if (isAmbigousMainClass(manifest)) { ++ if (isAmbiguousMainClass(manifest)) { + if (in != null) { + in.close(); + } +@@ -175,7 +194,8 @@ class Main { + vflag = false; + } + } +- create(new BufferedOutputStream(out), expand(files), manifest); ++ expand(null, files, false); ++ create(new BufferedOutputStream(out, 4096), manifest); + if (in != null) { + in.close(); + } +@@ -186,9 +206,7 @@ class Main { + FileOutputStream out; + if (fname != null) { + inputFile = new File(fname); +- String path = inputFile.getParent(); +- tmpFile = File.createTempFile("tmp", null, +- new File((path == null) ? "." : path)); ++ tmpFile = createTempFileInSameDirectoryAs(inputFile); + in = new FileInputStream(inputFile); + out = new FileOutputStream(tmpFile); + } else { +@@ -198,8 +216,9 @@ class Main { + } + InputStream manifest = (!Mflag && (mname != null)) ? + (new FileInputStream(mname)) : null; +- expand(files); +- boolean updateOk = update(in, new BufferedOutputStream(out), manifest); ++ expand(null, files, true); ++ boolean updateOk = update(in, new BufferedOutputStream(out), ++ manifest, null); + if (ok) { + ok = updateOk; + } +@@ -217,19 +236,32 @@ class Main { + } + tmpFile.delete(); + } +- } else if (xflag || tflag) { +- InputStream in; ++ } else if (tflag) { ++ replaceFSC(files); + if (fname != null) { +- in = new FileInputStream(fname); ++ list(fname, files); + } else { +- in = new FileInputStream(FileDescriptor.in); +- } +- if (xflag) { +- extract(new BufferedInputStream(in), files); ++ InputStream in = new FileInputStream(FileDescriptor.in); ++ try{ ++ list(new BufferedInputStream(in), files); ++ } finally { ++ in.close(); ++ } ++ } ++ } else if (xflag) { ++ replaceFSC(files); ++ if (fname != null && files != null) { ++ extract(fname, files); + } else { +- list(new BufferedInputStream(in), files); +- } +- in.close(); ++ InputStream in = (fname == null) ++ ? new FileInputStream(FileDescriptor.in) ++ : new FileInputStream(fname); ++ try { ++ extract(new BufferedInputStream(in), files); ++ } finally { ++ in.close(); ++ } ++ } + } else if (iflag) { + genIndex(rootjar, files); + } +@@ -248,8 +280,8 @@ class Main { + return ok; + } + +- /* +- * Parse command line arguments. ++ /** ++ * Parses command line arguments. + */ + boolean parseArgs(String args[]) { + /* Preprocess and expand @file arguments */ +@@ -354,7 +386,7 @@ class Main { + while (dir.indexOf("//") > -1) { + dir = dir.replace("//", "/"); + } +- paths.addElement(dir.replace(File.separatorChar, '/')); ++ paths.add(dir.replace(File.separatorChar, '/')); + nameBuf[k++] = dir + args[++i]; + } else { + nameBuf[k++] = args[i]; +@@ -383,21 +415,11 @@ class Main { + return true; + } + +- /* ++ /** + * Expands list of files to process into full list of all files that + * can be found by recursively descending directories. + */ +- String[] expand(String[] files) { +- v = new Vector(); +- expand(null, files, v, filesTable); +- files = new String[v.size()]; +- for (int i = 0; i < files.length; i++) { +- files[i] = ((File)v.elementAt(i)).getPath(); +- } +- return files; +- } +- +- void expand(File dir, String[] files, Vector v, Hashtable t) { ++ void expand(File dir, String[] files, boolean isUpdate) { + if (files == null) { + return; + } +@@ -409,17 +431,20 @@ class Main { + f = new File(dir, files[i]); + } + if (f.isFile()) { +- if (!t.contains(f)) { +- t.put(entryName(f.getPath()), f); +- v.addElement(f); ++ if (entries.add(f)) { ++ if (isUpdate) ++ entryMap.put(entryName(f.getPath()), f); + } + } else if (f.isDirectory()) { +- String dirPath = f.getPath(); +- dirPath = (dirPath.endsWith(File.separator)) ? dirPath : +- (dirPath + File.separator); +- t.put(entryName(dirPath), f); +- v.addElement(f); +- expand(f, f.list(), v, t); ++ if (entries.add(f)) { ++ if (isUpdate) { ++ String dirPath = f.getPath(); ++ dirPath = (dirPath.endsWith(File.separator)) ? dirPath : ++ (dirPath + File.separator); ++ entryMap.put(entryName(dirPath), f); ++ } ++ expand(f, f.list(), isUpdate); ++ } + } else { + error(formatMsg("error.nosuch.fileordir", String.valueOf(f))); + ok = false; +@@ -427,10 +452,10 @@ class Main { + } + } + +- /* ++ /** + * Creates a new JAR file. + */ +- void create(OutputStream out, String[] files, Manifest manifest) ++ void create(OutputStream out, Manifest manifest) + throws IOException + { + ZipOutputStream zos = new JarOutputStream(out); +@@ -446,7 +471,7 @@ class Main { + e.setSize(0); + e.setCrc(0); + zos.putNextEntry(e); +- e = new ZipEntry(MANIFEST); ++ e = new ZipEntry(MANIFEST_NAME); + e.setTime(System.currentTimeMillis()); + if (flag0) { + crc32Manifest(e, manifest); +@@ -455,42 +480,61 @@ class Main { + manifest.write(zos); + zos.closeEntry(); + } +- for (int i = 0; i < files.length; i++) { +- addFile(zos, new File(files[i])); ++ for (File file: entries) { ++ addFile(zos, file); + } + zos.close(); + } + +- /* +- * update an existing jar file. ++ private char toUpperCaseASCII(char c) { ++ return (c < 'a' || c > 'z') ? c : (char) (c + 'A' - 'a'); ++ } ++ ++ /** ++ * Compares two strings for equality, ignoring case. The second ++ * argument must contain only upper-case ASCII characters. ++ * We don't want case comparison to be locale-dependent (else we ++ * have the notorious "turkish i bug"). ++ */ ++ private boolean equalsIgnoreCase(String s, String upper) { ++ assert upper.toUpperCase(java.util.Locale.ENGLISH).equals(upper); ++ int len; ++ if ((len = s.length()) != upper.length()) ++ return false; ++ for (int i = 0; i < len; i++) { ++ char c1 = s.charAt(i); ++ char c2 = upper.charAt(i); ++ if (c1 != c2 && toUpperCaseASCII(c1) != c2) ++ return false; ++ } ++ return true; ++ } ++ ++ /** ++ * Updates an existing jar file. + */ + boolean update(InputStream in, OutputStream out, +- InputStream newManifest) throws IOException ++ InputStream newManifest, ++ JarIndex jarIndex) throws IOException + { +- Hashtable t = filesTable; +- Vector v = this.v; + ZipInputStream zis = new ZipInputStream(in); + ZipOutputStream zos = new JarOutputStream(out); + ZipEntry e = null; + boolean foundManifest = false; +- byte[] buf = new byte[1024]; +- int n = 0; + boolean updateOk = true; + +- if (t.containsKey(INDEX)) { +- addIndex((JarIndex)t.get(INDEX), zos); ++ if (jarIndex != null) { ++ addIndex(jarIndex, zos); + } + + // put the old entries first, replace if necessary + while ((e = zis.getNextEntry()) != null) { + String name = e.getName(); + +- boolean isManifestEntry = name.toUpperCase( +- java.util.Locale.ENGLISH). +- equals(MANIFEST); +- if ((name.toUpperCase().equals(INDEX) +- && t.containsKey(INDEX)) +- || (Mflag && isManifestEntry)) { ++ boolean isManifestEntry = equalsIgnoreCase(name, MANIFEST_NAME); ++ ++ if ((jarIndex != null && equalsIgnoreCase(name, INDEX_NAME)) ++ || (Mflag && isManifestEntry)) { + continue; + } else if (isManifestEntry && ((newManifest != null) || + (ename != null))) { +@@ -500,9 +544,9 @@ class Main { + // might need it below, and we can't re-read the same data + // twice. + FileInputStream fis = new FileInputStream(mname); +- boolean ambigous = isAmbigousMainClass(new Manifest(fis)); ++ boolean ambiguous = isAmbiguousMainClass(new Manifest(fis)); + fis.close(); +- if (ambigous) { ++ if (ambiguous) { + return false; + } + } +@@ -514,8 +558,7 @@ class Main { + } + updateManifest(old, zos); + } else { +- if (!t.containsKey(name)) { // copy the old stuff +- ++ if (!entryMap.containsKey(name)) { // copy the old stuff + // do our own compression + ZipEntry e2 = new ZipEntry(name); + e2.setMethod(e.getMethod()); +@@ -527,30 +570,24 @@ class Main { + e2.setCrc(e.getCrc()); + } + zos.putNextEntry(e2); +- while ((n = zis.read(buf, 0, buf.length)) != -1) { +- zos.write(buf, 0, n); +- } ++ copy(zis, zos); + } else { // replace with the new files +- addFile(zos, (File)(t.get(name))); +- t.remove(name); +- } +- } +- } +- t.remove(INDEX); ++ File f = entryMap.get(name); ++ addFile(zos, f); ++ entryMap.remove(name); ++ entries.remove(f); ++ } ++ } ++ } + + // add the remaining new files +- if (!t.isEmpty()) { +- for (int i = 0; i < v.size(); i++) { +- File f = (File)v.elementAt(i); +- if (t.containsValue(f)) { +- addFile(zos, f); +- } +- } ++ for (File f: entries) { ++ addFile(zos, f); + } + if (!foundManifest) { + if (newManifest != null) { + Manifest m = new Manifest(newManifest); +- updateOk = !isAmbigousMainClass(m); ++ updateOk = !isAmbiguousMainClass(m); + if (updateOk) { + updateManifest(m, zos); + } +@@ -567,23 +604,16 @@ class Main { + private void addIndex(JarIndex index, ZipOutputStream zos) + throws IOException + { +- ZipEntry e = new ZipEntry(INDEX); ++ ZipEntry e = new ZipEntry(INDEX_NAME); + e.setTime(System.currentTimeMillis()); + if (flag0) { +- e.setMethod(ZipEntry.STORED); +- File ifile = File.createTempFile("index", null, new File(".")); +- BufferedOutputStream bos = new BufferedOutputStream +- (new FileOutputStream(ifile)); +- index.write(bos); +- crc32File(e, ifile); +- bos.close(); +- ifile.delete(); ++ CRC32OutputStream os = new CRC32OutputStream(); ++ index.write(os); ++ os.updateEntry(e); + } + zos.putNextEntry(e); + index.write(zos); +- if (vflag) { +- // output(getMsg("out.update.manifest")); +- } ++ zos.closeEntry(); + } + + private void updateManifest(Manifest m, ZipOutputStream zos) +@@ -594,10 +624,9 @@ class Main { + if (ename != null) { + addMainClass(m, ename); + } +- ZipEntry e = new ZipEntry(MANIFEST); ++ ZipEntry e = new ZipEntry(MANIFEST_NAME); + e.setTime(System.currentTimeMillis()); + if (flag0) { +- e.setMethod(ZipEntry.STORED); + crc32Manifest(e, m); + } + zos.putNextEntry(e); +@@ -611,9 +640,9 @@ class Main { + private String entryName(String name) { + name = name.replace(File.separatorChar, '/'); + String matchPath = ""; +- for (int i = 0; i < paths.size(); i++) { +- String path = (String)paths.elementAt(i); +- if (name.startsWith(path) && (path.length() > matchPath.length())) { ++ for (String path : paths) { ++ if (name.startsWith(path) ++ && (path.length() > matchPath.length())) { + matchPath = path; + } + } +@@ -651,7 +680,7 @@ class Main { + global.put(Attributes.Name.MAIN_CLASS, mainApp); + } + +- private boolean isAmbigousMainClass(Manifest m) { ++ private boolean isAmbiguousMainClass(Manifest m) { + if (ename != null) { + Attributes global = m.getMainAttributes(); + if ((global.get(Attributes.Name.MAIN_CLASS) != null)) { +@@ -663,13 +692,12 @@ class Main { From mvyskocil at suse.cz Thu Sep 10 06:36:13 2009 From: mvyskocil at suse.cz (Michal Vyskocil) Date: Thu, 10 Sep 2009 15:36:13 +0200 Subject: [PATCH] icedtea6-1.6-npplugin-xulrunner191.patch Message-ID: <200909101536.19253.mvyskocil@suse.cz> Hi, a following patch enables icedtea npplugin with xulrunner191, because there are some small API changes between 190 and 191. Regards Michal Vyskocil -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6-1.6-nppplugin-xulrunner191.patch Type: text/x-patch Size: 3551 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090910/1bb7f7f8/attachment.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: This is a digitally signed message part. Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090910/1bb7f7f8/attachment-0001.bin From dbhole at redhat.com Thu Sep 10 07:31:06 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 10 Sep 2009 10:31:06 -0400 Subject: [PATCH] icedtea6-1.6-npplugin-xulrunner191.patch In-Reply-To: <200909101536.19253.mvyskocil@suse.cz> References: <200909101536.19253.mvyskocil@suse.cz> Message-ID: <20090910143106.GA27324@redhat.com> * Michal Vyskocil [2009-09-10 09:36]: > Hi, > > a following patch enables icedtea npplugin with xulrunner191, because there > are some small API changes between 190 and 191. > > Regards > Michal Vyskocil > Index: icedtea6-1.6/plugin/icedteanp/IcedTeaNPPlugin.cc > =================================================================== > --- icedtea6-1.6.orig/plugin/icedteanp/IcedTeaNPPlugin.cc 2009-09-08 16:19:48.000000000 +0200 > +++ icedtea6-1.6/plugin/icedteanp/IcedTeaNPPlugin.cc 2009-09-10 12:50:43.927840173 +0200 > @@ -1824,17 +1824,17 @@ > // Return to the browser the plugin functions that we implement. > pluginTable->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR; > pluginTable->size = sizeof (NPPluginFuncs); > - pluginTable->newp = NewNPP_NewProc (GCJ_New); > - pluginTable->destroy = NewNPP_DestroyProc (GCJ_Destroy); > - pluginTable->setwindow = NewNPP_SetWindowProc (GCJ_SetWindow); > - pluginTable->newstream = NewNPP_NewStreamProc (GCJ_NewStream); > - pluginTable->destroystream = NewNPP_DestroyStreamProc (GCJ_DestroyStream); > - pluginTable->asfile = NewNPP_StreamAsFileProc (GCJ_StreamAsFile); > - pluginTable->writeready = NewNPP_WriteReadyProc (GCJ_WriteReady); > - pluginTable->write = NewNPP_WriteProc (GCJ_Write); > - pluginTable->print = NewNPP_PrintProc (GCJ_Print); > - pluginTable->urlnotify = NewNPP_URLNotifyProc (GCJ_URLNotify); > - pluginTable->getvalue = NewNPP_GetValueProc (GCJ_GetValue); > + pluginTable->newp = NPP_NewProcPtr (GCJ_New); > + pluginTable->destroy = NPP_DestroyProcPtr (GCJ_Destroy); > + pluginTable->setwindow = NPP_SetWindowProcPtr (GCJ_SetWindow); > + pluginTable->newstream = NPP_NewStreamProcPtr (GCJ_NewStream); > + pluginTable->destroystream = NPP_DestroyStreamProcPtr (GCJ_DestroyStream); > + pluginTable->asfile = NPP_StreamAsFileProcPtr (GCJ_StreamAsFile); > + pluginTable->writeready = NPP_WriteReadyProcPtr (GCJ_WriteReady); > + pluginTable->write = NPP_WriteProcPtr (GCJ_Write); > + pluginTable->print = NPP_PrintProcPtr (GCJ_Print); > + pluginTable->urlnotify = NPP_URLNotifyProcPtr (GCJ_URLNotify); > + pluginTable->getvalue = NPP_GetValueProcPtr (GCJ_GetValue); > Thanks. I don't think this patch is needed as is though (in the current incarnation I mean). The code in mercurial already has an if/else based on xulrunner >= 1.9.2. The API in 1.9.2 appears similar to 1.9.1, so it is just a matter of updating the condition. I will need to test it though to make sure it all works. I will make the changes in my next commit. Cheers, Deepak > // Make sure the plugin data directory exists, creating it if > // necessary. > Index: icedtea6-1.6/plugin/icedteanp/IcedTeaScriptablePluginObject.h > =================================================================== > --- icedtea6-1.6.orig/plugin/icedteanp/IcedTeaScriptablePluginObject.h 2009-09-08 16:19:48.000000000 +0200 > +++ icedtea6-1.6/plugin/icedteanp/IcedTeaScriptablePluginObject.h 2009-09-10 12:49:44.027841169 +0200 > @@ -39,7 +39,7 @@ > #ifndef __ICEDTEASCRIPTABLEPLUGINOBJECT_H_ > #define __ICEDTEASCRIPTABLEPLUGINOBJECT_H_ > > -#include "npupp.h" > +#include > > #include "IcedTeaJavaRequestProcessor.h" > #include "IcedTeaNPPlugin.h" > Index: icedtea6-1.6/plugin/icedteanp/IcedTeaNPPlugin.h > =================================================================== > --- icedtea6-1.6.orig/plugin/icedteanp/IcedTeaNPPlugin.h 2009-09-08 16:19:48.000000000 +0200 > +++ icedtea6-1.6/plugin/icedteanp/IcedTeaNPPlugin.h 2009-09-10 13:47:50.816340579 +0200 > @@ -41,7 +41,7 @@ > > // Netscape plugin API includes. > #include > -#include > +#include > #include > > // GLib includes. > Index: icedtea6-1.6/plugin/icedteanp/IcedTeaPluginRequestProcessor.h > =================================================================== > --- icedtea6-1.6.orig/plugin/icedteanp/IcedTeaPluginRequestProcessor.h 2009-09-08 16:19:48.000000000 +0200 > +++ icedtea6-1.6/plugin/icedteanp/IcedTeaPluginRequestProcessor.h 2009-09-10 13:48:46.500338879 +0200 > @@ -46,7 +46,7 @@ > #include > > #include > -#include > +#include > > #include "IcedTeaRunnable.h" > #include "IcedTeaPluginUtils.h" From ed at camswl.com Thu Sep 10 11:03:22 2009 From: ed at camswl.com (Edward Nevill) Date: Thu, 10 Sep 2009 19:03:22 +0100 Subject: Request to committ to trunk - ARM asm improvements Message-ID: <200909101803.n8AI3MZj008799@parsley.camswl.com> Hi folks, I have got a bunch of improvements to the ARM asm interpreter which I would like to commit to the trunk. Because of the limitations on size of message sent to the list I am sending the diffs as 3 messages. The first set (attached below) contains all the diffs to anything other than cppInterpreter_arm.S and bytecodes_arm.def. IE. it contains all the non assembler diffs and hence the diffs most likely to interest you. The second and third set contain the diffs to bytecodes_arm.def and cppInterpreter_arm.S respectively. Please check especially that you are happy with the changes to bytes_zero.hpp and cppInterpreter_zero.cpp Regards, Ed. So, whats new... ----- Makefile.am I have change the 'mkbc' rule from mkbc $< $@ to gcc -E - < $< | mkbc - $@ The idea being to allow you to preprocess the .def file before using mkbc. I have added various #ifdefs to bytecodes_arm.def to allow various optimisations to be enabled and disabled. ----- mkbc.c Change to allow the use of '-' as a filename for stdin / stdout. Also changed to allow '@' as a comment character in addition to '#' to support the use of gcc preprocessing above. ----- ports/hotspot/build/linux/makefiles/zero.make Added rules to build 'asm_helper.cpp' and 'mkoffsets'. Removed the -DHW_NULL_PTR_CHECK. This is the default now. Use -DDISABLE_HW_NULL_PTR_CHECK if undesired. ----- ports/hotspot/src/cpu/zero/vm/asm_helper.cpp New source file. This file serves two purposes. 1) It is built into the JVM image to allow the asm interpreter to access C++ virtual functions. Previously the asm interpreter had to grub around inside C++ V tables to call virtuals which was most non portable. Now it calls a wrapper function in asm_helper.cpp. 2) It is built into the 'mkoffsets' tool to generate the static offsets within various structures in OpenJDK (most notably the JavaThread structure). When 'mkoffsets' is run is generates output of the form #define THREAD_PENDING_EXC 0x04 #define THREAD_SUSPEND_FLAGS 0x18 Thus the offsets are always correct for the version being build. This reduces the possibility of breakage due to offsets changing between openjdk versions (as indeed happened between b14 and b16). Also it allows you to build PRODUCT or DEBUG versions as the offsets change between PRODUCT and DEBUG versions. ----- ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp ----- ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp I have added fast bytecodes of the form iload_N; iload_N iload; iload_N iload_N; iload This means that the following 4 bytecode sequences can now be executed as a single bytecode my the ARM interpreter. in addition to 3 bytecode varients of the above (ie without the istore on the end and many other 3 bytecode combinations (for example ). ----- ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp I have added the 'get_native' and 'get_Java' optimisations discussed previously on the 'zero' list. The effect of this change is to use the gcc __attribute__(unaligned) to load the unaligned data. A union is defined as follows typedef union unaligned { u4 u; u2 us; u8 ul; } __attribute__((packed)) unaligned; and then, for example, get_native_u2 does static inline u2 get_native_u2(address p){ unaligned *up = (unaligned *)p; return up->us; } Note: on x86 this has no effect as x86 permits unaligned accesses. get_Java_u2 and friends now do byte loads / stores to load / store the halfword / word / doubleword on little endian machines. ----- ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp change the #if defined(PRODUCT) && defined(HOTSPOT_ASM) to #ifdef HOTSPOT_ASM remove the definition of BCI_ENTRY not that generate_entry takes an address instead of a BCI_ENTRY and changed the definition of asm_generate_entry to return an address instead of a BCI_ENTRY. Removed the casts. Removed the if (!UseCompiler && !TaggedStackInterpreter & ...) Instead it now always calls asm_generate_entry, asm_generate_entry then tests UseCompiler and TaggedStackInterpreter etc and returns NULL if it cannot support a particular configuration. This is better because the knowledge of which configurations are supported is now embedded in asm_generate_entry instead of cppInterpreter_zero, which means that cppInterpreter_zero does not have to continually change to reflect the stack of asm_generate_entry. ----- ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp removed the #if defined(PRODUCT) --- CUT HERE ---------------------------------------------------------- diff -ruNE old/icedtea6/Makefile.am new/icedtea6/Makefile.am --- old/icedtea6/Makefile.am 2009-09-08 14:30:23.000000000 +0100 +++ new/icedtea6/Makefile.am 2009-09-08 15:08:21.000000000 +0100 @@ -469,8 +469,18 @@ $(abs_top_srcdir)/mkbc: $(abs_top_srcdir)/mkbc.c $(CC) $< -o $@ +# ECN: The following rule has been changed to allow preprocessing of the bytecode definition +# file prior to running 'mkbc'. This allows you to use -DXXX on the gcc command. There are two +# options currently recognized. +# +# -DDISABLE_NOTICE_SAFEPONTS - Always run in 'safe' mode. +# -DDISABLE_FAST_BYTECODES - Disable fast bytecode replacement and bytecode sequences +# +# These options are provided mainly to assist debugging by returning the bytecode interpreter +# to a 'vanilla' interpreter. +# ${ZERO_ASM_BC_ASM}: ${ZERO_ASM_BC_DEF} $(abs_top_srcdir)/mkbc - $(abs_top_srcdir)/mkbc $< $@ + gcc -E - < $< | $(abs_top_srcdir)/mkbc - $@ # Link ports sources into tree stamps/ports.stamp: stamps/replace-hotspot.stamp diff -ruNE old/icedtea6/mkbc.c new/icedtea6/mkbc.c --- old/icedtea6/mkbc.c 2009-09-08 14:30:24.000000000 +0100 +++ new/icedtea6/mkbc.c 2009-09-08 15:09:22.000000000 +0100 @@ -1,3 +1,17 @@ +/* + * Copyright 2009 Edward Nevill + * + * 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). + */ + #include #include #include @@ -10,7 +24,7 @@ #define ISALPHA(c) (isalpha(c) || (c) == '_') #define ISALNUM(c) (isalnum(c) || (c) == '_') -FILE *source_f, *bci_f, *bci_f; +FILE *source_f, *bci_f; typedef struct Bytecode { char *name; @@ -282,7 +296,7 @@ c = (readchar)(); c = skipwhitespace(c); while (c != EOF) { - if (c == '#') { + if (c == '@' || c == '#') { c = skipeol(c); } else if (ISALPHA(c)) { c = readsymbol(c, buf, BUFLEN); @@ -546,7 +560,7 @@ source = bci = 0; while (s = *++argv) { - if (*s == '-') { + if (s[0] == '-' && s[1] != 0) { if (s[1] == 'P') { prefix = s+2; } else { @@ -566,16 +580,26 @@ fprintf(stderr, "Too few arguments\n"); usage(); } - source_f = fopen(source, "r"); - if (!source_f) fatal("Error opening source file"); - bci_f = fopen(bci, "w"); - if (!bci_f) fatal("Error opening bci file for write"); + if (strcmp(source, "-") == 0) { + source_f = stdin; + } else { + source_f = fopen(source, "r"); + if (!source_f) fatal("Error opening source file"); + } + if (strcmp(bci, "-") == 0) { + bci_f = stdout; + } else { + bci_f = fopen(bci, "w"); + if (!bci_f) fatal("Error opening bci file for write"); + } for (i = 0; i < 256; i++) { bytecodes[i].name = "undefined"; bytecodes[i].len = -1; } mkbc(); dumpbc(); - if (fclose(source_f)) fatal("Error reading source"); - if (fclose(bci_f)) fatal("Error writing bci"); + if (ferror(source_f)) fatal("Error reading source"); + if (ferror(bci_f)) fatal("Error writing bci"); + if (source_f != stdin) fclose(source_f); + if (bci_f != stdout) fclose(bci_f); } diff -ruNE old/icedtea6/ports/hotspot/build/linux/makefiles/zero.make new/icedtea6/ports/hotspot/build/linux/makefiles/zero.make --- old/icedtea6/ports/hotspot/build/linux/makefiles/zero.make 2009-09-08 14:30:25.000000000 +0100 +++ new/icedtea6/ports/hotspot/build/linux/makefiles/zero.make 2009-09-10 14:17:01.000000000 +0100 @@ -24,12 +24,28 @@ # ifeq ($(ZERO_LIBARCH),arm) + +Obj_Files += asm_helper.o Obj_Files += cppInterpreter_arm.o -CFLAGS += -DHOTSPOT_ASM -DHW_NULL_PTR_CHECK + +CFLAGS += -DHOTSPOT_ASM + %.o: %.S @echo Assembling $< $(QUIETLY) $(REMOVE_TARGET) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE) + +cppInterpreter_arm.o: offsets_arm.s + +offsets_arm.s: mkoffsets + @echo Generating assembler offsets + ./mkoffsets > $@ + +mkoffsets: asm_helper.cpp + @echo Compiling offset generator + $(QUIETLY) $(REMOVE_TARGET) + $(CC_COMPILE) -DSTATIC_OFFSETS -o $@ $< $(COMPILE_DONE) + endif # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized diff -ruNE old/icedtea6/ports/hotspot/src/cpu/zero/vm/asm_helper.cpp new/icedtea6/ports/hotspot/src/cpu/zero/vm/asm_helper.cpp --- old/icedtea6/ports/hotspot/src/cpu/zero/vm/asm_helper.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/icedtea6/ports/hotspot/src/cpu/zero/vm/asm_helper.cpp 2009-09-08 14:33:40.000000000 +0100 @@ -0,0 +1,234 @@ +/* + * Copyright 2009 Edward Nevill + * + * 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). + */ + +#include "incls/_precompiled.incl" + +#ifndef STATIC_OFFSETS + +extern "C" void sanity_check_backtrace(ZeroFrame *frame, int *regs); + +extern "C" void check_java_threads_backtrace(int *regs) +{ + for (JavaThread* jt = Threads::first(); jt != NULL; jt = jt->next()) { + if (jt->threadObj() == NULL || + jt->is_exiting() || + !java_lang_Thread::is_alive(jt->threadObj()) || + jt->is_hidden_from_external_view()) { + continue; + } + if (jt->is_jvmti_agent_thread()) continue; + if (jt->is_attaching()) continue; + sanity_check_backtrace(jt->top_zero_frame(), regs); + } +} + +/* Thease functions allow the ASM interpreter to call CPP virtual functions. + * Otherwise the ASM interpreter has to grup around in the VTABLE which is + * not very portable. + */ +extern "C" bool JavaThread_is_lock_owned(JavaThread *r0, address r1) +{ + return r0->is_lock_owned(r1); +} + +extern "C" HeapWord **CollectedHeap_top_addr(CollectedHeap *r0) +{ + return r0->top_addr(); +} + +extern "C" HeapWord **CollectedHeap_end_addr(CollectedHeap *r0) +{ + return r0->end_addr(); +} + +#endif // STATIC_OFFSETS + +#ifdef STATIC_OFFSETS + +class VMStructs { +public: + static void print_vm_offsets(void); +}; + +#define outfile stdout + +void print_def(const char *s, int v) +{ + fprintf(outfile, "#define %-40s 0x%02x\n", s, v); +} + +void nl(void) +{ + fputc('\n', outfile); +} + +void VMStructs::print_vm_offsets(void) +{ + print_def("THREAD_PENDING_EXC", offset_of(JavaThread, _pending_exception)); + print_def("THREAD_SUSPEND_FLAGS", offset_of(JavaThread, _suspend_flags)); + print_def("THREAD_ACTIVE_HANDLES", offset_of(JavaThread, _active_handles)); + print_def("THREAD_LAST_HANDLE_MARK", offset_of(JavaThread, _last_handle_mark)); + print_def("THREAD_TLAB_TOP", offset_of(JavaThread, _tlab) + offset_of(ThreadLocalAllocBuffer, _top)); + print_def("THREAD_TLAB_END", offset_of(JavaThread, _tlab) + offset_of(ThreadLocalAllocBuffer, _end)); + print_def("THREAD_RESOURCEAREA", offset_of(JavaThread, _resource_area)); + print_def("THREAD_HANDLE_AREA", offset_of(JavaThread, _handle_area)); + print_def("THREAD_STACK_BASE", offset_of(JavaThread, _stack_base)); + print_def("THREAD_STACK_SIZE", offset_of(JavaThread, _stack_size)); + print_def("THREAD_LAST_JAVA_SP", offset_of(JavaThread, _anchor) + offset_of(JavaFrameAnchor, _last_Java_sp)); + print_def("THREAD_JNI_ENVIRONMENT", offset_of(JavaThread, _jni_environment)); + print_def("THREAD_VM_RESULT", offset_of(JavaThread, _vm_result)); + print_def("THREAD_STATE", offset_of(JavaThread, _thread_state)); + print_def("THREAD_DO_NOT_UNLOCK", offset_of(JavaThread, _do_not_unlock_if_synchronized)); + + print_def("THREAD_JAVA_STACK_BASE", offset_of(JavaThread, _zero_stack) + ZeroStack::base_offset()); + print_def("THREAD_JAVA_SP", offset_of(JavaThread, _zero_stack) + ZeroStack::sp_offset()); + print_def("THREAD_TOP_ZERO_FRAME", offset_of(JavaThread, _top_zero_frame)); + print_def("THREAD_SPECIALRUNTIMEEXITCONDITION", offset_of(JavaThread, _special_runtime_exit_condition)); + nl(); + print_def("_thread_external_suspend", Thread::_external_suspend); + print_def("_thread_ext_suspended", Thread::_ext_suspended); + print_def("_thread_deopt_suspend", Thread::_deopt_suspend); + nl(); + print_def("METHOD_CONSTMETHOD", offset_of(methodOopDesc, _constMethod)); + print_def("METHOD_CONSTANTS", offset_of(methodOopDesc, _constants)); + print_def("METHOD_METHODDATA", offset_of(methodOopDesc, _method_data)); + print_def("METHOD_INVOKECOUNT", offset_of(methodOopDesc, _interpreter_invocation_count)); + print_def("METHOD_ACCESSFLAGS", offset_of(methodOopDesc, _access_flags)); + print_def("METHOD_VTABLEINDEX", offset_of(methodOopDesc, _vtable_index)); + print_def("METHOD_RESULTINDEX", offset_of(methodOopDesc, _result_index)); + print_def("METHOD_METHODSIZE", offset_of(methodOopDesc, _method_size)); + print_def("METHOD_MAXSTACK", offset_of(methodOopDesc, _max_stack)); + print_def("METHOD_MAXLOCALS", offset_of(methodOopDesc, _max_locals)); + print_def("METHOD_SIZEOFPARAMETERS", offset_of(methodOopDesc, _size_of_parameters)); + print_def("METHOD_INVOCATIONCOUNTER", offset_of(methodOopDesc, _invocation_counter)); + print_def("METHOD_BACKEDGECOUNTER", offset_of(methodOopDesc, _backedge_counter)); + print_def("METHOD_FROM_INTERPRETED", offset_of(methodOopDesc, _from_interpreted_entry)); + // ECN: These two appear to be just tagged onto the end of the class + print_def("METHOD_NATIVEHANDLER", sizeof(methodOopDesc)); + print_def("METHOD_SIGNATUREHANDLER", sizeof(methodOopDesc)+4); + nl(); + print_def("CONSTMETHOD_CODEOFFSET", sizeof(constMethodOopDesc)); + nl(); + print_def("JNIHANDLEBLOCK_TOP", offset_of(JNIHandleBlock, _top)); + nl(); + print_def("KLASS_PART", klassOopDesc::klass_part_offset_in_bytes()); + print_def("KLASS_ACCESSFLAGS", offset_of(Klass, _access_flags)); + print_def("INSTANCEKLASS_INITSTATE", offset_of(instanceKlass, _init_state)); + print_def("INSTANCEKLASS_VTABLE_LEN", offset_of(instanceKlass, _vtable_len)); + print_def("INSTANCEKLASS_ITABLE_LEN", offset_of(instanceKlass, _itable_len)); + print_def("INSTANCEKLASS_VTABLE_OFFSET", instanceKlass::vtable_start_offset() * sizeof(int *)); + print_def("OBJARRAYKLASS_ELEMENTKLASS", offset_of(objArrayKlass, _element_klass)); + nl(); + print_def("CONSTANTPOOL_TAGS", offset_of(constantPoolOopDesc, _tags)); + print_def("CONSTANTPOOL_CACHE", offset_of(constantPoolOopDesc, _cache)); + nl(); + print_def("SIZEOF_HANDLEMARK", sizeof(HandleMark)); +} + +int main(void) +{ + print_def("JVM_CONSTANT_Utf8", JVM_CONSTANT_Utf8); + print_def("JVM_CONSTANT_Unicode", JVM_CONSTANT_Unicode); + print_def("JVM_CONSTANT_Integer", JVM_CONSTANT_Integer); + print_def("JVM_CONSTANT_Float", JVM_CONSTANT_Float); + print_def("JVM_CONSTANT_Long", JVM_CONSTANT_Long); + print_def("JVM_CONSTANT_Double", JVM_CONSTANT_Double); + print_def("JVM_CONSTANT_Class", JVM_CONSTANT_Class); + print_def("JVM_CONSTANT_String", JVM_CONSTANT_String); + print_def("JVM_CONSTANT_Fieldref", JVM_CONSTANT_Fieldref); + print_def("JVM_CONSTANT_Methodref", JVM_CONSTANT_Methodref); + print_def("JVM_CONSTANT_InterfaceMethodref", JVM_CONSTANT_InterfaceMethodref); + print_def("JVM_CONSTANT_NameAndType", JVM_CONSTANT_NameAndType); + nl(); + print_def("JVM_CONSTANT_UnresolvedClass", JVM_CONSTANT_UnresolvedClass); + print_def("JVM_CONSTANT_ClassIndex", JVM_CONSTANT_ClassIndex); + print_def("JVM_CONSTANT_UnresolvedString", JVM_CONSTANT_UnresolvedString); + print_def("JVM_CONSTANT_StringIndex", JVM_CONSTANT_StringIndex); + print_def("JVM_CONSTANT_UnresolvedClassInError",JVM_CONSTANT_UnresolvedClassInError); + nl(); + print_def("JVM_ACC_PUBLIC", JVM_ACC_PUBLIC); + print_def("JVM_ACC_PRIVATE", JVM_ACC_PRIVATE); + print_def("JVM_ACC_PROTECTED", JVM_ACC_PROTECTED); + print_def("JVM_ACC_STATIC", JVM_ACC_STATIC); + print_def("JVM_ACC_FINAL", JVM_ACC_FINAL); + print_def("JVM_ACC_SYNCHRONIZED", JVM_ACC_SYNCHRONIZED); + print_def("JVM_ACC_SUPER", JVM_ACC_SUPER); + print_def("JVM_ACC_VOLATILE", JVM_ACC_VOLATILE); + print_def("JVM_ACC_BRIDGE", JVM_ACC_BRIDGE); + print_def("JVM_ACC_TRANSIENT", JVM_ACC_TRANSIENT); + print_def("JVM_ACC_VARARGS", JVM_ACC_VARARGS); + print_def("JVM_ACC_NATIVE", JVM_ACC_NATIVE); + print_def("JVM_ACC_INTERFACE", JVM_ACC_INTERFACE); + print_def("JVM_ACC_ABSTRACT", JVM_ACC_ABSTRACT); + print_def("JVM_ACC_STRICT", JVM_ACC_STRICT); + print_def("JVM_ACC_SYNTHETIC", JVM_ACC_SYNTHETIC); + print_def("JVM_ACC_ANNOTATION", JVM_ACC_ANNOTATION); + print_def("JVM_ACC_ENUM", JVM_ACC_ENUM); + print_def("JVM_ACC_HAS_FINALIZER", JVM_ACC_HAS_FINALIZER); + nl(); + print_def("T_BOOLEAN", T_BOOLEAN); + print_def("T_CHAR", T_CHAR); + print_def("T_FLOAT", T_FLOAT); + print_def("T_DOUBLE", T_DOUBLE); + print_def("T_BYTE", T_BYTE); + print_def("T_SHORT", T_SHORT); + print_def("T_INT", T_INT); + print_def("T_LONG", T_LONG); + print_def("T_OBJECT", T_OBJECT); + print_def("T_ARRAY", T_ARRAY); + print_def("T_VOID", T_VOID); + nl(); + print_def("_thread_uninitialized", _thread_uninitialized); + print_def("_thread_new", _thread_new); + print_def("_thread_new_trans", _thread_new_trans); + print_def("_thread_in_native", _thread_in_native); + print_def("_thread_in_native_trans", _thread_in_native_trans); + print_def("_thread_in_vm", _thread_in_vm); + print_def("_thread_in_vm_trans", _thread_in_vm_trans); + print_def("_thread_in_Java", _thread_in_Java); + print_def("_thread_in_Java_trans", _thread_in_Java_trans); + print_def("_thread_blocked", _thread_blocked); + print_def("_thread_blocked_trans", _thread_blocked_trans); + print_def("_thread_max_state", _thread_max_state); + nl(); + print_def("class_unparsable_by_gc", instanceKlass::unparsable_by_gc); + print_def("class_allocated", instanceKlass::allocated); + print_def("class_loaded", instanceKlass::loaded); + print_def("class_linked", instanceKlass::linked); + print_def("class_being_initialized", instanceKlass::being_initialized); + print_def("class_fully_initialized", instanceKlass::fully_initialized); + print_def("class_init_error", instanceKlass::initialization_error); + nl(); + print_def("flag_methodInterface", 1 << ConstantPoolCacheEntry::methodInterface); + print_def("flag_volatileField", 1 << ConstantPoolCacheEntry::volatileField); + print_def("flag_vfinalMethod", 1 << ConstantPoolCacheEntry::vfinalMethod); + print_def("flag_finalField", 1 << ConstantPoolCacheEntry::finalField); + nl(); + print_def("INVOCATIONCOUNTER_COUNTINCREMENT", InvocationCounter::count_increment); + nl(); + VMStructs::print_vm_offsets(); + nl(); + print_def("VMSYMBOLS_ArithmeticException", vmSymbols::java_lang_ArithmeticException_enum); + print_def("VMSYMBOLS_ArrayIndexOutOfBounds", vmSymbols::java_lang_ArrayIndexOutOfBoundsException_enum); + print_def("VMSYMBOLS_ArrayStoreException", vmSymbols::java_lang_ArrayStoreException_enum); + print_def("VMSYMBOLS_ClassCastException", vmSymbols::java_lang_ClassCastException_enum); + print_def("VMSYMBOLS_NullPointerException", vmSymbols::java_lang_NullPointerException_enum); + print_def("VMSYMBOLS_AbstractMethodError", vmSymbols::java_lang_AbstractMethodError_enum); + print_def("VMSYMBOLS_IncompatibleClassChangeError", vmSymbols::java_lang_IncompatibleClassChangeError_enum); + print_def("VMSYMBOLS_InternalError", vmSymbols::java_lang_InternalError_enum); + + return 0; +} + +#endif // STATIC_OFFSETS diff -ruNE old/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp new/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp --- old/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp 2009-09-08 14:30:25.000000000 +0100 +++ new/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp 2009-09-08 14:55:59.000000000 +0100 @@ -26,19 +26,27 @@ #include "incls/_precompiled.incl" #include "incls/_bytecodes_zero.cpp.incl" -void Bytecodes::pd_initialize() { -#if defined(PRODUCT) && defined(HOTSPOT_ASM) +void Bytecodes::pd_initialize() +{ + // No zero specific initialization +#ifdef HOTSPOT_ASM def(_iaccess_0, "_iaccess_0", "b_jj", NULL, T_INT, 1, true, _aload_0); def(_iaccess_1, "_iaccess_1", "b_jj", NULL, T_INT, 1, true, _aload_1); def(_iaccess_2, "_iaccess_2", "b_jj", NULL, T_INT, 1, true, _aload_2); def(_iaccess_3, "_iaccess_3", "b_jj", NULL, T_INT, 1, true, _aload_3); + def(_invokeresolved, "invokeresolved", "bjj", NULL, T_ILLEGAL, -1, true, _invokevirtual); + def(_invokespecialresolved, "invokespecialresolved", "bjj", NULL, T_ILLEGAL, -1, true, _invokespecial); + def(_invokestaticresolved, "invokestaticresolved", "bjj", NULL, T_ILLEGAL, 0, true, _invokestatic); + + def(_iload_iload, "iload_iload", "bi_i",NULL, T_INT, 2, false, _iload); + def(_iload_iload_N, "ilaod_iload_N", "bi_", NULL, T_INT, 2, false, _iload); + def(_iload_0_iconst_N, "iload_0_iconst_N", "b_", NULL, T_INT, 2, false, _iload_0); def(_iload_1_iconst_N, "iload_1_iconst_N", "b_", NULL, T_INT, 2, false, _iload_1); def(_iload_2_iconst_N, "iload_2_iconst_N", "b_", NULL, T_INT, 2, false, _iload_2); def(_iload_3_iconst_N, "iload_3_iconst_N", "b_", NULL, T_INT, 2, false, _iload_3); def(_iload_iconst_N, "iload_iconst_N", "bi_", NULL, T_INT, 2, false, _iload); - def(_invokeresolved, "invokeresolved", "bjj", NULL, T_ILLEGAL, -1, true, _invokevirtual); def(_iadd_istore_N, "iadd_istore_N", "b_", NULL, T_VOID, -2, false, _iadd); def(_isub_istore_N, "isub_istore_N", "b_", NULL, T_VOID, -2, false, _isub); @@ -52,7 +60,15 @@ def(_ior_u4store, "ior_u4store", "b_i", NULL, T_VOID, -2, false, _ior); def(_ixor_u4store, "ixor_u4store", "b_i", NULL, T_VOID, -2, false, _ixor); - def(_invokespecialresolved, "invokespecialresolved", "bjj", NULL, T_ILLEGAL, -1, true, _invokespecial); - def(_invokestaticresolved, "invokestaticresolved", "bjj", NULL, T_ILLEGAL, 0, true, _invokestatic); -#endif // HOTSPOT_ASM + def(_iload_0_iload, "iload_0_iload", "b_i", NULL, T_INT, 2, false, _iload_0); + def(_iload_1_iload, "iload_1_iload", "b_i", NULL, T_INT, 2, false, _iload_1); + def(_iload_2_iload, "iload_2_iload", "b_i", NULL, T_INT, 2, false, _iload_2); + def(_iload_3_iload, "iload_3_iload", "b_i", NULL, T_INT, 2, false, _iload_3); + + def(_iload_0_iload_N, "iload_0_iload_N", "b_", NULL, T_INT, 2, false, _iload_0); + def(_iload_1_iload_N, "iload_1_iload_N", "b_", NULL, T_INT, 2, false, _iload_1); + def(_iload_2_iload_N, "iload_2_iload_N", "b_", NULL, T_INT, 2, false, _iload_2); + def(_iload_3_iload_N, "iload_3_iload_N", "b_", NULL, T_INT, 2, false, _iload_3); + +#endif } diff -ruNE old/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp new/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp --- old/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp 2009-09-08 14:30:25.000000000 +0100 +++ new/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp 2009-09-08 14:56:18.000000000 +0100 @@ -1,49 +1,37 @@ -/* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2009 Red Hat, Inc. - * 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. - * - */ - -#if defined(PRODUCT) && defined(HOTSPOT_ASM) +#ifdef HOTSPOT_ASM #define _iaccess_0 ((Bytecodes::Code)0xdb) #define _iaccess_1 ((Bytecodes::Code)0xdc) #define _iaccess_2 ((Bytecodes::Code)0xdd) #define _iaccess_3 ((Bytecodes::Code)0xde) + +#define _invokeresolved ((Bytecodes::Code)0xdf) +#define _invokespecialresolved ((Bytecodes::Code)0xe0) +#define _invokestaticresolved ((Bytecodes::Code)0xe1) + +#define _iload_iload ((Bytecodes::Code)0xe3) +#define _iload_iload_N ((Bytecodes::Code)0xe4) + _iload_0_iconst_N , // 231 _iload_1_iconst_N , // 232 _iload_2_iconst_N , // 233 _iload_3_iconst_N , // 234 _iload_iconst_N , // 235 - _invokeresolved , // 236 - _iadd_istore_N , // 237 - _isub_istore_N , // 238 - _iand_istore_N , // 239 - _ior_istore_N , // 240 - _ixor_istore_N , // 241 - _iadd_u4store , // 242 - _isub_u4store , // 243 - _iand_u4store , // 244 - _ior_u4store , // 245 - _ixor_u4store , // 246 - _invokespecialresolved , // 247 - _invokestaticresolved , // 248 -#endif // HOTSPOT_ASM + _iadd_istore_N , // 236 + _isub_istore_N , // 237 + _iand_istore_N , // 238 + _ior_istore_N , // 239 + _ixor_istore_N , // 240 + _iadd_u4store , // 241 + _isub_u4store , // 242 + _iand_u4store , // 243 + _ior_u4store , // 244 + _ixor_u4store , // 245 + _iload_0_iload , // 246 + _iload_1_iload , // 247 + _iload_2_iload , // 248 + _iload_3_iload , // 249 + _iload_0_iload_N , // 250 + _iload_1_iload_N , // 251 + _iload_2_iload_N , // 252 + _iload_3_iload_N , // 253 +#endif diff -ruNE old/icedtea6/ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp new/icedtea6/ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp --- old/icedtea6/ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp 2009-09-08 14:30:25.000000000 +0100 +++ new/icedtea6/ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp 2009-09-10 14:32:44.000000000 +0100 @@ -23,6 +23,12 @@ * */ +typedef union unaligned { + u4 u; + u2 us; + u8 ul; +} __attribute__((packed)) unaligned; + class Bytes: AllStatic { public: // Returns true if the byte ordering used by Java is different @@ -37,197 +43,35 @@ // Efficient reading and writing of unaligned unsigned data in // platform-specific byte ordering. -#ifdef VM_LITTLE_ENDIAN static inline u2 get_native_u2(address p){ - return (intptr_t(p) & 1) == 0 - ? *(u2*)p - : ( u2(p[1]) << 8 ) - | ( u2(p[0]) ); + unaligned *up = (unaligned *)p; + return up->us; } static inline u4 get_native_u4(address p) { - switch (intptr_t(p) & 3) { - case 0: return *(u4*)p; - - case 2: return ( u4( ((u2*)p)[1] ) << 16 ) - | ( u4( ((u2*)p)[0] ) ); - - default: return ( u4(p[3]) << 24 ) - | ( u4(p[2]) << 16 ) - | ( u4(p[1]) << 8 ) - | u4(p[0]); - } + unaligned *up = (unaligned *)p; + return up->u; } static inline u8 get_native_u8(address p) { - switch (intptr_t(p) & 7) { - case 0: return *(u8*)p; - - case 4: return ( u8( ((u4*)p)[1] ) << 32 ) - | ( u8( ((u4*)p)[0] ) ); - - case 2: return ( u8( ((u2*)p)[3] ) << 48 ) - | ( u8( ((u2*)p)[2] ) << 32 ) - | ( u8( ((u2*)p)[1] ) << 16 ) - | ( u8( ((u2*)p)[0] ) ); - - default: return ( u8(p[7]) << 56 ) - | ( u8(p[6]) << 48 ) - | ( u8(p[5]) << 40 ) - | ( u8(p[4]) << 32 ) - | ( u8(p[3]) << 24 ) - | ( u8(p[2]) << 16 ) - | ( u8(p[1]) << 8 ) - | u8(p[0]); - } + unaligned *up = (unaligned *)p; + return up->ul; } static inline void put_native_u2(address p, u2 x) { - if ((intptr_t(p) & 1) == 0) *(u2*) p = x; - else { - p[1] = x >> 8; - p[0] = x; - } + unaligned *up = (unaligned *)p; + up->us = x; } static inline void put_native_u4(address p, u4 x) { - switch ( intptr_t(p) & 3 ) { - case 0: *(u4*)p = x; - break; - - case 2: ((u2*)p)[1] = x >> 16; - ((u2*)p)[0] = x; - break; - - default: ((u1*)p)[3] = x >> 24; - ((u1*)p)[2] = x >> 16; - ((u1*)p)[1] = x >> 8; - ((u1*)p)[0] = x; - break; - } + unaligned *up = (unaligned *)p; + up->u = x; } static inline void put_native_u8(address p, u8 x) { - switch ( intptr_t(p) & 7 ) { - case 0: *(u8*)p = x; - break; - - case 4: ((u4*)p)[1] = x >> 32; - ((u4*)p)[0] = x; - break; - - case 2: ((u2*)p)[3] = x >> 48; - ((u2*)p)[2] = x >> 32; - ((u2*)p)[1] = x >> 16; - ((u2*)p)[0] = x; - break; - - default: ((u1*)p)[7] = x >> 56; - ((u1*)p)[6] = x >> 48; - ((u1*)p)[5] = x >> 40; - ((u1*)p)[4] = x >> 32; - ((u1*)p)[3] = x >> 24; - ((u1*)p)[2] = x >> 16; - ((u1*)p)[1] = x >> 8; - ((u1*)p)[0] = x; - } + unaligned *up = (unaligned *)p; + up->ul = x; } -#else - static inline u2 get_native_u2(address p){ - return (intptr_t(p) & 1) == 0 - ? *(u2*)p - : ( u2(p[0]) << 8 ) - | ( u2(p[1]) ); - } - - static inline u4 get_native_u4(address p) { - switch (intptr_t(p) & 3) { - case 0: return *(u4*)p; - - case 2: return ( u4( ((u2*)p)[0] ) << 16 ) - | ( u4( ((u2*)p)[1] ) ); - - default: return ( u4(p[0]) << 24 ) - | ( u4(p[1]) << 16 ) - | ( u4(p[2]) << 8 ) - | u4(p[3]); - } - } - - static inline u8 get_native_u8(address p) { - switch (intptr_t(p) & 7) { - case 0: return *(u8*)p; - - case 4: return ( u8( ((u4*)p)[0] ) << 32 ) - | ( u8( ((u4*)p)[1] ) ); - - case 2: return ( u8( ((u2*)p)[0] ) << 48 ) - | ( u8( ((u2*)p)[1] ) << 32 ) - | ( u8( ((u2*)p)[2] ) << 16 ) - | ( u8( ((u2*)p)[3] ) ); - - default: return ( u8(p[0]) << 56 ) - | ( u8(p[1]) << 48 ) - | ( u8(p[2]) << 40 ) - | ( u8(p[3]) << 32 ) - | ( u8(p[4]) << 24 ) - | ( u8(p[5]) << 16 ) - | ( u8(p[6]) << 8 ) - | u8(p[7]); - } - } - - static inline void put_native_u2(address p, u2 x) { - if ( (intptr_t(p) & 1) == 0 ) *(u2*)p = x; - else { - p[0] = x >> 8; - p[1] = x; - } - } - - static inline void put_native_u4(address p, u4 x) { - switch ( intptr_t(p) & 3 ) { - case 0: *(u4*)p = x; - break; - - case 2: ((u2*)p)[0] = x >> 16; - ((u2*)p)[1] = x; - break; - - default: ((u1*)p)[0] = x >> 24; - ((u1*)p)[1] = x >> 16; - ((u1*)p)[2] = x >> 8; - ((u1*)p)[3] = x; - break; - } - } - - static inline void put_native_u8(address p, u8 x) { - switch ( intptr_t(p) & 7 ) { - case 0: *(u8*)p = x; - break; - - case 4: ((u4*)p)[0] = x >> 32; - ((u4*)p)[1] = x; - break; - - case 2: ((u2*)p)[0] = x >> 48; - ((u2*)p)[1] = x >> 32; - ((u2*)p)[2] = x >> 16; - ((u2*)p)[3] = x; - break; - - default: ((u1*)p)[0] = x >> 56; - ((u1*)p)[1] = x >> 48; - ((u1*)p)[2] = x >> 40; - ((u1*)p)[3] = x >> 32; - ((u1*)p)[4] = x >> 24; - ((u1*)p)[5] = x >> 16; - ((u1*)p)[6] = x >> 8; - ((u1*)p)[7] = x; - } - } -#endif // VM_LITTLE_ENDIAN // Efficient reading and writing of unaligned unsigned data in Java @@ -235,23 +79,40 @@ #ifdef VM_LITTLE_ENDIAN // Byte-order reversal is needed static inline u2 get_Java_u2(address p) { - return swap_u2(get_native_u2(p)); + return ( u2(p[0]) << 8 ) | ( u2(p[1]) ); } static inline u4 get_Java_u4(address p) { - return swap_u4(get_native_u4(p)); + return ( u4(p[0]) << 24 ) | ( u4(p[1]) << 16 ) | ( u4(p[2]) << 8 ) | ( u4(p[3]) ); } static inline u8 get_Java_u8(address p) { - return swap_u8(get_native_u8(p)); + u4 hi, lo; + hi = ( u4(p[0]) << 24 ) | ( u4(p[1]) << 16 ) | ( u4(p[2]) << 8 ) | ( u4(p[3]) ); + lo = ( u4(p[4]) << 24 ) | ( u4(p[5]) << 16 ) | ( u4(p[6]) << 8 ) | ( u4(p[7]) ); + return u8(lo) | (u8(hi) << 32); } static inline void put_Java_u2(address p, u2 x) { - put_native_u2(p, swap_u2(x)); + p[0] = x >> 8; + p[1] = x; } static inline void put_Java_u4(address p, u4 x) { - put_native_u4(p, swap_u4(x)); + p[0] = x >> 24; + p[1] = x >> 16; + p[2] = x >> 8; + p[3] = x; } static inline void put_Java_u8(address p, u8 x) { - put_native_u8(p, swap_u8(x)); + u4 hi, lo; + lo = x; + hi = x >> 32; + p[0] = hi >> 24; + p[1] = hi >> 16; + p[2] = hi >> 8; + p[3] = hi; + p[4] = lo >> 24; + p[5] = lo >> 16; + p[6] = lo >> 8; + p[7] = lo; } // Efficient swapping of byte ordering diff -ruNE old/icedtea6/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp new/icedtea6/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- old/icedtea6/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp 2009-09-08 14:30:25.000000000 +0100 +++ new/icedtea6/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp 2009-09-08 14:50:09.000000000 +0100 @@ -719,9 +719,8 @@ return generate_entry((address) CppInterpreter::normal_entry); } -#if defined(PRODUCT) && defined(HOTSPOT_ASM) -typedef void (*BCI_ENTRY)(methodOopDesc*, intptr_t, Thread*); -extern "C" BCI_ENTRY asm_generate_method_entry( +#ifdef HOTSPOT_ASM +extern "C" address asm_generate_method_entry( AbstractInterpreter::MethodKind kind); #endif // HOTSPOT_ASM @@ -729,14 +728,10 @@ AbstractInterpreter::MethodKind kind) { address entry_point = NULL; -#if defined(PRODUCT) && defined(HOTSPOT_ASM) - if (!UseCompiler && !TaggedStackInterpreter && - !JvmtiExport::can_post_interpreter_events() && - !PrintCommandLineFlags) { - address asm_entry = (address) asm_generate_method_entry(kind); +#ifdef HOTSPOT_ASM + address asm_entry = asm_generate_method_entry(kind); if (asm_entry) return ((InterpreterGenerator*) this)->generate_entry(asm_entry); - } #endif // HOTSPOT_ASM switch (kind) { diff -ruNE old/icedtea6/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp new/icedtea6/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp --- old/icedtea6/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2009-09-08 14:30:25.000000000 +0100 +++ new/icedtea6/ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp 2009-09-08 14:54:17.000000000 +0100 @@ -71,7 +71,7 @@ Unimplemented(); } -#if defined(PRODUCT) && defined(HOTSPOT_ASM) +#ifdef HOTSPOT_ASM extern "C" int asm_check_null_ptr(ucontext_t *uc); #endif // HOTSPOT_ASM @@ -82,7 +82,7 @@ int abort_if_unrecognized) { ucontext_t* uc = (ucontext_t*) ucVoid; -#if defined(PRODUCT) && defined(HOTSPOT_ASM) +#ifdef HOTSPOT_ASM if (sig == SIGSEGV) { if (asm_check_null_ptr(uc)) return 1; } From andrew at icedtea.classpath.org Thu Sep 10 07:44:07 2009 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 10 Sep 2009 14:44:07 +0000 Subject: /hg/icedtea6: 3 new changesets Message-ID: changeset e2bd3952b822 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=e2bd3952b822 author: Andrew John Hughes date: Thu Sep 10 15:44:07 2009 +0100 Merge. changeset 161d0ebee520 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=161d0ebee520 author: Andrew John Hughes date: Thu Sep 10 15:44:21 2009 +0100 Merge. changeset 974ba11065ab in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=974ba11065ab author: Andrew John Hughes date: Thu Sep 10 15:46:50 2009 +0100 Update documentation with recent changes and Shark requirements. 2009-09-10 Andrew John Hughes * INSTALL: Update documentation to reflect recent changes and add Shark requirements. diffstat: 81 files changed, 2765 insertions(+), 1330 deletions(-) ChangeLog | 212 + INSTALL | 13 Makefile.am | 3 patches/icedtea-jar-misc.patch | 1126 ++++++++++ patches/icedtea-zero.patch | 114 - ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp | 36 ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp | 3 ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp | 26 ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp | 3 ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp | 51 ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp | 43 ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp | 3 ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp | 25 ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp | 145 - ports/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp | 2 ports/hotspot/src/cpu/zero/vm/copy_zero.hpp | 38 ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp | 8 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 123 - ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp | 1 ports/hotspot/src/cpu/zero/vm/debug_zero.cpp | 3 ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp | 10 ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp | 26 ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp | 26 ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp | 26 ports/hotspot/src/cpu/zero/vm/dump_zero.cpp | 5 ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp | 13 ports/hotspot/src/cpu/zero/vm/entry_zero.hpp | 42 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp | 321 ++ ports/hotspot/src/cpu/zero/vm/frame_zero.hpp | 41 ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp | 67 ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp | 26 ports/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp | 9 ports/hotspot/src/cpu/zero/vm/icache_zero.cpp | 8 ports/hotspot/src/cpu/zero/vm/icache_zero.hpp | 11 ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp | 26 ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp | 13 ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp | 1 ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp | 24 ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp | 51 ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp | 15 ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp | 24 ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp | 20 ports/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp | 24 ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp | 6 ports/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp | 105 ports/hotspot/src/cpu/zero/vm/registerMap_zero.hpp | 2 ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp | 26 ports/hotspot/src/cpu/zero/vm/register_zero.hpp | 18 ports/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp | 35 ports/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp | 3 ports/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp | 28 ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp | 19 ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 2 ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp | 293 -- ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 102 ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp | 27 ports/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp | 12 ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp | 26 ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp | 26 ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp | 26 ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp | 26 ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp | 26 ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp | 26 ports/hotspot/src/cpu/zero/vm/vm_version_zero.hpp | 3 ports/hotspot/src/cpu/zero/vm/vmreg_zero.cpp | 15 ports/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp | 8 ports/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp | 12 ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp | 26 ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp | 78 ports/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp | 9 ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp | 27 ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 149 - ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp | 3 ports/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp | 6 ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp | 9 ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp | 6 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp | 26 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 46 ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp | 26 ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 3 ports/hotspot/src/share/vm/shark/sharkEntry.hpp | 2 diffs (truncated from 6353 to 500 lines): diff -r 21edcf84dc76 -r 974ba11065ab ChangeLog --- a/ChangeLog Mon Aug 31 07:45:07 2009 +0200 +++ b/ChangeLog Thu Sep 10 15:46:50 2009 +0100 @@ -1,3 +1,215 @@ 2009-08-31 Mark Wielaard + + * INSTALL: Update documentation to reflect recent changes and add + Shark requirements. + +2009-09-10 Andrew Haley + + * Makefile.am, patches/icedtea-jar-misc.patch: Import patch from + upstream OpenJDK 6. + http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4 + +2009-09-09 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp + (ZeroFrame::identify_word): New method. + (ZeroFrame::identify_vp_word): Likewise. + + * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp + (EntryFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp + (InterpreterFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp + (SharkFrame::identify_word): New method. + * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp + (DeoptimizerFrame::identify_word): Likewise. + + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp + (frame::frame): Added frame pointer argument. + (frame::_fp): New field. + (frame::fp): Return the above, instead of a dummy value. + (frame::zero_print_on_error): New method. + * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp + (frame::frame): Initialize frame pointer. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp + (frame::sender_for_entry_frame): Pass frame pointer. + (frame::sender_for_interpreter_frame): Likewise. + (frame::sender_for_compiled_frame): Likewise. + (frame::sender_for_deoptimizer_frame): Likewise. + (frame::zero_print_on_error): New method. + (ZeroFrame::identify_word): Likewise. + (EntryFrame::identify_word): Likewise. + (InterpreterFrame::identify_word): Likewise. + (SharkFrame::identify_word): Likewise. + (ZeroFrame::identify_vp_word): Likewise. + (DeoptimizerFrame::identify_word): Likewise. + + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::pd_last_frame): Pass frame pointer. + + * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp + (os::current_frame): Implemented. + + * patches/icedtea-zero.patch + (VMError::report): Replace stack printer code. + (hotspot/src/share/vm/includeDB_core): Updated. + + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Removed. + +2009-09-08 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Whitespace changes. + +2009-09-08 Gary Benson + + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::pop_zero_frame): Tweak. + +2009-09-04 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp + (ZeroEntry::method_entry_t): Renamed as... + (ZeroEntry::NormalEntryFunc): New type. + (ZeroEntry::osr_entry_t): Renamed as... + (ZeroEntry::OSREntryFunc): New type. + (ZeroEntry::_entry_point): Changed type. + (ZeroEntry::entry_point): Changed signature. + (ZeroEntry::set_entry_point): Likewise. + (ZeroEntry::invoke): Added cast. + (ZeroEntry::invoke_osr): Updated cast. + + * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp + (CppInterpreter::generate_entry): Changed signature. + + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (InterpreterGenerator::generate_normal_entry): Added cast. + (InterpreterGenerator::generate_native_entry): Likewise. + (InterpreterGenerator::generate_accessor_entry): Likewise. + (InterpreterGenerator::generate_empty_entry): Likewise. + (AbstractInterpreterGenerator::generate_method_entry): Likewise. + + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp + (SharkCompiler::compile_method): Updated cast. + + * ports/hotspot/src/share/vm/shark/sharkEntry.hpp + (SharkEntry::code_start): Removed cast. + + * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp + (NativeJump::patch_verified_entry): Added cast. + +2009-09-04 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp + (ICache::initialize): New method. + (ICache::invalidate_word): Likewise. + (ICache::invalidate_range): Likewise. + + * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp + (ICacheStubGenerator::generate_icache_flush): Replaced with stub. + + * patches/icedtea-zero.patch + (AbstractICache::invalidate_range): Removed #ifdef ZERO. + +2009-09-03 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp: Reformatted + with trailing opening braces. + * ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp: + Likewise. + * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/copy_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp: + Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/debug_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/dump_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/registerMap_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/register_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vm_version_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vmreg_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp: + Likewise. + +2009-09-03 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp + Added copyright header. + * ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp: + Added copyright header and "intentionally empty" message. + * ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp: + Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp: Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp: + Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp: + Likewise. + + * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp + (ZeroStackPrinter::print_word): Replaced a couple of "%d"s with + INTPTR_FORMAT. + 2009-08-31 Mark Wielaard Keith Seitz diff -r 21edcf84dc76 -r 974ba11065ab INSTALL --- a/INSTALL Mon Aug 31 07:45:07 2009 +0200 +++ b/INSTALL Thu Sep 10 15:46:50 2009 +0100 @@ -39,6 +39,8 @@ netbeans = 6.5 For building the zero-assembler port (see below), you will need libffi. +For building the Shark JIT, you will need LLVM 2.5 or current SVN. + For building with systemtap support (--enable-systemtap), you will need systemtap-sdt-devel (available since systemtap 0.9.5). This also needs the --with-abs-install-dir configure option to make sure the hotspot.stp.in @@ -51,21 +53,20 @@ in the tapset/hotspot.stp file. For exam See ./configure --help if you need to override the defaults. -To bootstrap IcedTea with ecj: +To bootstrap IcedTea with ecj and a Classpath-based JDK such as GCJ: autoreconf ./configure make -To build IcedTea with an older version of IcedTea, use: +To build IcedTea with an older version of IcedTea or OpenJDK, use: autoreconf -./configure --with-icedtea - [default location: /usr/lib/jvm/java-icedtea, - to specifiy location use --with-icedtea-home=/path/to/icedtea] +./configure --with-openjdk + to specify the location use --with-openjdk=/path/to/icedtea] make There is currently no install target. -IcedTea ends up in openjdk/control/build/- when the build completes. +IcedTea ends up in openjdk/build/- when the build completes. Example instantiations of - include linux-i586, linux-amd64 and linux-ppc64. Rebuilding The IcedTea Plugs diff -r 21edcf84dc76 -r 974ba11065ab Makefile.am --- a/Makefile.am Mon Aug 31 07:45:07 2009 +0200 +++ b/Makefile.am Thu Sep 10 15:46:50 2009 +0100 @@ -627,7 +627,8 @@ ICEDTEA_PATCHES = \ patches/security/icedtea-6824440.patch \ patches/security/icedtea-6830335.patch \ patches/security/icedtea-6845701.patch \ - patches/security/icedtea-6813167.patch + patches/security/icedtea-6813167.patch \ + patches/icedtea-jar-misc.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 21edcf84dc76 -r 974ba11065ab patches/icedtea-jar-misc.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-jar-misc.patch Thu Sep 10 15:46:50 2009 +0100 @@ -0,0 +1,1126 @@ + +# HG changeset patch +# User martin +# Date 1246913604 25200 +# Node ID b35f1e5075a42030e8624459b13daa45ffc834f8 +# Parent 1661d42b1c09135b77f039e604878f0985d24255 +6854795: Miscellaneous improvements to "jar" +6834805: Improve jar -C performance +6332094: "jar t" and "jar x" should use ZipFile, not ZipInputStream +6496274: jar seems to use more CPU than it should +Summary: backport jdk7 jar command (remove use of nio2) +Reviewed-by: sherman, darcy + +--- openjdk/jdk/src/share/classes/sun/tools/jar/Main.java Thu Jun 25 17:15:18 2009 -0400 ++++ openjdk/jdk/src/share/classes/sun/tools/jar/Main.java Mon Jul 06 13:53:24 2009 -0700 +@@ -32,6 +32,8 @@ import java.util.jar.Manifest; + import java.util.jar.Manifest; + import java.text.MessageFormat; + import sun.misc.JarIndex; ++import static sun.misc.JarIndex.INDEX_NAME; ++import static java.util.jar.JarFile.MANIFEST_NAME; + + /** + * This class implements a simple utility for creating files in the JAR +@@ -46,10 +48,18 @@ class Main { + String zname = ""; + String[] files; + String rootjar = null; +- Hashtable filesTable = new Hashtable(); +- Vector paths = new Vector(); +- Vector v; +- CRC32 crc32 = new CRC32(); ++ ++ // An entryName(path)->File map generated during "expand", it helps to ++ // decide whether or not an existing entry in a jar file needs to be ++ // replaced, during the "update" operation. ++ Map entryMap = new HashMap(); ++ ++ // All files need to be added/updated. ++ Set entries = new LinkedHashSet(); ++ ++ // Directories specified by "-C" operation. ++ Set paths = new HashSet(); ++ + /* + * cflag: create + * uflag: update +@@ -62,11 +72,8 @@ class Main { + */ + boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag; + +- static final String MANIFEST = JarFile.MANIFEST_NAME; + static final String MANIFEST_DIR = "META-INF/"; + static final String VERSION = "1.0"; +- static final char SEPARATOR = File.separatorChar; +- static final String INDEX = JarIndex.INDEX_NAME; + + private static ResourceBundle rsrc; + +@@ -118,9 +125,21 @@ class Main { + this.program = program; + } + ++ /** ++ * Creates a new empty temporary file in the same directory as the ++ * specified file. A variant of File.createTempFile. ++ */ ++ private static File createTempFileInSameDirectoryAs(File file) ++ throws IOException { ++ File dir = file.getParentFile(); ++ if (dir == null) ++ dir = new File("."); ++ return File.createTempFile("jartmp", null, dir); ++ } ++ + private boolean ok; + +- /* ++ /** + * Starts main program with the specified arguments. + */ + public synchronized boolean run(String args[]) { +@@ -153,7 +172,7 @@ class Main { + } + addVersion(manifest); + addCreatedBy(manifest); +- if (isAmbigousMainClass(manifest)) { ++ if (isAmbiguousMainClass(manifest)) { + if (in != null) { + in.close(); + } +@@ -175,7 +194,8 @@ class Main { + vflag = false; + } + } +- create(new BufferedOutputStream(out), expand(files), manifest); ++ expand(null, files, false); ++ create(new BufferedOutputStream(out, 4096), manifest); + if (in != null) { + in.close(); + } +@@ -186,9 +206,7 @@ class Main { + FileOutputStream out; + if (fname != null) { + inputFile = new File(fname); +- String path = inputFile.getParent(); +- tmpFile = File.createTempFile("tmp", null, +- new File((path == null) ? "." : path)); ++ tmpFile = createTempFileInSameDirectoryAs(inputFile); + in = new FileInputStream(inputFile); + out = new FileOutputStream(tmpFile); + } else { +@@ -198,8 +216,9 @@ class Main { + } + InputStream manifest = (!Mflag && (mname != null)) ? + (new FileInputStream(mname)) : null; +- expand(files); +- boolean updateOk = update(in, new BufferedOutputStream(out), manifest); ++ expand(null, files, true); ++ boolean updateOk = update(in, new BufferedOutputStream(out), ++ manifest, null); + if (ok) { + ok = updateOk; + } +@@ -217,19 +236,32 @@ class Main { + } + tmpFile.delete(); + } +- } else if (xflag || tflag) { +- InputStream in; ++ } else if (tflag) { ++ replaceFSC(files); + if (fname != null) { +- in = new FileInputStream(fname); ++ list(fname, files); + } else { +- in = new FileInputStream(FileDescriptor.in); +- } +- if (xflag) { +- extract(new BufferedInputStream(in), files); ++ InputStream in = new FileInputStream(FileDescriptor.in); ++ try{ ++ list(new BufferedInputStream(in), files); ++ } finally { ++ in.close(); ++ } ++ } ++ } else if (xflag) { ++ replaceFSC(files); ++ if (fname != null && files != null) { ++ extract(fname, files); + } else { +- list(new BufferedInputStream(in), files); +- } +- in.close(); ++ InputStream in = (fname == null) ++ ? new FileInputStream(FileDescriptor.in) ++ : new FileInputStream(fname); ++ try { ++ extract(new BufferedInputStream(in), files); ++ } finally { ++ in.close(); ++ } ++ } + } else if (iflag) { + genIndex(rootjar, files); + } +@@ -248,8 +280,8 @@ class Main { + return ok; + } + +- /* +- * Parse command line arguments. ++ /** ++ * Parses command line arguments. + */ + boolean parseArgs(String args[]) { + /* Preprocess and expand @file arguments */ +@@ -354,7 +386,7 @@ class Main { + while (dir.indexOf("//") > -1) { + dir = dir.replace("//", "/"); + } +- paths.addElement(dir.replace(File.separatorChar, '/')); ++ paths.add(dir.replace(File.separatorChar, '/')); + nameBuf[k++] = dir + args[++i]; + } else { + nameBuf[k++] = args[i]; +@@ -383,21 +415,11 @@ class Main { + return true; + } + +- /* ++ /** + * Expands list of files to process into full list of all files that + * can be found by recursively descending directories. + */ +- String[] expand(String[] files) { +- v = new Vector(); +- expand(null, files, v, filesTable); +- files = new String[v.size()]; +- for (int i = 0; i < files.length; i++) { +- files[i] = ((File)v.elementAt(i)).getPath(); +- } +- return files; +- } +- +- void expand(File dir, String[] files, Vector v, Hashtable t) { ++ void expand(File dir, String[] files, boolean isUpdate) { + if (files == null) { + return; + } +@@ -409,17 +431,20 @@ class Main { + f = new File(dir, files[i]); + } + if (f.isFile()) { +- if (!t.contains(f)) { +- t.put(entryName(f.getPath()), f); +- v.addElement(f); ++ if (entries.add(f)) { ++ if (isUpdate) ++ entryMap.put(entryName(f.getPath()), f); + } + } else if (f.isDirectory()) { +- String dirPath = f.getPath(); +- dirPath = (dirPath.endsWith(File.separator)) ? dirPath : From andrew at icedtea.classpath.org Thu Sep 10 07:48:18 2009 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 10 Sep 2009 14:48:18 +0000 Subject: /hg/icedtea6: 2009-09-09 Andrew Haley Message-ID: changeset dbf2dacce14a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=dbf2dacce14a author: aph date: Wed Sep 09 16:44:12 2009 +0100 2009-09-09 Andrew Haley * NEWS: Update for 1.6. diffstat: 2 files changed, 13 insertions(+), 1 deletion(-) ChangeLog | 4 ++++ NEWS | 10 +++++++++- diffs (35 lines): diff -r 974ba11065ab -r dbf2dacce14a ChangeLog --- a/ChangeLog Thu Sep 10 15:46:50 2009 +0100 +++ b/ChangeLog Wed Sep 09 16:44:12 2009 +0100 @@ -1,3 +1,7 @@ 2009-09-10 Andrew John Hughes + + * NEWS: Update for 1.6. + 2009-09-10 Andrew John Hughes * INSTALL: Update documentation to reflect recent changes and add diff -r 974ba11065ab -r dbf2dacce14a NEWS --- a/NEWS Thu Sep 10 15:46:50 2009 +0100 +++ b/NEWS Wed Sep 09 16:44:12 2009 +0100 @@ -1,4 +1,4 @@ New in release 1.6 (UNRELEASED) -New in release 1.6 (UNRELEASED) +New in release 1.6: - Added java method tracing using systemtap version 0.9.9+. - Security fixes for: @@ -12,6 +12,14 @@ New in release 1.6 (UNRELEASED) CVE-2009-2476 - OpenJDK OpenType checks can be bypassed CVE-2009-2689 - OpenJDK JDK13Services grants unnecessary privileges CVE-2009-2690 - OpenJDK private variable information disclosure +- FAST interpreter for ARM +- Timezone fix: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=377 +- Stackoverflow error fix: +http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=381 +- Backport regression (NPE) fix for AccessControlContext fix +- Bump to hs14b16 +- The plugin has been updated to improve stability and cookie support. + Support for certificates with mismatched CNs has been added as well. New in release 1.5 (2009-05-20) From aph at redhat.com Thu Sep 10 07:52:40 2009 From: aph at redhat.com (Andrew Haley) Date: Thu, 10 Sep 2009 15:52:40 +0100 Subject: Request to committ to trunk - ARM asm improvements In-Reply-To: <200909101803.n8AI3MZj008799@parsley.camswl.com> References: <200909101803.n8AI3MZj008799@parsley.camswl.com> Message-ID: <4AA912B8.2010003@redhat.com> Hi, Edward Nevill wrote: > I have got a bunch of improvements to the ARM asm interpreter which I would > like to commit to the trunk. > > Because of the limitations on size of message sent to the list I am sending > the diffs as 3 messages. It's probably better to submit them separately, anyway. > The first set (attached below) contains all the diffs to anything other > than cppInterpreter_arm.S and bytecodes_arm.def. IE. it contains all the > non assembler diffs and hence the diffs most likely to interest you. > > The second and third set contain the diffs to bytecodes_arm.def and > cppInterpreter_arm.S respectively. > > Please check especially that you are happy with the changes to > bytes_zero.hpp and cppInterpreter_zero.cpp This all looks perfectly reasonable to me, but please let's have some ChangeLogs. Andrew. From andrew at icedtea.classpath.org Thu Sep 10 07:52:33 2009 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 10 Sep 2009 14:52:33 +0000 Subject: /hg/release/icedtea6-1.6: Update documentation with recent chang... Message-ID: changeset 76a4bf70b153 in /hg/release/icedtea6-1.6 details: http://icedtea.classpath.org/hg/release/icedtea6-1.6?cmd=changeset;node=76a4bf70b153 author: Andrew John Hughes date: Thu Sep 10 15:46:50 2009 +0100 Update documentation with recent changes and Shark requirements. 2009-09-10 Andrew John Hughes * INSTALL: Update documentation to reflect recent changes and add Shark requirements. diffstat: 2 files changed, 12 insertions(+), 6 deletions(-) ChangeLog | 5 +++++ INSTALL | 13 +++++++------ diffs (51 lines): diff -r da4268686a33 -r 76a4bf70b153 ChangeLog --- a/ChangeLog Thu Sep 10 13:52:13 2009 +0100 +++ b/ChangeLog Thu Sep 10 15:46:50 2009 +0100 @@ -1,3 +1,8 @@ 2009-09-10 Andrew Haley + + * INSTALL: Update documentation to reflect recent changes and add + Shark requirements. + 2009-09-10 Andrew Haley * Makefile.am, patches/icedtea-jar-misc.patch: Import patch from diff -r da4268686a33 -r 76a4bf70b153 INSTALL --- a/INSTALL Thu Sep 10 13:52:13 2009 +0100 +++ b/INSTALL Thu Sep 10 15:46:50 2009 +0100 @@ -39,6 +39,8 @@ netbeans = 6.5 For building the zero-assembler port (see below), you will need libffi. +For building the Shark JIT, you will need LLVM 2.5 or current SVN. + For building with systemtap support (--enable-systemtap), you will need systemtap-sdt-devel (available since systemtap 0.9.5). This also needs the --with-abs-install-dir configure option to make sure the hotspot.stp.in @@ -51,21 +53,20 @@ in the tapset/hotspot.stp file. For exam See ./configure --help if you need to override the defaults. -To bootstrap IcedTea with ecj: +To bootstrap IcedTea with ecj and a Classpath-based JDK such as GCJ: autoreconf ./configure make -To build IcedTea with an older version of IcedTea, use: +To build IcedTea with an older version of IcedTea or OpenJDK, use: autoreconf -./configure --with-icedtea - [default location: /usr/lib/jvm/java-icedtea, - to specifiy location use --with-icedtea-home=/path/to/icedtea] +./configure --with-openjdk + to specify the location use --with-openjdk=/path/to/icedtea] make There is currently no install target. -IcedTea ends up in openjdk/control/build/- when the build completes. +IcedTea ends up in openjdk/build/- when the build completes. Example instantiations of - include linux-i586, linux-amd64 and linux-ppc64. Rebuilding The IcedTea Plugs From doko at ubuntu.com Thu Sep 10 07:58:36 2009 From: doko at ubuntu.com (Matthias Klose) Date: Thu, 10 Sep 2009 16:58:36 +0200 Subject: /hg/release/icedtea6-1.6: Update documentation with recent chang... In-Reply-To: References: Message-ID: <4AA9141C.3030708@ubuntu.com> On 10.09.2009 16:52, andrew at icedtea.classpath.org wrote: > +For building the Shark JIT, you will need LLVM 2.5 or current SVN. llvm branched two weeks ago, that should be "or the 2.6 branch / 2.6 release from SVN. From gnu_andrew at member.fsf.org Thu Sep 10 08:04:46 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 10 Sep 2009 16:04:46 +0100 Subject: IcedTea6 1.6 Released! In-Reply-To: <4AA8FF39.2060704@redhat.com> References: <4AA7DF17.20107@redhat.com> <20090909225940.69c265c4@laptop64.home> <4AA81AAB.5080303@ubuntu.com> <17c6771e0909091427t66346840ub2891b843d2b4d97@mail.gmail.com> <4AA8EDA6.80909@redhat.com> <17c6771e0909100626y60145523le4c528cc0b7ecc6f@mail.gmail.com> <4AA8FF39.2060704@redhat.com> Message-ID: <17c6771e0909100804w28d882b7ve1b806e3e10d2cd0@mail.gmail.com> 2009/9/10 Andrew Haley : > Andrew John Hughes wrote: >> 2009/9/10 Andrew Haley : >>> Andrew John Hughes wrote: >>>> 2009/9/9 Matthias Klose : >>>>> On 09.09.2009 22:59, Andreas Radke wrote: >>>>> >>>>>> configure: WARNING: unrecognized options: --with-openjdk-home >>>>>> Was has been changed here? >>>>> run configure --help and look for the changed configuration options. Yes, we >>>>> missed to document these changes. >>>>> >>>>> ?Matthias >>>>> >>>> Yeah, the important bit you missed off that big listing was the >>>> options you were passing to configure :) >>>> >>>> But if you change --with-openjdk-home to --with-openjdk, all should be well. >>>> >>>> I did document this in 7... it just seems that bit didn't get backported :( >>> Can you please back-port the documentation change? > >> >> Sure, how's this? >> >> ? * INSTALL: Update documentation to reflect recent changes and add >> Shark requirements. >> >> It appears --with-openjdk was never even documented, never mind this change :( >> Let me know if this is ok to commit and on which branches to do so. >> I'm also plan to forwardport the two NEWS changesets from 1.6 to HEAD; >> is that ok? > > Yes, and yes. ?The relevant branches are, I think, trunk and 1.6. > > Andrew. > > > Thanks for the quick response. All done: http://icedtea.classpath.org/hg/icedtea6/rev/974ba11065ab http://icedtea.classpath.org/hg/icedtea6/rev/dbf2dacce14a http://icedtea.classpath.org/hg/release/icedtea6-1.6/rev/76a4bf70b153 As I've mentioned before, it would be nice if we could all standardise on having a 1-line summary in commit messages prior to the ChangeLog, as this is the only line that shows up without verbose output (hg log, shortlog and summary pages on the web view). It would make it easier to select changesets that need to be merged. Thanks, -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From ed at camswl.com Thu Sep 10 11:26:37 2009 From: ed at camswl.com (Edward Nevill) Date: Thu, 10 Sep 2009 19:26:37 +0100 Subject: ARM asm improvements - part 2 Message-ID: <200909101826.n8AIQbkR008895@parsley.camswl.com> Hi, Here is part 2 of the diffs, the changes to bytecodes_arm.def. Whats changed? (the following is a combined list of changes in cppInterpreter_arm.S and bytecodes_arm.def). - Added support for HW floating point. (checks /proc/sys/... to see the processor actually has HW FP before executing any HW FP instructions). - Added #ifdefs to allow disabling of various optimisations. The list is -DDISABLE_NOTICE_SAFEPOINTS -DDISABLE_HW_NULL_PTR_CHECK -DDISABLE_FASTPATH_ENTRY -DDISABLE_NATIVE_ENTRY -DDISABLE_FAST_BYTECODES -DDISABLE_HW_FP - Removed #ifdefs on GCC_VERSION and B14/B16. It should now build for any of gcc 4.1, 4.3 and 4.4 and handle the differences between B14 and B16 automatically using asm_helper.cpp - Added lots of debugging and asert ifdefs. The list is DISPATCH_LOOP CODETRACE DISPATCH_ASSERTS CHECK_LOCALS CHECK_FRAME CHECK_BACKTRACE CHECK_STACK Basically, if DISPATCH_LOOP is set then you can enable any of the other assertions and it will do the appropriate checks after every bytecode. - Support for gcc 4.1 Basically I have inlined the problem functions which were causing unresolved symbols with gcc 4.1. Also changed the code alignment from 64 to 8 as earlier binutils have a problem with 64 byte alignment. - Synchronized native entry is now thrown to cppInterpreter_zero. It was too much of a hazard to maintain/debug this for almost no performance gain. - Optimised integer divide and remainder by constant. - Support for UseCompiler. I have tested this out by building Shark for ARM and it runs at least as well as the C version, however there is a lot of work to make Shark work on ARM so asm_generate_entry still returns NULL if UseCompiler is set. - invokeinterface can now do a fastpath entry, previously always did a slow path and created a full native and java frame. The fast path entry only creates a java frame, no new native frame is created. - Optimised new, checkcast and instanceof. - Added support for additional bytecode sequences of the form - Lots of other minor optimisations. Regards, Ed. --- CUT HERE ----------------------------------------------------------- diff -ruNE old/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_arm.def new/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_arm.def --- old/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_arm.def 2009-09-08 14:30:25.000000000 +0100 +++ new/icedtea6/ports/hotspot/src/cpu/zero/vm/bytecodes_arm.def 2009-09-10 14:18:17.000000000 +0100 @@ -1,3 +1,13 @@ +#ifndef DISABLE_HW_FP +#define HW_FP +#endif +#ifndef DISABLE_NOTICE_SAFEPOINTS +#define NOTICE_SAFEPOINTS +#endif +#ifndef DISABLE_FAST_BYTECODES +#define FAST_BYTECODES +#endif + nop = 0x00, 1 aconst_null = 0x01, 1 iconst_m1 = 0x02, 1 @@ -201,11 +211,13 @@ jsr_w = 0xc9, 0 breakpoint = 0xca, 0 -#agetfield = 0xcb, 3 +#ifdef FAST_BYTECODES + + at agetfield = 0xcb, 3 bgetfield = 0xcc, 3 cgetfield = 0xcd, 3 -#dgetfield = 0xce, 3 -#fgetfield = 0xcf, 3 + at dgetfield = 0xce, 3 + at fgetfield = 0xcf, 3 igetfield = 0xd0, 3 lgetfield = 0xd1, 3 sgetfield = 0xd2, 3 @@ -213,45 +225,56 @@ aputfield = 0xd3, 3 bputfield = 0xd4, 3 cputfield = 0xd5, 3 -#dputfield = 0xd6, 3 -#fputfield = 0xd7, 3 + at dputfield = 0xd6, 3 + at fputfield = 0xd7, 3 iputfield = 0xd8, 3 lputfield = 0xd9, 3 -#sputfield = 0xda, 3 + at sputfield = 0xda, 3 iaccess_0 = 0xdb, 4 iaccess_1 = 0xdc, 4 iaccess_2 = 0xdd, 4 iaccess_3 = 0xde, 4 -#fast_iload = 0xdf, 2 -#fast_iload2 = 0xe0, 4 -#fast_icaload = 0xe1, 3 - -invokevfinal = 0xe2, 3 -#linearswitch = 0xe3, 0 -#binaryswitch = 0xe4, 0 - -iload_0_iconst_N = 231, 2 -iload_1_iconst_N = 232, 2 -iload_2_iconst_N = 233, 2 -iload_3_iconst_N = 234, 2 -iload_iconst_N = 235, 3 -invokeresolved = 236, 3 -iadd_istore_N = 237, 2 -isub_istore_N = 238, 2 -iand_istore_N = 239, 2 -ior_istore_N = 240, 2 -ixor_istore_N = 241, 2 -iadd_u4store = 242, 3 -isub_u4store = 243, 3 -iand_u4store = 244, 3 -ior_u4store = 245, 3 -ixor_u4store = 246, 3 -invokespecialresolved = 247, 3 -invokestaticresolved = 248, 3 +invokeresolved = 0xdf, 3 +invokespecialresolved = 0xe0, 3 +invokestaticresolved = 0xe1, 3 +invokevfinal = 0xe2, 3 + +iload_iload = 0xe3, 4 +iload_iload_N = 0xe4, 3 + + at return_register_finalizer = 0xe5, 1 + +dmac = 0xe6, 2 + +iload_0_iconst_N = 0xe7, 2 +iload_1_iconst_N = 0xe8, 2 +iload_2_iconst_N = 0xe9, 2 +iload_3_iconst_N = 0xea, 2 +iload_iconst_N = 0xeb, 3 +iadd_istore_N = 0xec, 2 +isub_istore_N = 0xed, 2 +iand_istore_N = 0xee, 2 +ior_istore_N = 0xef, 2 +ixor_istore_N = 0xf0, 2 +iadd_u4store = 0xf1, 3 +isub_u4store = 0xf2, 3 +iand_u4store = 0xf3, 3 +ior_u4store = 0xf4, 3 +ixor_u4store = 0xf5, 3 +iload_0_iload = 0xf6, 3 +iload_1_iload = 0xf7, 3 +iload_2_iload = 0xf8, 3 +iload_3_iload = 0xf9, 3 +iload_0_iload_N = 0xfa, 2 +iload_1_iload_N = 0xfb, 2 +iload_2_iload_N = 0xfc, 2 +iload_3_iload_N = 0xfd, 2 + +#endif // FAST_BYTECODES -return_register_finalizer = 229, 0 +return_register_finalizer = 0xe5, 1 (nop) { DISPATCH \seq_len @@ -292,7 +315,7 @@ DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH tmp2, tmp1 DISPATCH_FINISH } @@ -321,7 +344,7 @@ mov tmp2, #0 DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH tmp2, tmp1 DISPATCH_FINISH } @@ -337,8 +360,8 @@ DISPATCH_FINISH } -# r2 = [jpc, #1] -# r1 = [jpc, #2] +@ r2 = [jpc, #1] +@ r1 = [jpc, #2] (sipush) sipush { DISPATCH_START \seq_len mov tmp1, r1 @@ -352,7 +375,7 @@ DISPATCH_FINISH } -# r2 = [jpc, #1] +@ r2 = [jpc, #1] (iload,fload,aload) u4load { DISPATCH_START \seq_len rsb tmp1, r2, #0 @@ -365,7 +388,7 @@ DISPATCH_FINISH } -# r2 = [jpc, #1] +@ r2 = [jpc, #1] (lload,dload) u8load { DISPATCH_START \seq_len sub r3, locals, r2, lsl #2 @@ -374,7 +397,7 @@ DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH tmp2, tmp1 DISPATCH_FINISH } @@ -446,7 +469,7 @@ DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH tmp2, tmp1 DISPATCH_FINISH } @@ -458,17 +481,15 @@ DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH tmp2, tmp1 DISPATCH_FINISH } (iaload,faload,aaload) u4aload { - POP2 r2, r3 @ r2 = index, r3 = arrayref + POP r2, r3 @ r2 = index, r3 = arrayref DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp r3, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp r3, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry5: ldr lr, [r3, #8] @ lr = length DISPATCH_NEXT @@ -484,12 +505,10 @@ } (laload,daload) u8aload { - POP2 r2, r3 + POP r2, r3 DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp r3, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp r3, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry6: ldr lr, [r3, #8] @ lr = length DISPATCH_NEXT @@ -501,17 +520,15 @@ DISPATCH_NEXT ldr tmp1, [r3, #20] DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH tmp2, tmp1 DISPATCH_FINISH } (baload) baload { - POP2 r2, r3 @ r2 = index, r3 = arrayref + POP r2, r3 @ r2 = index, r3 = arrayref DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp r3, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp r3, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry7: ldr lr, [r3, #8] @ lr = length DISPATCH_NEXT @@ -527,12 +544,10 @@ } (caload) caload { - POP2 r2, r3 @ r2 = index, r3 = arrayref + POP r2, r3 @ r2 = index, r3 = arrayref DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp r3, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp r3, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry8: ldr lr, [r3, #8] @ lr = length DISPATCH_NEXT @@ -548,12 +563,10 @@ } (saload) saload { - POP2 r2, r3 @ r2 = index, r3 = arrayref + POP r2, r3 @ r2 = index, r3 = arrayref DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp r3, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp r3, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry9: ldr lr, [r3, #8] @ lr = length DISPATCH_NEXT @@ -568,7 +581,7 @@ DISPATCH_FINISH } -# r2 = [jpc, #1] +@ r2 = [jpc, #1] (astore,istore,fstore) u4store { DISPATCH_START \seq_len rsb tmp1, r2, #0 @@ -581,10 +594,10 @@ DISPATCH_FINISH } -# r2 = [jpc, #1] +@ r2 = [jpc, #1] (lstore,dstore) u8store { DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT sub r3, locals, r2, lsl #2 DISPATCH_NEXT @@ -641,7 +654,7 @@ (lstore_0,dstore_0) u8store_0 { DISPATCH_START \seq_len DISPATCH_NEXT - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT @@ -652,7 +665,7 @@ (lstore_1,dstore_1) u8store_1 { DISPATCH_START \seq_len DISPATCH_NEXT - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT @@ -662,7 +675,7 @@ (lstore_2,dstore_2) u8store_2 { DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT str tmp2, [locals, #-12] DISPATCH_NEXT @@ -674,7 +687,7 @@ (lstore_3,dstore_3) u8store_3 { DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT str tmp2, [locals, #-16] DISPATCH_NEXT @@ -685,12 +698,10 @@ } (iastore,fastore) u4astore { - POP3 r3, tmp2, tmp1 @ r3 = value, tmp2 = index, tmp1 = arrayref + POP r3, tmp2, tmp1 @ r3 = value, tmp2 = index, tmp1 = arrayref DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry10: ldr lr, [tmp1, #8] @ lr = limit DISPATCH_NEXT @@ -704,12 +715,10 @@ } (lastore,dastore) u8astore { - POP4 r2, r3, tmp2, tmp1 @ r2,r3 = value, tmp2 = index, tmp1 = arrayref + POP r2, r3, tmp2, tmp1 @ r2,r3 = value, tmp2 = index, tmp1 = arrayref DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry11: ldr ip, [tmp1, #8] @ ip = limit cmp tmp2, ip @@ -725,12 +734,10 @@ } (bastore) bastore { - POP3 r3, tmp2, tmp1 @ r3 = value, tmp2 = index, tmp1 = arrayref + POP r3, tmp2, tmp1 @ r3 = value, tmp2 = index, tmp1 = arrayref DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry12: ldr lr, [tmp1, #8] @ lr = limit DISPATCH_NEXT @@ -744,12 +751,10 @@ } (castore,sastore) u2astore { - POP3 r3, tmp2, tmp1 @ r3 = value, tmp2 = index, tmp1 = arrayref + POP r3, tmp2, tmp1 @ r3 = value, tmp2 = index, tmp1 = arrayref DISPATCH_START \seq_len -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_1 -#endif + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_1 .abortentry13: ldr lr, [tmp1, #8] @ lr = limit DISPATCH_NEXT @@ -784,21 +789,21 @@ (dup_x1) dup_x1 { DISPATCH_START \seq_len - POP2 r2, r3 + POP r2, r3 DISPATCH_NEXT PUSH r2 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } (dup_x2) dup_x2 { DISPATCH_START \seq_len - POP3 r2, r3, lr + POP r2, r3, lr DISPATCH_NEXT PUSH r2 DISPATCH_NEXT - PUSH3 r2, r3, lr + PUSH r2, r3, lr DISPATCH_FINISH } @@ -806,32 +811,32 @@ DISPATCH_START \seq_len ldmib stack, {r2, r3} DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } (dup2_x1) dup2_x1 { DISPATCH_START \seq_len - POP3 r2, r3, lr + POP r2, r3, lr DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_NEXT - PUSH3 r2, r3, lr + PUSH r2, r3, lr DISPATCH_FINISH } (dup2_x2) dup2_x2 { DISPATCH_START \seq_len - POP4 r2, r3, tmp1, lr + POP r2, r3, tmp1, lr DISPATCH_NEXT - PUSH2 r2, r3 - PUSH4 r2, r3, tmp1, lr + PUSH r2, r3 + PUSH r2, r3, tmp1, lr DISPATCH_FINISH } (swap) swap { DISPATCH_START \seq_len - POP2 r2, r3 + POP r2, r3 DISPATCH_NEXT PUSH r2 DISPATCH_NEXT @@ -842,7 +847,7 @@ (iadd) iadd { DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT add tmp2, tmp2, tmp1 DISPATCH_NEXT @@ -854,25 +859,18 @@ (ladd) ladd { DISPATCH_START \seq_len - POP4 r2, r3, tmp1, lr + POP r2, r3, tmp1, lr DISPATCH_NEXT adds r2, r2, tmp1 adc r3, r3, lr DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } -(fadd) fadd { - POP2 r0, r1 - bl __aeabi_fadd - PUSH r0 - DISPATCH \seq_len -} - (isub) isub { DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT sub tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -884,26 +882,18 @@ (lsub) lsub { DISPATCH_START \seq_len - POP4 r2, r3, tmp1, lr + POP r2, r3, tmp1, lr DISPATCH_NEXT subs r2, tmp1, r2 sbc r3, lr, r3 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } -(fsub) fsub { - POP r1 - POP r0 - bl __aeabi_fsub - PUSH r0 - DISPATCH \seq_len -} - (imul) imul { DISPATCH_START \seq_len - POP2 r2, tmp1 + POP r2, tmp1 DISPATCH_NEXT mul tmp2, r2, tmp1 DISPATCH_NEXT @@ -914,56 +904,33 @@ } (lmul) lmul { - POP4 r2, tmp1, ip, lr + POP r2, tmp1, ip, lr umull r3, r0, ip, r2 mla tmp1, ip, tmp1, r0 DISPATCH_START \seq_len mla tmp1, lr, r2, tmp1 DISPATCH_NEXT - PUSH2 r3, tmp1 + PUSH r3, tmp1 DISPATCH_FINISH } -(fmul) fmul { - POP2 r0, r1 - bl __aeabi_fmul - PUSH r0 - DISPATCH \seq_len -} - (ldiv) ldiv { - POP2 r2, r3 - POP2 r0, r1 + POP r2, r3 + POP r0, r1 orrs lr, r2, r3 beq .ldiv_0 bl __aeabi_ldivmod - PUSH2 r0, r1 - DISPATCH \seq_len -} - -(fdiv) fdiv { - POP r1 - POP r0 - bl __aeabi_fdiv - PUSH r0 - DISPATCH \seq_len -} - -(ddiv) ddiv { - POP2 r2, r3 - POP2 r0, r1 - bl __aeabi_ddiv - PUSH2 r0, r1 + PUSH r0, r1 DISPATCH \seq_len } (lrem) lrem { - POP2 r2, r3 - POP2 r0, r1 + POP r2, r3 + POP r0, r1 orrs lr, r2, r3 beq .lrem_0 bl __aeabi_ldivmod - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH \seq_len } @@ -971,10 +938,10 @@ @ ECN: It must be possible to do better than this POP r0 bl __aeabi_f2d - PUSH2 r0, r1 + PUSH r0, r1 GET_STACK 2, r0 bl __aeabi_f2d - POP2 r2, r3 + POP r2, r3 bl fmod bl __aeabi_d2f PUT_STACK 0, r0 @@ -982,10 +949,10 @@ } (drem) drem { - POP2 r2, r3 - POP2 r0, r1 + POP r2, r3 + POP r0, r1 bl fmod - PUSH2 r0, r1 + PUSH r0, r1 DISPATCH \seq_len } @@ -1003,12 +970,12 @@ (lneg) lneg { DISPATCH_START \seq_len - POP2 r2, r3 + POP r2, r3 DISPATCH_NEXT rsbs r2, r2, #0 rsc r3, r3, #0 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } @@ -1034,7 +1001,7 @@ (ishl) ishl { DISPATCH_START \seq_len - POP2 r2, r3 + POP r2, r3 DISPATCH_NEXT and r2, r2, #31 mov r2, r3, lsl r2 @@ -1045,7 +1012,7 @@ (lshl) lshl { DISPATCH_START \seq_len - POP3 r2, r3, lr + POP r2, r3, lr DISPATCH_NEXT tst r2, #32 and r2, r2, #31 @@ -1055,13 +1022,13 @@ moveq lr, lr, lsl r2 rsbeq r2, r2, #32 orreq lr, lr, r3, lsr r2 - PUSH2 tmp1, lr + PUSH tmp1, lr DISPATCH_FINISH } (ishr) ishr { DISPATCH_START \seq_len - POP2 r2, r3 + POP r2, r3 DISPATCH_NEXT and r2, r2, #31 mov r2, r3, asr r2 @@ -1072,7 +1039,7 @@ (lshr) lshr { DISPATCH_START \seq_len - POP3 r2, r3, tmp1 + POP r2, r3, tmp1 DISPATCH_NEXT tst r2, #32 and r2, r2, #31 @@ -1082,13 +1049,13 @@ moveq r3, r3, lsr r2 rsbeq r2, r2, #32 orreq r3, r3, tmp1, lsl r2 - PUSH2 r3, lr + PUSH r3, lr DISPATCH_FINISH } (iushr) iushr { DISPATCH_START \seq_len - POP2 r2, r3 + POP r2, r3 DISPATCH_NEXT and r2, r2, #31 mov r2, r3, lsr r2 @@ -1099,7 +1066,7 @@ (lushr) lushr { DISPATCH_START \seq_len - POP3 r2, r3, tmp1 + POP r2, r3, tmp1 DISPATCH_NEXT tst r2, #32 and r2, r2, #31 @@ -1109,13 +1076,13 @@ moveq r3, r3, lsr r2 rsbeq r2, r2, #32 orreq r3, r3, tmp1, lsl r2 - PUSH2 r3, lr + PUSH r3, lr DISPATCH_FINISH } (iand) iand { DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT and tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -1127,18 +1094,18 @@ (land) land { DISPATCH_START \seq_len - POP4 r2, r3, tmp1, lr + POP r2, r3, tmp1, lr DISPATCH_NEXT and r2, tmp1, r2 and r3, lr, r3 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } (ior) ior { DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT orr tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -1150,18 +1117,18 @@ (lor) lor { DISPATCH_START \seq_len - POP4 r2, r3, tmp1, lr + POP r2, r3, tmp1, lr DISPATCH_NEXT orr r2, tmp1, r2 orr r3, lr, r3 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } (ixor) ixor { DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT eor tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -1173,16 +1140,16 @@ (lxor) lxor { DISPATCH_START \seq_len - POP4 r2, r3, tmp1, lr + POP r2, r3, tmp1, lr DISPATCH_NEXT eor r2, tmp1, r2 eor r3, lr, r3 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } -# r2 = [jpc, #1] +@ r2 = [jpc, #1] (iinc) iinc { ldrsb lr, [jpc, #2] DISPATCH_START \seq_len @@ -1203,7 +1170,7 @@ DISPATCH_NEXT mov r3, r2, asr #31 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH r2, r3 DISPATCH_FINISH } @@ -1217,7 +1184,7 @@ (i2d) i2d { POP r0 bl __aeabi_i2d - PUSH2 r0, r1 + PUSH r0, r1 DISPATCH \seq_len } @@ -1230,16 +1197,16 @@ } (l2f) l2f { - POP2 r0, r1 + POP r0, r1 bl __aeabi_l2f PUSH r0 DISPATCH \seq_len } (l2d) l2d { - POP2 r0, r1 + POP r0, r1 bl __aeabi_l2d - PUSH2 r0, r1 + PUSH r0, r1 DISPATCH \seq_len } @@ -1253,33 +1220,33 @@ (f2l) f2l { POP r0 bl _ZN13SharedRuntime3f2lEf - PUSH2 r0, r1 + PUSH r0, r1 DISPATCH \seq_len } (f2d) f2d { POP r0 bl __aeabi_f2d - PUSH2 r0, r1 + PUSH r0, r1 DISPATCH \seq_len } (d2i) d2i { - POP2 r0, r1 + POP r0, r1 bl _ZN13SharedRuntime3d2iEd PUSH r0 DISPATCH \seq_len } (d2l) d2l { - POP2 r0, r1 + POP r0, r1 bl _ZN13SharedRuntime3d2lEd - PUSH2 r0, r1 + PUSH r0, r1 DISPATCH \seq_len } (d2f) d2f { - POP2 r0, r1 + POP r0, r1 bl __aeabi_d2f PUSH r0 DISPATCH \seq_len @@ -1319,7 +1286,7 @@ } (lcmp) lcmp { - POP4 r2, r3, tmp1, lr + POP r2, r3, tmp1, lr DISPATCH_START \seq_len subs r2, tmp1, r2 movne r2, #1 @@ -1332,104 +1299,10 @@ DISPATCH_FINISH } -(fcmpl) fcmpl { - ldmib stack, {r0, r1} - bl __aeabi_fcmpgt - cmp r0, #0 - movne r3, #-1 - bne 3f - ldmib stack, {r0, r1} - bl __aeabi_fcmplt - cmp r0, #0 - movne r3, #1 - bne 3f - ldmib stack, {r0, r1} - bl __aeabi_fcmpeq - cmp r0, #0 - movne r3, #0 - moveq r3, #-1 -3: - DISPATCH_START \seq_len - add stack, stack, #8 - DISPATCH_NEXT - PUSH r3 - DISPATCH_FINISH -} - -(fcmpg) fcmpg { - ldmib stack, {r0, r1} - bl __aeabi_fcmpgt - cmp r0, #0 - movne r3, #-1 - bne 4f - ldmib stack, {r0, r1} - bl __aeabi_fcmplt - cmp r0, #0 - movne r3, #1 - bne 4f - ldmib stack, {r0, r1} - bl __aeabi_fcmpeq - cmp r0, #0 - movne r3, #0 - moveq r3, #1 -4: - DISPATCH_START \seq_len - add stack, stack, #8 - DISPATCH_NEXT - PUSH r3 - DISPATCH_FINISH -} - -(dcmpl) dcmpl { - ldmib stack, {r0, r1, r2, r3} - bl __aeabi_dcmpgt - cmp r0, #0 - movne r3, #-1 - bne 5f - ldmib stack, {r0, r1, r2, r3} - bl __aeabi_dcmplt - cmp r0, #0 - movne r3, #1 - bne 5f - ldmib stack, {r0, r1, r2, r3} - bl __aeabi_dcmpeq - cmp r0, #0 - movne r3, #0 - moveq r3, #-1 -5: - DISPATCH_START \seq_len - add stack, stack, #16 - DISPATCH_NEXT - PUSH r3 - DISPATCH_FINISH -} - -(dcmpg) dcmpg { - ldmib stack, {r0, r1, r2, r3} - bl __aeabi_dcmpgt - cmp r0, #0 - movne r3, #-1 - bne 6f - ldmib stack, {r0, r1, r2, r3} - bl __aeabi_dcmplt - cmp r0, #0 - movne r3, #1 - bne 6f - ldmib stack, {r0, r1, r2, r3} - bl __aeabi_dcmpeq - cmp r0, #0 - movne r3, #0 - moveq r3, #1 -6: - DISPATCH_START \seq_len - add stack, stack, #16 - DISPATCH_NEXT - PUSH r3 - DISPATCH_FINISH -} +#ifdef NOTICE_SAFEPOINTS -# r2 = [jpc, #1] -# r1 = [jpc, #2] +@ r2 = [jpc, #1] +@ r1 = [jpc, #2] (ifeq,ifnull) ifeq_unsafe { POP r3 mov r2, r2, lsl #24 @@ -1503,7 +1376,7 @@ } (if_icmpeq,if_acmpeq) if_icmpeq_unsafe { - POP2 r3, tmp1 + POP r3, tmp1 mov r2, r2, lsl #24 cmp tmp1, r3 orr ip, r1, r2, asr #16 @@ -1515,7 +1388,7 @@ } (if_icmpne,if_acmpne) if_icmpne_unsafe { - POP2 r3, tmp1 + POP r3, tmp1 mov r2, r2, lsl #24 cmp tmp1, r3 orr ip, r1, r2, asr #16 @@ -1527,7 +1400,7 @@ } (if_icmplt) if_icmplt_unsafe { - POP2 r3, tmp1 + POP r3, tmp1 mov r2, r2, lsl #24 cmp tmp1, r3 orr ip, r1, r2, asr #16 @@ -1539,7 +1412,7 @@ } (if_icmpge) if_icmpge_unsafe { - POP2 r3, tmp1 + POP r3, tmp1 mov r2, r2, lsl #24 cmp tmp1, r3 orr ip, r1, r2, asr #16 @@ -1551,7 +1424,7 @@ } (if_icmpgt) if_icmpgt_unsafe { - POP2 r3, tmp1 + POP r3, tmp1 mov r2, r2, lsl #24 cmp tmp1, r3 orr ip, r1, r2, asr #16 @@ -1563,7 +1436,7 @@ } (if_icmple) if_icmple_unsafe { - POP2 r3, tmp1 + POP r3, tmp1 mov r2, r2, lsl #24 cmp tmp1, r3 orr ip, r1, r2, asr #16 @@ -1581,17 +1454,19 @@ DISPATCH_BYTECODE } +#endif // NOTICE_SAFEPOINTS + (jsr) jsr { ldr r3, [istate, #ISTATE_METHOD] ldr r1, [r3, #8] rsb r2, r1, jpc sub r2, r2, #45 PUSH r2 - b do_goto_safe + b do_goto } -# r2 = [jpc, #1] -# r1 = [jpc, #2] +@ r2 = [jpc, #1] +@ r1 = [jpc, #2] (ret) ret { ldr r0, [istate, #ISTATE_METHOD] ldr r3, [r0, #8] @@ -1600,7 +1475,7 @@ DISPATCH 48 } -# ECN: We dont do safe and unsafe versions of tableswitch and lookupswitch +@ ECN: We dont do safe and unsafe versions of tableswitch and lookupswitch (tableswitch) tableswitch { POP a2 bic a1, jpc, #3 @@ -1679,17 +1554,16 @@ DISPATCH_BYTECODE } +#ifdef FAST_BYTECODES (igetfield) igetfield { DISPATCH_START 3 add tmp2, constpool, r1, lsl #12 POP tmp1 add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT .abortentry78: ldr tmp2, [tmp1, tmp2] @@ -1705,11 +1579,9 @@ POP tmp1 add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT .abortentry79: ldrsb tmp2, [tmp1, tmp2] @@ -1725,11 +1597,9 @@ POP tmp1 add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT .abortentry80: ldrh tmp2, [tmp1, tmp2] @@ -1745,11 +1615,9 @@ POP tmp1 add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT .abortentry81: ldrsh tmp2, [tmp1, tmp2] @@ -1765,32 +1633,28 @@ POP tmp1 add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT add tmp2, tmp1, tmp2 DISPATCH_NEXT .abortentry82: ldmia tmp2, {tmp2, tmp1} DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH tmp2, tmp1 DISPATCH_FINISH } (iputfield) iputfield { DISPATCH_START 3 add tmp2, constpool, r1, lsl #12 - POP2 r3, tmp1 @ r3 = value, tmp1 = object + POP r3, tmp1 @ r3 = value, tmp1 = object add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT @@ -1802,14 +1666,12 @@ (cputfield) cputfield { DISPATCH_START 3 add tmp2, constpool, r1, lsl #12 - POP2 r3, tmp1 @ r3 = value, tmp1 = object + POP r3, tmp1 @ r3 = value, tmp1 = object add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT @@ -1821,14 +1683,12 @@ (bputfield) bputfield { DISPATCH_START 3 add tmp2, constpool, r1, lsl #12 - POP2 r3, tmp1 @ r3 = value, tmp1 = object + POP r3, tmp1 @ r3 = value, tmp1 = object add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT @@ -1839,13 +1699,15 @@ (aputfield) aputfield { GET_STACK 1, r0 @ r0 = object - add tmp2, constpool, r1, lsl #12 - POP r1 @ r1 = value - add tmp2, tmp2, r2, lsl #4 - ldr tmp2, [tmp2, #8] - cmp r0, #0 - beq null_ptr_exception - add r0, r0, tmp2 + add r3, constpool, r1, lsl #12 + POP oop_value_tmp @ r1 = value + add r3, r3, r2, lsl #4 + ldr r3, [r3, #CP_OFFSET+8] + SW_NPC cmp r0, #0 + add oop_address_tmp, r0, r3 + SW_NPC beq null_ptr_exception +.abortentry113: + HW_NPC ldr ip, [r0] @ Only to provoke an abort bl oop_store ldr r3, [dispatch, #Universe_collectedHeap_Address-XXX] DISPATCH_START 3 @@ -1863,14 +1725,12 @@ (lputfield) lputfield { DISPATCH_START 3 add tmp2, constpool, r1, lsl #12 - POP3 r3, tmp1, lr @ r3, tmp1 = value, lr = object + POP r3, tmp1, lr @ r3, tmp1 = value, lr = object add tmp2, tmp2, r2, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp lr, #0 - beq null_ptr_exception_jpc_3 -#endif - ldr tmp2, [tmp2, #8] + SW_NPC cmp lr, #0 + SW_NPC beq null_ptr_exception_jpc_3 + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT add tmp2, lr, tmp2 DISPATCH_NEXT @@ -1880,19 +1740,20 @@ DISPATCH_FINISH } -# r2 = [jpc, #1] -# r1 = [jpc, #2] +#endif // FAST_BYTECODES + +@ r2 = [jpc, #1] +@ r1 = [jpc, #2] (getstatic) getstatic { - DISPATCH_START \seq_len add tmp2, constpool, r1, lsl #12 - ldr r3, [tmp2, r2, lsl #4]! @ tmp2 = cache, r3 = flags - DISPATCH_NEXT + add tmp2, tmp2, r2, lsl #4 + ldr r3, [tmp2, #CP_OFFSET] and r3, r3, #0x00ff0000 - cmp r3, #178 << 16 - bne resolve_getstatic - ldr r3, [tmp2, #4] - ldr r2, [tmp2, #12] - ldr lr, [tmp2, #8] + cmp r3, #opc_getstatic << 16 + blne resolve_get_put + ldr r3, [tmp2, #CP_OFFSET+4] + ldr r2, [tmp2, #CP_OFFSET+12] + ldr lr, [tmp2, #CP_OFFSET+8] movs r2, r2, lsr #29 bhi getstatic_w @ C = 1, Z = 0 => R2 == 3, 5, 7 bcs getstatic_h @ C = 1 => R2 = 1 @@ -1902,19 +1763,18 @@ b getstatic_sh } -# r2 = [jpc, #1] -# r1 = [jpc, #2] +@ r2 = [jpc, #1] +@ r1 = [jpc, #2] (putstatic) putstatic { - DISPATCH_START \seq_len add tmp2, constpool, r1, lsl #12 - ldr r3, [tmp2, r2, lsl #4]! @ tmp2 = cache, r3 = flags - DISPATCH_NEXT + add tmp2, tmp2, r2, lsl #4 + ldr r3, [tmp2, #CP_OFFSET] and r3, r3, #0xff000000 - cmp r3, #179 << 24 - bne resolve_putstatic - ldr r3, [tmp2, #4] @ r3 = object - ldr lr, [tmp2, #12] @ lr = tos_type - ldr r2, [tmp2, #8] @ r2 = offset + cmp r3, #opc_putstatic << 24 + blne resolve_get_put + ldr r3, [tmp2, #CP_OFFSET+4] @ r3 = object + ldr lr, [tmp2, #CP_OFFSET+12] @ lr = tos_type + ldr r2, [tmp2, #CP_OFFSET+8] @ r2 = offset movs lr, lr, lsr #29 bhi putstatic_w @ C = 1, Z = 0 => R2 == 3, 5, 7 bcs putstatic_h @ C = 1 => R2 = 1 @@ -1924,6 +1784,8 @@ b putstatic_sh } +#ifdef NOTICE_SAFEPOINTS + (return) return_unsafe { ldr tmp2, [istate, #ISTATE_MONITOR_BASE] @ tmp2 = base @@ -1943,14 +1805,17 @@ add r1, r2, #4 str r3, [tmp_xxx, #THREAD_TOP_ZERO_FRAME] - ldr istate, [istate, #ISTATE_SAVED_ISTATE] + ldr ip, [istate, #ISTATE_ADVANCE_PC] + ldr istate, [istate, #ISTATE_NEXT_FRAME] add stack, r1, r0, lsl #2 - cmp istate, #0 + cmp ip, #0 beq normal_return - ldr jpc, [istate, #ISTATE_BCP] + sub istate, istate, #ISTATE_NEXT_FRAME + + CACHE_JPC ldr r2, [istate, #ISTATE_STACK_LIMIT] - DISPATCH_START 3 + DISPATCH_START_REG ip sub stack, stack, #4 ldr r3, [tmp_xxx, #THREAD_TOP_ZERO_FRAME] DISPATCH_NEXT @@ -1959,10 +1824,9 @@ str r2, [tmp_xxx, #THREAD_JAVA_SP] DISPATCH_NEXT str r3, [tmp_xxx, #THREAD_LAST_JAVA_SP] - ldr constpool, [istate, #ISTATE_CONSTANTS] - ldr locals, [istate, #ISTATE_LOCALS] + CACHE_CP + CACHE_LOCALS DISPATCH_NEXT - add constpool, constpool, #CONST_POOL_OFFSET DISPATCH_FINISH 1: bl return_check_monitors @@ -1988,15 +1852,18 @@ ldr r3, [stack, #0] ldrh r0, [r0, #40] - ldr istate, [istate, #ISTATE_SAVED_ISTATE] + ldr ip, [istate, #ISTATE_ADVANCE_PC] + ldr istate, [istate, #ISTATE_NEXT_FRAME] str r3, [tmp_xxx, #THREAD_TOP_ZERO_FRAME] str r1, [stack, r0, lsl #2]! - cmp istate, #0 + cmp ip, #0 beq normal_return - ldr jpc, [istate, #ISTATE_BCP] + sub istate, istate, #ISTATE_NEXT_FRAME + + CACHE_JPC ldr r2, [istate, #ISTATE_STACK_LIMIT] - DISPATCH_START 3 @ ldrb r0, [jpc, #3]! + DISPATCH_START_REG ip sub stack, stack, #4 ldr r3, [tmp_xxx, #THREAD_TOP_ZERO_FRAME] DISPATCH_NEXT @ ldrb r1, [jpc, #2] @@ -2005,10 +1872,9 @@ str r2, [tmp_xxx, #THREAD_JAVA_SP] DISPATCH_NEXT @ ldrb r2, [jpc, #1] str r3, [tmp_xxx, #THREAD_LAST_JAVA_SP] - ldr constpool, [istate, #ISTATE_CONSTANTS] - ldr locals, [istate, #ISTATE_LOCALS] + CACHE_CP + CACHE_LOCALS DISPATCH_NEXT @ ands lr, ip, lr - add constpool, constpool, #CONST_POOL_OFFSET DISPATCH_FINISH 1: bl return_check_monitors @@ -2033,18 +1899,21 @@ add r1, r2, #4 str r3, [tmp_xxx, #THREAD_TOP_ZERO_FRAME] - ldr istate, [istate, #ISTATE_SAVED_ISTATE] + ldr ip, [istate, #ISTATE_ADVANCE_PC] + ldr istate, [istate, #ISTATE_NEXT_FRAME] - POP2 r2, r3 + POP r2, r3 add stack, r1, r0, lsl #2 stmdb stack!, {r2, r3} - cmp istate, #0 + cmp ip, #0 beq normal_return - ldr jpc, [istate, #ISTATE_BCP] + sub istate, istate, #ISTATE_NEXT_FRAME + + CACHE_JPC ldr r2, [istate, #ISTATE_STACK_LIMIT] - DISPATCH_START 3 + DISPATCH_START_REG ip sub stack, stack, #4 ldr r3, [tmp_xxx, #THREAD_TOP_ZERO_FRAME] DISPATCH_NEXT @@ -2053,44 +1922,47 @@ str r2, [tmp_xxx, #THREAD_JAVA_SP] DISPATCH_NEXT str r3, [tmp_xxx, #THREAD_LAST_JAVA_SP] - ldr constpool, [istate, #ISTATE_CONSTANTS] - ldr locals, [istate, #ISTATE_LOCALS] + CACHE_CP + CACHE_LOCALS DISPATCH_NEXT - add constpool, constpool, #CONST_POOL_OFFSET DISPATCH_FINISH 1: bl return_check_monitors b 2b } +#endif // NOTICE_SAFEPOINTS + (ldc) ldc { - ldrb lr, [jpc, #1] ldr r3, [istate, #ISTATE_METHOD] @ method + ldrb lr, [jpc, #1] + + ldr tmp1, [r3, #12] @ constants DISPATCH_START \seq_len - ldr r2, [r3, #12] @ constants - ldr r3, [r2, #8] + ldr r3, [tmp1, #8] + DISPATCH_NEXT add r3, r3, #12 ldrb r3, [r3, lr] DISPATCH_NEXT + DISPATCH_NEXT cmp r3, #JVM_CONSTANT_Integer cmpne r3, #JVM_CONSTANT_Float cmpne r3, #JVM_CONSTANT_String bne 1f + add r3, tmp1, lr, lsl #2 + ldr r3, [r3, #32] DISPATCH_NEXT - - add r3, r2, lr, lsl #2 - ldr lr, [r3, #32] - PUSH lr + PUSH r3 DISPATCH_FINISH 1: cmp r3, #JVM_CONSTANT_Class bne 2f - add r0, r2, #32 + add r0, tmp1, #32 ldr r0, [r0, lr, lsl #2] ldr r1, [r0, #60] PUSH r1 @@ -2098,18 +1970,17 @@ 2: sub jpc, jpc, #\seq_len ldr r0, [istate, #ISTATE_THREAD] - str jpc, [istate, #ISTATE_BCP] - str stack, [istate, #ISTATE_STACK] + DECACHE_JPC + DECACHE_STACK mov r1, #0 bl _ZN18InterpreterRuntime3ldcEP10JavaThreadb ldr r0, [istate, #ISTATE_THREAD] @ thread - ldr stack, [istate, #ISTATE_STACK] - ldr constpool, [istate, #ISTATE_CONSTANTS] + ASSERT_STACK_CACHED + CACHE_CP ldr r1, [r0, #THREAD_PENDING_EXC] - ldr jpc, [istate, #ISTATE_BCP] - add constpool, constpool, #CONST_POOL_OFFSET + CACHE_JPC cmp r1, #0 - ldr locals, [istate, #ISTATE_LOCALS] + ASSERT_LOCALS_CACHED bne handle_exception ldr r3, [r0, #THREAD_VM_RESULT] mov r2, #0 @@ -2133,17 +2004,18 @@ ldrb r3, [r3, lr] DISPATCH_NEXT + DISPATCH_NEXT cmp r3, #JVM_CONSTANT_Integer cmpne r3, #JVM_CONSTANT_Float cmpne r3, #JVM_CONSTANT_String bne 1f - DISPATCH_NEXT - add r3, r2, lr, lsl #2 - ldr lr, [r3, #32] - PUSH lr + ldr r3, [r3, #32] + DISPATCH_NEXT + DISPATCH_NEXT + PUSH r3 DISPATCH_FINISH 1: cmp r3, #JVM_CONSTANT_Class @@ -2156,20 +2028,19 @@ 2: sub jpc, jpc, #\seq_len ldr r0, [istate, #ISTATE_THREAD] - str jpc, [istate, #ISTATE_BCP] - str stack, [istate, #ISTATE_STACK] + DECACHE_JPC + DECACHE_STACK mov r1, #1 bl _ZN18InterpreterRuntime3ldcEP10JavaThreadb + ASSERT_STACK_CACHED + ASSERT_LOCALS_CACHED ldr r0, [istate, #ISTATE_THREAD] @ thread - ldr stack, [istate, #ISTATE_STACK] - ldr constpool, [istate, #ISTATE_CONSTANTS] + CACHE_CP ldr r1, [r0, #THREAD_PENDING_EXC] - ldr jpc, [istate, #ISTATE_BCP] - add constpool, constpool, #CONST_POOL_OFFSET + CACHE_JPC cmp r1, #0 - ldr locals, [istate, #ISTATE_LOCALS] - bne handle_exception ldr r3, [r0, #THREAD_VM_RESULT] + bne handle_exception mov r2, #0 PUSH r3 str r2, [r0, #THREAD_VM_RESULT] @@ -2191,23 +2062,26 @@ ldrb tmp1, [tmp1, r3] DISPATCH_NEXT + DISPATCH_NEXT cmp tmp1, #JVM_CONSTANT_Long cmpne tmp1, #JVM_CONSTANT_Double bne vm_fatal_error - DISPATCH_NEXT add tmp1, r2, r3, lsl #2 - add tmp1, tmp1, #32 - ldmia tmp1, {r3, tmp1} - PUSH2 r3, tmp1 + ldr r3, [tmp1, #32] + ldr tmp1, [tmp1, #36] + DISPATCH_NEXT + DISPATCH_NEXT + PUSH r3, tmp1 DISPATCH_FINISH } +#ifdef FAST_BYTECODES (iadd_u4store) { ldrb r3, [jpc, #2] DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT add tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2221,7 +2095,7 @@ (isub_u4store) { ldrb r3, [jpc, #2] DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT sub tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2235,7 +2109,7 @@ (iand_u4store) { ldrb r3, [jpc, #2] DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT and tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2249,7 +2123,7 @@ (ior_u4store) { ldrb r3, [jpc, #2] DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT orr tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2263,7 +2137,7 @@ (ixor_u4store) { ldrb r3, [jpc, #2] DISPATCH_START \seq_len - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT eor tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2279,7 +2153,7 @@ DISPATCH_START \seq_len DISPATCH_NEXT rsb r3, lr, #opc_istore_0 - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT add tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2293,7 +2167,7 @@ DISPATCH_START \seq_len DISPATCH_NEXT rsb r3, lr, #opc_istore_0 - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT sub tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2307,7 +2181,7 @@ DISPATCH_START \seq_len DISPATCH_NEXT rsb r3, lr, #opc_istore_0 - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT and tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2321,7 +2195,7 @@ DISPATCH_START \seq_len DISPATCH_NEXT rsb r3, lr, #opc_istore_0 - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT orr tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2335,7 +2209,7 @@ DISPATCH_START \seq_len DISPATCH_NEXT rsb r3, lr, #opc_istore_0 - POP2 tmp2, tmp1 + POP tmp2, tmp1 DISPATCH_NEXT eor tmp2, tmp1, tmp2 DISPATCH_NEXT @@ -2344,7 +2218,7 @@ DISPATCH_FINISH } -# r2 = [jpc, #1] +@ r2 = [jpc, #1] (iload_iconst_N) { ldrb r3, [jpc, #2] @@ -2356,7 +2230,7 @@ DISPATCH_NEXT DISPATCH_NEXT DISPATCH_NEXT - PUSH2 r3, tmp1 + PUSH r3, tmp1 DISPATCH_FINISH } @@ -2371,11 +2245,11 @@ sub tmp2, r2, #opc_iconst_0 DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH tmp2, tmp1 DISPATCH_FINISH } -# (aload_N)(getfield) +@ (aload_N)(getfield) (iaccess_0,iaccess_1,iaccess_2,iaccess_3) { ldrb r2, [jpc, #3] @@ -2386,12 +2260,10 @@ ldr tmp1, [locals, tmp1, lsl #2] add tmp2, r3, lsl #4 DISPATCH_NEXT -#ifndef HW_NULL_PTR_CHECK - cmp tmp1, #0 - beq null_ptr_exception_jpc_3 -#endif + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 DISPATCH_NEXT - ldr tmp2, [tmp2, #8] + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT .abortentry87: ldr tmp2, [tmp1, tmp2] @@ -2400,451 +2272,837 @@ DISPATCH_FINISH } -############################################################################### -# ECN: Optimised bytecode pairs -############################################################################### - -# --- ECN: load; load --------------------------------------------------------- - -(aload_0,aload_1,aload_2,aload_3) -(aload_0,aload_1,aload_2,aload_3) +@ r2 = [jpc, #1] +(iload_iload) fast_iload_iload { - rsb tmp1, r0, #opc_aload_0 + ldrb r3, [jpc, #3] DISPATCH_START \seq_len - rsb tmp2, r1, #opc_aload_0 + rsb r2, r2, #0 DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] - ldr tmp2, [locals, tmp2, lsl #2] + rsb r3, r3, #0 DISPATCH_NEXT + ldr tmp1, [locals, r2, lsl #2] DISPATCH_NEXT + ldr r3, [locals, r3, lsl #2] DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH r3, tmp1 DISPATCH_FINISH } -(aload_0,aload_1,aload_2,aload_3) -(iload_0,iload_1,iload_2,iload_3) +@ r2 = [jpc, #1] +(iload_iload_N) fast_iload_iload_N { - rsb tmp1, r0, #opc_aload_0 + ldrb r3, [jpc, #2] DISPATCH_START \seq_len - rsb tmp2, r1, #opc_iload_0 + rsb r2, r2, #0 DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] - ldr tmp2, [locals, tmp2, lsl #2] + rsb r3, r3, #opc_iload_0 DISPATCH_NEXT + ldr tmp1, [locals, r2, lsl #2] DISPATCH_NEXT + ldr r3, [locals, r3, lsl #2] DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH r3, tmp1 DISPATCH_FINISH } -(iload_0,iload_1,iload_2,iload_3) -(aload_0,aload_1,aload_2,aload_3) +(iload_0_iload,iload_1_iload,iload_2_iload,iload_3_iload) fast_iload_N_iload { - rsb tmp1, r0, #opc_iload_0 + ldrb r3, [jpc, #2] + rsb r2, r0, #opc_iload_0_iload DISPATCH_START \seq_len - rsb tmp2, r1, #opc_aload_0 + rsb r3, r3, #0 DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] - ldr tmp2, [locals, tmp2, lsl #2] + ldr tmp1, [locals, r2, lsl #2] DISPATCH_NEXT + ldr r3, [locals, r3, lsl #2] DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH r3, tmp1 DISPATCH_FINISH } -# 7 cycles -(iload_0,iload_1,iload_2,iload_3) -(iload_0,iload_1,iload_2,iload_3) +(iload_0_iload_N,iload_1_iload_N,iload_2_iload_N,iload_3_iload_N) fast_iload_N_iload_N { - rsb tmp1, r0, #opc_iload_0 + rsb r3, r0, #opc_iload_0_iload_N DISPATCH_START \seq_len - rsb tmp2, r1, #opc_iload_0 + rsb r2, r2, #opc_iload_0 DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] - ldr tmp2, [locals, tmp2, lsl #2] + ldr tmp1, [locals, r3, lsl #2] DISPATCH_NEXT + ldr r3, [locals, r2, lsl #2] DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + PUSH r3, tmp1 DISPATCH_FINISH } -(aload_0,aload_1,aload_2,aload_3) -(iload,aload,fload) -{ - ldrb r3, [jpc, #2] - rsb tmp1, r0, #opc_aload_0 - DISPATCH_START \seq_len - ldr tmp1, [locals, tmp1, lsl #2] - rsb r3, r3, #0 +#endif // FAST_BYTECODE + +#ifdef HW_FP + +(fadd) fadd_vfp { + DISPATCH_START 1 + vldr s15, [stack, #8] + vldr s14, [stack, #4] DISPATCH_NEXT - ldr r3, [locals, r3, lsl #2] DISPATCH_NEXT + fadds s15, s15, s14 DISPATCH_NEXT DISPATCH_NEXT - PUSH2 r3, tmp1 + vstr s15, [stack, #8] + add stack, stack, #4 DISPATCH_FINISH } -(iload_0,iload_1,iload_2,iload_3) -(iload,aload,fload) -{ - ldrb r3, [jpc, #2] - rsb tmp1, r0, #opc_iload_0 - DISPATCH_START \seq_len - ldr tmp1, [locals, tmp1, lsl #2] - rsb r3, r3, #0 +(dadd) dadd_vfp { + DISPATCH_START 1 + vldr d7, [stack, #12] + vldr d6, [stack, #4] DISPATCH_NEXT - ldr r3, [locals, r3, lsl #2] DISPATCH_NEXT + faddd d0, d7, d6 DISPATCH_NEXT DISPATCH_NEXT - PUSH2 r3, tmp1 + vstr d0, [stack, #12] + add stack, stack, #8 DISPATCH_FINISH } -# r2 = [jpc, #1] -(iload,aload,fload) -(aload_0,aload_1,aload_2,aload_3) -{ - DISPATCH_START \seq_len - rsb tmp2, r1, #opc_aload_0 +(fsub) fsub_vfp { + DISPATCH_START 1 + vldr s15, [stack, #8] + vldr s14, [stack, #4] DISPATCH_NEXT - rsb tmp1, r2, #0 - ldr tmp2, [locals, tmp2, lsl #2] DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] + fsubs s15, s15, s14 DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + vstr s15, [stack, #8] + add stack, stack, #4 DISPATCH_FINISH } -# r2 = [jpc, #1] -(iload,aload,fload) -(iload_0,iload_1,iload_2,iload_3) -{ - DISPATCH_START \seq_len - rsb tmp2, r1, #opc_iload_0 +(fmul) fmul_vfp { + DISPATCH_START 1 + vldr s15, [stack, #8] + vldr s14, [stack, #4] DISPATCH_NEXT - rsb tmp1, r2, #0 - ldr tmp2, [locals, tmp2, lsl #2] DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] + fmuls s15, s15, s14 DISPATCH_NEXT DISPATCH_NEXT - PUSH2 tmp2, tmp1 + vstr s15, [stack, #8] + add stack, stack, #4 DISPATCH_FINISH } -# r2 = [jpc, #1] -(iload,aload,fload)(iload,aload,fload) { - ldrb tmp2, [jpc, #3] - rsb tmp1, r2, #0 - DISPATCH_START \seq_len - rsb tmp2, tmp2, #0 - ldr tmp1, [locals, tmp1, lsl #2] +(dmul) dmul_vfp { + FBC cmp r2, #opc_dadd + DISPATCH_START 1 + FBC beq 1f +2: + vldr d7, [stack, #12] + vldr d6, [stack, #4] DISPATCH_NEXT - ldr tmp2, [locals, tmp2, lsl #2] DISPATCH_NEXT + fmuld d0, d7, d6 DISPATCH_NEXT - PUSH2 tmp2, tmp1 + DISPATCH_NEXT + vstr d0, [stack, #12] + add stack, stack, #8 DISPATCH_FINISH +1: + FBC mov r2, #opc_dmac + FBC strb r2, [jpc, #-1] + FBC b 2b } -# --- ECN: load; store -------------------------------------------------------- +#ifdef FAST_BYTECODES -(aload_0,aload_1,aload_2,aload_3) -(astore_0,astore_1,astore_2,astore_3) -{ - rsb tmp1, r0, #opc_aload_0 +(dmac) dmac_vfp { DISPATCH_START \seq_len - rsb tmp2, r1, #opc_astore_0 + vldr d2, [stack, #20] + vldr d1, [stack, #12] + vldr d0, [stack, #4] DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] DISPATCH_NEXT + fmacd d2, d1, d0 DISPATCH_NEXT DISPATCH_NEXT - str tmp1, [locals, tmp2, lsl #2] + vstr d2, [stack, #20] + add stack, stack, #16 DISPATCH_FINISH } -(iload_0,iload_1,iload_2,iload_3) -(istore_0,istore_1,istore_2,istore_3) -{ - rsb tmp1, r0, #opc_iload_0 - DISPATCH_START \seq_len - rsb tmp2, r1, #opc_istore_0 +#endif // FAST_BYTECODES + +(fdiv) fdiv_vfp { + DISPATCH_START 1 + vldr s15, [stack, #8] + vldr s14, [stack, #4] DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] DISPATCH_NEXT + fdivs s15, s15, s14 DISPATCH_NEXT DISPATCH_NEXT - str tmp1, [locals, tmp2, lsl #2] + vstr s15, [stack, #8] + add stack, stack, #4 DISPATCH_FINISH } -(aload_0,aload_1,aload_2,aload_3) -(astore,istore,fstore) -{ - ldrb tmp2, [jpc, #2] - rsb tmp1, r0, #opc_aload_0 - DISPATCH_START \seq_len - rsb tmp2, tmp2, #0 +(ddiv) ddiv_vfp { + DISPATCH_START 1 + vldr d7, [stack, #12] + vldr d6, [stack, #4] DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] DISPATCH_NEXT + fdivd d0, d7, d6 DISPATCH_NEXT DISPATCH_NEXT - str tmp1, [locals, tmp2, lsl #2] + vstr d0, [stack, #12] + add stack, stack, #8 DISPATCH_FINISH } -(iload_0,iload_1,iload_2,iload_3) -(astore,istore,fstore) -{ - ldrb tmp2, [jpc, #2] - rsb tmp1, r0, #opc_iload_0 - DISPATCH_START \seq_len - rsb tmp2, tmp2, #0 - DISPATCH_NEXT - ldr tmp1, [locals, tmp1, lsl #2] +(fcmpl) fcmpl_vfp { + DISPATCH_START 1 + flds s14, [stack, #8] + flds s15, [stack, #4] DISPATCH_NEXT DISPATCH_NEXT + fcmpes s14, s15 + add stack, stack, #8 + fmstat + mvnmi r3, #0 + bmi 1f + movgt r3, #1 + bgt 1f + fcmps s14, s15 + fmstat + moveq r3, #0 + mvnne r3, #0 +1: DISPATCH_NEXT - str tmp1, [locals, tmp2, lsl #2] + DISPATCH_NEXT + PUSH r3 DISPATCH_FINISH } -# r2 = [jpc, #1] -(iload,aload,fload) -(astore_0,astore_1,astore_2,astore_3) -{ - DISPATCH_START \seq_len - rsb tmp1, r1, #opc_astore_0 +(fcmpg) fcmpg_vfp { + DISPATCH_START 1 + flds s14, [stack, #8] + flds s15, [stack, #4] DISPATCH_NEXT - rsb tmp2, r2, #0 - ldr tmp2, [locals, tmp2, lsl #2] DISPATCH_NEXT + fcmpes s14, s15 + add stack, stack, #8 + fmstat + mvnmi r3, #0 + bmi 1f + movgt r3, #1 + bgt 1f + fcmps s14, s15 + fmstat + moveq r3, #0 + movne r3, #1 +1: DISPATCH_NEXT DISPATCH_NEXT - str tmp2, [locals, tmp1, lsl #2] + PUSH r3 DISPATCH_FINISH } -# r2 = [jpc, #1] -(iload,aload,fload) -(istore_0,istore_1,istore_2,istore_3) +(dcmpl) dcmpl_vfp { + DISPATCH_START 1 + fldd d6, [stack, #12] + fldd d7, [stack, #4] + DISPATCH_NEXT + DISPATCH_NEXT + fcmped d6, d7 + fmstat + mvnmi r3, #0 + bmi 1f + movgt r3, #1 + bgt 1f + fcmpd d6, d7 + fmstat + moveq r3, #0 + mvnne r3, #0 +1: + add stack, stack, #16 + DISPATCH_NEXT + DISPATCH_NEXT + PUSH r3 + DISPATCH_FINISH +} + +(dcmpg) dcmpg_vfp { + DISPATCH_START 1 + fldd d6, [stack, #12] + fldd d7, [stack, #4] + DISPATCH_NEXT + DISPATCH_NEXT + fcmped d6, d7 + fmstat + mvnmi r3, #0 + bmi 1f + movgt r3, #1 + bgt 1f + fcmpd d6, d7 + fmstat + moveq r3, #0 + movne r3, #1 +1: + add stack, stack, #16 + DISPATCH_NEXT + DISPATCH_NEXT + PUSH r3 + DISPATCH_FINISH +} + +#endif // HW_FP + +#ifdef FAST_BYTECODES + +@############################################################################## +@ ECN: Optimised bytecode pairs +@############################################################################## + +@ --- ECN: load; iaccess ------------------------------------------------------ + +(iload_0,iload_1,iload_2,iload_3) +(iaccess_0,iaccess_1,iaccess_2,iaccess_3) { + rsb lr, r0, #opc_iload_0 + ldrb r2, [jpc, #4] + rsb tmp1, r1, #opc_iaccess_0 + ldrb r3, [jpc, #3] + ldr lr, [locals, lr, lsl #2] + add tmp2, constpool, r2, lsl #12 DISPATCH_START \seq_len - rsb tmp1, r1, #opc_istore_0 + PUSH lr + ldr tmp1, [locals, tmp1, lsl #2] + add tmp2, r3, lsl #4 DISPATCH_NEXT - rsb tmp2, r2, #0 - ldr tmp2, [locals, tmp2, lsl #2] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 DISPATCH_NEXT + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT +.abortentry111: + ldr tmp2, [tmp1, tmp2] DISPATCH_NEXT - str tmp2, [locals, tmp1, lsl #2] + PUSH tmp2 DISPATCH_FINISH } -# r2 = [jpc, #1] -(iload,aload,fload)(astore,istore,fstore) { - ldrb tmp1, [jpc, #3] - rsb tmp2, r2, #0 +(iload,aload,fload) +(iaccess_0,iaccess_1,iaccess_2,iaccess_3) +{ + rsb lr, r2, #0 + ldrb r2, [jpc, #5] + rsb tmp1, r1, #opc_iaccess_0 + ldrb r3, [jpc, #4] + ldr lr, [locals, lr, lsl #2] + add tmp2, constpool, r2, lsl #12 DISPATCH_START \seq_len - rsb tmp1, tmp1, #0 + PUSH lr + ldr tmp1, [locals, tmp1, lsl #2] + add tmp2, r3, lsl #4 DISPATCH_NEXT - ldr tmp2, [locals, tmp2, lsl #2] + SW_NPC cmp tmp1, #0 + SW_NPC beq null_ptr_exception_jpc_3 DISPATCH_NEXT + ldr tmp2, [tmp2, #CP_OFFSET+8] DISPATCH_NEXT +.abortentry112: + ldr tmp2, [tmp1, tmp2] DISPATCH_NEXT - str tmp2, [locals, tmp1, lsl #2] + PUSH tmp2 DISPATCH_FINISH } -# --- ECN: load; const ------------------------------------------------------- +@ --- ECN: load; load --------------------------------------------------------- (aload_0,aload_1,aload_2,aload_3) -(iconst_m1,iconst_0,iconst_1,iconst_2,iconst_3,iconst_4,iconst_5) +(aload_0,aload_1,aload_2,aload_3) { rsb tmp1, r0, #opc_aload_0 DISPATCH_START \seq_len - sub tmp2, r1, #opc_iconst_0 + rsb tmp2, r1, #opc_aload_0 DISPATCH_NEXT ldr tmp1, [locals, tmp1, lsl #2] + ldr tmp2, [locals, tmp2, lsl #2] DISPATCH_NEXT - PUSH tmp1 DISPATCH_NEXT DISPATCH_NEXT - PUSH tmp2 + PUSH tmp2, tmp1 DISPATCH_FINISH } +(aload_0,aload_1,aload_2,aload_3) (iload_0,iload_1,iload_2,iload_3) -(iconst_m1,iconst_0,iconst_1,iconst_2,iconst_3,iconst_4,iconst_5) { - add r0, r0, #opc_iload_0_iconst_N-opc_iload_0 - strb r0, [jpc] - b do_iload_0_iconst_N + rsb tmp1, r0, #opc_aload_0 + DISPATCH_START \seq_len + rsb tmp2, r1, #opc_iload_0 + DISPATCH_NEXT + ldr tmp1, [locals, tmp1, lsl #2] + ldr tmp2, [locals, tmp2, lsl #2] + DISPATCH_NEXT + DISPATCH_NEXT + DISPATCH_NEXT + PUSH tmp2, tmp1 + DISPATCH_FINISH } -# r2 = [jpc, #1] -(iload,aload,fload) -(iconst_m1,iconst_0,iconst_1,iconst_2,iconst_3,iconst_4,iconst_5) +(iload_0,iload_1,iload_2,iload_3) +(aload_0,aload_1,aload_2,aload_3) { - cmp r0, #opc_iload + rsb tmp1, r0, #opc_iload_0 DISPATCH_START \seq_len - sub r3, r1, #opc_iconst_0 - DISPATCH_NEXT - ldr tmp2, [locals, -r2, lsl #2] + rsb tmp2, r1, #opc_aload_0 DISPATCH_NEXT + ldr tmp1, [locals, tmp1, lsl #2] + cmp r0, #opc_igetfield + ldr tmp2, [locals, tmp2, lsl #2] beq 1f +2: DISPATCH_NEXT DISPATCH_NEXT - PUSH2 r3, tmp2 + DISPATCH_NEXT + PUSH tmp2, tmp1 DISPATCH_FINISH 1: - mov tmp1, #opc_iload_iconst_N - strb tmp1, [jpc, #-\seq_len]! - b do_iload_iconst_N + ldrb lr, [jpc, #-1] + add lr, lr, #opc_iaccess_0-opc_aload_0 + strb lr, [jpc, #-1] + b 2b +} + +@ 7 cycles +(iload_0,iload_1,iload_2,iload_3) +(iload_0,iload_1,iload_2,iload_3) +{ + add r0, r0, #opc_iload_0_iload_N-opc_iload_0 + strb r0, [jpc] + b do_fast_iload_N_iload_N } (aload_0,aload_1,aload_2,aload_3) -(bipush) +(iload,aload,fload) { - ldrsb r2, [jpc, #2] - rsb r3, r0, #opc_aload_0 + ldrb r3, [jpc, #2] + rsb tmp1, r0, #opc_aload_0 DISPATCH_START \seq_len + ldr tmp1, [locals, tmp1, lsl #2] + rsb r3, r3, #0 + DISPATCH_NEXT ldr r3, [locals, r3, lsl #2] DISPATCH_NEXT - PUSH2 r2, r3 + DISPATCH_NEXT + DISPATCH_NEXT + PUSH r3, tmp1 DISPATCH_FINISH } (iload_0,iload_1,iload_2,iload_3) -(bipush) +(aload,fload) { - ldrsb r2, [jpc, #2] - rsb r3, r0, #opc_iload_0 + ldrb r3, [jpc, #2] + rsb tmp1, r0, #opc_iload_0 DISPATCH_START \seq_len + ldr tmp1, [locals, tmp1, lsl #2] + rsb r3, r3, #0 + DISPATCH_NEXT ldr r3, [locals, r3, lsl #2] DISPATCH_NEXT - PUSH2 r2, r3 + DISPATCH_NEXT + DISPATCH_NEXT + PUSH r3, tmp1 DISPATCH_FINISH } +(iload_0,iload_1,iload_2,iload_3) +(iload) +{ + add r0, r0, #opc_iload_0_iload-opc_iload_0 + strb r0, [jpc] + b do_fast_iload_N_iload +} + +@ r2 = [jpc, #1] +(iload,aload,fload) (aload_0,aload_1,aload_2,aload_3) -(sipush) { - ldrsb r2, [jpc, #2] @ zero_extendqisi2 - ldrb lr, [jpc, #3] @ zero_extendqisi2 - rsb r3, r0, #opc_aload_0 DISPATCH_START \seq_len - ldr r3, [locals, r3, lsl #2] + rsb tmp2, r1, #opc_aload_0 + DISPATCH_NEXT + rsb tmp1, r2, #0 + ldr tmp2, [locals, tmp2, lsl #2] + cmp r0, #opc_igetfield + DISPATCH_NEXT + beq 1f +2: + ldr tmp1, [locals, tmp1, lsl #2] DISPATCH_NEXT - orr r2, lr, r2, asl #8 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH tmp2, tmp1 DISPATCH_FINISH +1: + ldrb lr, [jpc, #-1] + add lr, lr, #opc_iaccess_0-opc_aload_0 + strb lr, [jpc, #-1] + b 2b } +@ r2 = [jpc, #1] +(aload,fload) (iload_0,iload_1,iload_2,iload_3) -(sipush) { - ldrsb r2, [jpc, #2] @ zero_extendqisi2 - ldrb lr, [jpc, #3] @ zero_extendqisi2 - rsb r3, r0, #opc_iload_0 DISPATCH_START \seq_len - ldr r3, [locals, r3, lsl #2] + rsb tmp2, r1, #opc_iload_0 + DISPATCH_NEXT + rsb tmp1, r2, #0 + ldr tmp2, [locals, tmp2, lsl #2] + DISPATCH_NEXT + ldr tmp1, [locals, tmp1, lsl #2] DISPATCH_NEXT - orr r2, lr, r2, asl #8 DISPATCH_NEXT - PUSH2 r2, r3 + PUSH tmp2, tmp1 DISPATCH_FINISH } -# r2 = [jpc, #1] -(iload,aload,fload)(bipush) { - ldrsb r3, [jpc, #3] - DISPATCH_START \seq_len - ldr lr, [locals, -r2, lsl #2] - DISPATCH_NEXT - PUSH2 r3, lr - DISPATCH_FINISH +@ r2 = [jpc, #1] +(iload) +(iload_0,iload_1,iload_2,iload_3) +{ + mov r0, #opc_iload_iload_N + strb r0, [jpc] + b do_fast_iload_iload_N } -# r2 = [jpc, #1] -(iload,aload,fload)(sipush) { - ldrsb r3, [jpc, #3] - ldrb lr, [jpc, #4] +@ r2 = [jpc, #1] +(aload,fload)(iload,aload,fload) { + ldrb tmp2, [jpc, #3] + rsb tmp1, r2, #0 DISPATCH_START \seq_len - ldr tmp1, [locals, -r2, lsl #2] - orr r3, lr, r3, asl #8 + rsb tmp2, tmp2, #