From theBohemian at gmx.net Wed Apr 1 05:20:33 2009 From: theBohemian at gmx.net (Robert Schuster) Date: Wed, 01 Apr 2009 14:20:33 +0200 Subject: first iceadtea cross-compile patch: disable sanity checks In-Reply-To: <17c6771e0903311327k23566571nf57f6ec40c41509d@mail.gmail.com> References: <49CD8164.7090608@gmx.net> <49CD89C8.7040208@gatech.edu> <49CE50B3.8000107@gmx.net> <17c6771e0903310433s57336e12tef4e5902b8f28a1a@mail.gmail.com> <49D274F8.4050507@gmx.net> <17c6771e0903311327k23566571nf57f6ec40c41509d@mail.gmail.com> Message-ID: <49D35C11.3060408@gmx.net> Hi Andrew, Andrew John Hughes schrieb: >> So my question is. Do you want a separate configure option, that can >> only disable the above mentioned sanity checks and is otherwise >> independent from the CROSS_COMPILATION stuff that is coming? >> > I guess that's what I was aiming at, with all the options necessary > for cross compilation defaulting to on when cross_compiling is set. Ok, I will rework the patch in that way. >> Additionally Matthews was not happy with the former name since it is >> actually not disabling all sanity checks (which the name may imply) but >> only some of them. >> > > My main issue with the current name is the length; my poor fingers! > Maybe there is a happy medium; e.g. --disable-host-specific-checks? The long name was chosen for the reason that it is not complete yet. People should not think they have 100% cross-compilation support when IcedTea6 is released next time. The support is only finished when we are through all the patches that I have in the queue (at least 2-3 to come, maybe more). Regards Robert -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 260 bytes Desc: OpenPGP digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090401/5aade35f/signature.asc From theBohemian at gmx.net Wed Apr 1 05:48:44 2009 From: theBohemian at gmx.net (Robert Schuster) Date: Wed, 01 Apr 2009 14:48:44 +0200 Subject: RFC: Fix usage of INSTALL_ARCH_DIR vs. BUILD_ARCH_DIR Message-ID: <49D362AC.6050307@gmx.net> Hi, this patch is not directly connected to my other cross-compiling patches but is also good for 'cross-compilation'. Some people want to compile OpenJDK using OE for a Geode CPU (i486, i586). They found out that IcedTea's build scripts make some invalid assumptions about the name of some directories in that. From looking at other occurances where "jre/lib/" was used, they all use the INSTALL_ARCH_DIR variable just not the two that are fixed in this patch. Ok, to commit? (Btw: This patch should also be in IcedTea[7]). Regards Robert -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6-installarch-fix.patch Type: text/x-patch Size: 948 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090401/3ef0b913/icedtea6-installarch-fix.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 260 bytes Desc: OpenPGP digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090401/3ef0b913/signature.asc From gnu_andrew at member.fsf.org Wed Apr 1 07:37:16 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 1 Apr 2009 14:37:16 +0000 Subject: first iceadtea cross-compile patch: disable sanity checks In-Reply-To: <49D35C11.3060408@gmx.net> References: <49CD8164.7090608@gmx.net> <49CD89C8.7040208@gatech.edu> <49CE50B3.8000107@gmx.net> <17c6771e0903310433s57336e12tef4e5902b8f28a1a@mail.gmail.com> <49D274F8.4050507@gmx.net> <17c6771e0903311327k23566571nf57f6ec40c41509d@mail.gmail.com> <49D35C11.3060408@gmx.net> Message-ID: <17c6771e0904010737v25ed7642gcd4b15bc72ce94a3@mail.gmail.com> 2009/4/1 Robert Schuster : > Hi Andrew, > > Andrew John Hughes schrieb: >>> So my question is. Do you want a separate configure option, that can >>> only disable the above mentioned sanity checks and is otherwise >>> independent from the CROSS_COMPILATION stuff that is coming? >>> >> I guess that's what I was aiming at, with all the options necessary >> for cross compilation defaulting to on when cross_compiling is set. > Ok, I will rework the patch in that way. > >>> Additionally Matthews was not happy with the former name since it is >>> actually not disabling all sanity checks (which the name may imply) but >>> only some of them. >>> >> >> My main issue with the current name is the length; my poor fingers! >> Maybe there is a happy medium; e.g. --disable-host-specific-checks? > The long name was chosen for the reason that it is not complete yet. > People should not think they have 100% cross-compilation support when > IcedTea6 is released next time. The support is only finished when we are > through all the patches that I have in the queue (at least 2-3 to come, > maybe more). > > Regards > Robert > > Yes, acknowledged. But what I was suggesting is that the changes are available as a bunch of sensibly named options, which default to on when cross-compiling but are available to be forced on for testing. -- 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 Apr 1 08:10:50 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 1 Apr 2009 15:10:50 +0000 Subject: FOSDEM 2009 Recordings Message-ID: <17c6771e0904010810i510f9912ia248a81ee78b9d29@mail.gmail.com> 2009/3/25 Andrew John Hughes : > You can now find Deepak's talk on 'The IcedTea Plugin' here: > > http://www.archive.org/details/fosdem_2009_free_java_the_icedtea_plugin > > Blurb from Deepak (http://fosdem.org/2009/schedule/events/java_icedtea_plugin): > > 'This talk is about the IcedTea Java Web Browser Plugin. > > It will be mostly technical -- starting off with the need for the > plugin and it's history. It will then delve into the elements of > plugin design, and implementation details affecting speed, security > and reliability. > > Finally, it will also cover known limitations, and future plans to fix > those limitations.' > > It's available under the Creative Commons Attribution No-Derivative > license (http://creativecommons.org/licenses/by-nd/2.0/uk/). ?Please > feel free to distribute copies under those terms. > > Thanks to Deepak Bhole for allowing this to be made available. > > If there are any issues with the publication of these talks, please > contact me ASAP. > > More to come in time and with appropriate permissions, > -- > 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 > Robert Schuster's talk on cross-compiling IcedTea is now available. You can find all the talks with links to the slides as well on http://fuseyism.com#movies. -- 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 redhat.com Wed Apr 1 09:08:27 2009 From: aph at redhat.com (Andrew Haley) Date: Wed, 01 Apr 2009 17:08:27 +0100 Subject: New project: getting rid of IcedTea local patches Message-ID: <49D3917B.2010907@redhat.com> We at Red Hat have noticed that the list of IcedTea local patches has been getting large, with some local patches that should have been pushed upstream. Also, some IcedTea patches have been committed to OpenJDK 7 but not OpenJDK 6. So, we're going to have a serious attempt to minimize the number of IcedTea patches. We'll create a Wiki page at icedtea.classpath.org that is a list of the patches, and for every one we're going to discuss whether it should stay IcedTea local, be pushed upstream to OpenJDK, or be deleted altogether. Then we will create OpenJDK bugzilla entries for the patches that we think should be integrated upstream and work with Sun engineers to get that done. I hope that it will be possible to reduce the number of patches to a fraction of what we have at the moment, while improving the quality of the upstream product. This is going to be quite a lot of work, so we'd appreciate help from anyone. I hope this will meet with everyone's approval. Andrew. From gnu_andrew at member.fsf.org Wed Apr 1 09:15:01 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 1 Apr 2009 16:15:01 +0000 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3917B.2010907@redhat.com> References: <49D3917B.2010907@redhat.com> Message-ID: <17c6771e0904010915o7f1355cbv29e75c1e79d4ed2c@mail.gmail.com> 2009/4/1 Andrew Haley : > We at Red Hat have noticed that the list of IcedTea local patches has > been getting large, with some local patches that should have been > pushed upstream. ?Also, some IcedTea patches have been committed to > OpenJDK 7 but not OpenJDK 6. > > So, we're going to have a serious attempt to minimize the number of > IcedTea patches. ?We'll create a Wiki page at icedtea.classpath.org > that is a list of the patches, and for every one we're going to > discuss whether it should stay IcedTea local, be pushed upstream to > OpenJDK, or be deleted altogether. ?Then we will create OpenJDK > bugzilla entries for the patches that we think should be integrated > upstream and work with Sun engineers to get that done. > > I hope that it will be possible to reduce the number of patches to a > fraction of what we have at the moment, while improving the quality of > the upstream product. > > This is going to be quite a lot of work, so we'd appreciate help from > anyone. > > I hope this will meet with everyone's approval. > > Andrew. > Great idea! -- 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 Joe.Darcy at Sun.COM Wed Apr 1 10:26:27 2009 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Wed, 01 Apr 2009 10:26:27 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3917B.2010907@redhat.com> References: <49D3917B.2010907@redhat.com> Message-ID: <49D3A3C3.9090104@sun.com> Andrew Haley wrote: > We at Red Hat have noticed that the list of IcedTea local patches has > been getting large, with some local patches that should have been > pushed upstream. Also, some IcedTea patches have been committed to > OpenJDK 7 but not OpenJDK 6. > > So, we're going to have a serious attempt to minimize the number of > IcedTea patches. We'll create a Wiki page at icedtea.classpath.org > that is a list of the patches, and for every one we're going to > discuss whether it should stay IcedTea local, be pushed upstream to > OpenJDK, or be deleted altogether. Then we will create OpenJDK > bugzilla entries for the patches that we think should be integrated > upstream and work with Sun engineers to get that done. > > I hope that it will be possible to reduce the number of patches to a > fraction of what we have at the moment, while improving the quality of > the upstream product. > > This is going to be quite a lot of work, so we'd appreciate help from > anyone. > > I hope this will meet with everyone's approval. > Sounds good to me! -Joe From Kelly.Ohair at Sun.COM Wed Apr 1 10:47:29 2009 From: Kelly.Ohair at Sun.COM (Kelly O'Hair) Date: Wed, 01 Apr 2009 10:47:29 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3917B.2010907@redhat.com> References: <49D3917B.2010907@redhat.com> Message-ID: <49D3A8B1.4040201@sun.com> Andrew Haley wrote: > We at Red Hat have noticed that the list of IcedTea local patches has > been getting large, with some local patches that should have been > pushed upstream. Also, some IcedTea patches have been committed to > OpenJDK 7 but not OpenJDK 6. > > So, we're going to have a serious attempt to minimize the number of > IcedTea patches. We'll create a Wiki page at icedtea.classpath.org > that is a list of the patches, and for every one we're going to > discuss whether it should stay IcedTea local, be pushed upstream to > OpenJDK, or be deleted altogether. Then we will create OpenJDK > bugzilla entries for the patches that we think should be integrated > upstream and work with Sun engineers to get that done. > > I hope that it will be possible to reduce the number of patches to a > fraction of what we have at the moment, while improving the quality of > the upstream product. > > This is going to be quite a lot of work, so we'd appreciate help from > anyone. > > I hope this will meet with everyone's approval. > > Andrew. Sounds great. I can certainly help out with any build related (makefiles etc.) changes. -kto From gnu_andrew at member.fsf.org Wed Apr 1 10:55:11 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 1 Apr 2009 17:55:11 +0000 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3A8B1.4040201@sun.com> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> Message-ID: <17c6771e0904011055nfa6a0a5pec140dd568cc63e0@mail.gmail.com> 2009/4/1 Kelly O'Hair : > Andrew Haley wrote: >> >> We at Red Hat have noticed that the list of IcedTea local patches has >> been getting large, with some local patches that should have been >> pushed upstream. ?Also, some IcedTea patches have been committed to >> OpenJDK 7 but not OpenJDK 6. >> >> So, we're going to have a serious attempt to minimize the number of >> IcedTea patches. ?We'll create a Wiki page at icedtea.classpath.org >> that is a list of the patches, and for every one we're going to >> discuss whether it should stay IcedTea local, be pushed upstream to >> OpenJDK, or be deleted altogether. ?Then we will create OpenJDK >> bugzilla entries for the patches that we think should be integrated >> upstream and work with Sun engineers to get that done. >> >> I hope that it will be possible to reduce the number of patches to a >> fraction of what we have at the moment, while improving the quality of >> the upstream product. >> >> This is going to be quite a lot of work, so we'd appreciate help from >> anyone. >> >> I hope this will meet with everyone's approval. >> >> Andrew. > > Sounds great. > > I can certainly help out with any build related (makefiles etc.) > changes. > > -kto > > Good, because to my knowledge, those form the majority :) However, my guess would also be that some require extensive reworking to be generally acceptable (e.g. providing the option to build using system libraries rather than forcing it). -- 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 redhat.com Wed Apr 1 10:58:09 2009 From: aph at redhat.com (Andrew Haley) Date: Wed, 01 Apr 2009 18:58:09 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <17c6771e0904011055nfa6a0a5pec140dd568cc63e0@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <17c6771e0904011055nfa6a0a5pec140dd568cc63e0@mail.gmail.com> Message-ID: <49D3AB31.200@redhat.com> Andrew John Hughes wrote: > 2009/4/1 Kelly O'Hair : >> >> I can certainly help out with any build related (makefiles etc.) >> changes. > > Good, because to my knowledge, those form the majority :) > However, my guess would also be that some require extensive reworking > to be generally acceptable (e.g. providing the option to build using > system libraries rather than forcing it). Those *may* be exactly the kind of patches we want to keep in IcedTea. We'll have to see. Andrew. From gnu_andrew at member.fsf.org Wed Apr 1 11:03:24 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 1 Apr 2009 18:03:24 +0000 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <17c6771e0904011055nfa6a0a5pec140dd568cc63e0@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <17c6771e0904011055nfa6a0a5pec140dd568cc63e0@mail.gmail.com> Message-ID: <17c6771e0904011103j78adad05h59960f37ed2c32a2@mail.gmail.com> 2009/4/1 Andrew John Hughes : > 2009/4/1 Kelly O'Hair : >> Andrew Haley wrote: >>> >>> We at Red Hat have noticed that the list of IcedTea local patches has >>> been getting large, with some local patches that should have been >>> pushed upstream. ?Also, some IcedTea patches have been committed to >>> OpenJDK 7 but not OpenJDK 6. >>> >>> So, we're going to have a serious attempt to minimize the number of >>> IcedTea patches. ?We'll create a Wiki page at icedtea.classpath.org >>> that is a list of the patches, and for every one we're going to >>> discuss whether it should stay IcedTea local, be pushed upstream to >>> OpenJDK, or be deleted altogether. ?Then we will create OpenJDK >>> bugzilla entries for the patches that we think should be integrated >>> upstream and work with Sun engineers to get that done. >>> >>> I hope that it will be possible to reduce the number of patches to a >>> fraction of what we have at the moment, while improving the quality of >>> the upstream product. >>> >>> This is going to be quite a lot of work, so we'd appreciate help from >>> anyone. >>> >>> I hope this will meet with everyone's approval. >>> >>> Andrew. >> >> Sounds great. >> >> I can certainly help out with any build related (makefiles etc.) >> changes. >> >> -kto >> >> > > Good, because to my knowledge, those form the majority :) > However, my guess would also be that some require extensive reworking > to be generally acceptable (e.g. providing the option to build using > system libraries rather than forcing it). > -- > 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 > On the other hand, there is some low-hanging fruit. Andrew Haley reminded me of this patch earlier today: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6781583 which went into OpenJDK7. The patch itself should be trivial to approve, given it has already been through the process once. The main issue is that it relies on OpenJDK6 being updated to hs14. Is there any news on this and of the public stable branch of this version? As to committing, do those on the OpenJDK commit list have access to all repositories (given patch approval obviously) or is it restricted in some way? As myself, Gary and Andrew Haley all are now on this list, it would be good to start the process of committing patches ourself once approved. 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 gnu_andrew at member.fsf.org Wed Apr 1 11:04:21 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 1 Apr 2009 18:04:21 +0000 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3AB31.200@redhat.com> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <17c6771e0904011055nfa6a0a5pec140dd568cc63e0@mail.gmail.com> <49D3AB31.200@redhat.com> Message-ID: <17c6771e0904011104r392f02b0lac2d1be680ba7f8a@mail.gmail.com> 2009/4/1 Andrew Haley : > Andrew John Hughes wrote: >> 2009/4/1 Kelly O'Hair : >>> >>> I can certainly help out with any build related (makefiles etc.) >>> changes. >> >> Good, because to my knowledge, those form the majority :) >> However, my guess would also be that some require extensive reworking >> to be generally acceptable (e.g. providing the option to build using >> system libraries rather than forcing it). > > Those *may* be exactly the kind of patches we want to keep in IcedTea. > We'll have to see. > > Andrew. > > Yes, maybe I'm being a bit excessive/over-enthusiastic in wanting to get everything upstream... :) -- 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 Christian.Thalinger at Sun.COM Wed Apr 1 11:05:53 2009 From: Christian.Thalinger at Sun.COM (Christian Thalinger) Date: Wed, 01 Apr 2009 11:05:53 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3A8B1.4040201@sun.com> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> Message-ID: <1238609153.4495.31.camel@localhost.localdomain> On Wed, 2009-04-01 at 10:47 -0700, Kelly O'Hair wrote: > I can certainly help out with any build related (makefiles etc.) > changes. Ohh, that reminds me of this one: https://bugs.openjdk.java.net/show_bug.cgi?id=100011 Because one change touches a jdk Makefile, I didn't push yet. Either someone from the jdk team approves the change and I push it through the hotspot-comp gate or the changes go in as two different changesets. -- Christian From Kelly.Ohair at Sun.COM Wed Apr 1 11:33:40 2009 From: Kelly.Ohair at Sun.COM (Kelly O'Hair) Date: Wed, 01 Apr 2009 11:33:40 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <1238609153.4495.31.camel@localhost.localdomain> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <1238609153.4495.31.camel@localhost.localdomain> Message-ID: <49D3B384.2010609@sun.com> Christian Thalinger wrote: > On Wed, 2009-04-01 at 10:47 -0700, Kelly O'Hair wrote: >> I can certainly help out with any build related (makefiles etc.) >> changes. > > Ohh, that reminds me of this one: > > https://bugs.openjdk.java.net/show_bug.cgi?id=100011 > > Because one change touches a jdk Makefile, I didn't push yet. Either > someone from the jdk team approves the change and I push it through the > hotspot-comp gate or the changes go in as two different changesets. > > -- Christian > The changes to the jdk files look fine. One question though, does the name "CORE_BUILD" have a meaning to the JDK, or just the VM? Just wondering if a "VM_CORE_BUILD" or "HOTSPOT_CORE_BUILD" might be a better name. Not a big deal. (At some point we should probably be documenting the make variables that form the build interface, or the ones we need to preserve in terms of spelling and meaning. A daunting task I know. :^{ ) If you have changesets I can send them through the jdk7/build forest, with the appropriate jdk test builds (the changes look independent, so should be fine) or you can send them through the hotspot-comp forest. Although you should make sure the hotspot integrators are aware that you have made changes to non-hotspot repositories, just to make sure they don't forget to do a full forest push. -kto From Kelly.Ohair at Sun.COM Wed Apr 1 11:36:06 2009 From: Kelly.Ohair at Sun.COM (Kelly O'Hair) Date: Wed, 01 Apr 2009 11:36:06 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <17c6771e0904011103j78adad05h59960f37ed2c32a2@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <17c6771e0904011055nfa6a0a5pec140dd568cc63e0@mail.gmail.com> <17c6771e0904011103j78adad05h59960f37ed2c32a2@mail.gmail.com> Message-ID: <49D3B416.4020907@sun.com> Andrew John Hughes wrote: > 2009/4/1 Andrew John Hughes : >> 2009/4/1 Kelly O'Hair : >>> Andrew Haley wrote: >>>> We at Red Hat have noticed that the list of IcedTea local patches has >>>> been getting large, with some local patches that should have been >>>> pushed upstream. Also, some IcedTea patches have been committed to >>>> OpenJDK 7 but not OpenJDK 6. >>>> >>>> So, we're going to have a serious attempt to minimize the number of >>>> IcedTea patches. We'll create a Wiki page at icedtea.classpath.org >>>> that is a list of the patches, and for every one we're going to >>>> discuss whether it should stay IcedTea local, be pushed upstream to >>>> OpenJDK, or be deleted altogether. Then we will create OpenJDK >>>> bugzilla entries for the patches that we think should be integrated >>>> upstream and work with Sun engineers to get that done. >>>> >>>> I hope that it will be possible to reduce the number of patches to a >>>> fraction of what we have at the moment, while improving the quality of >>>> the upstream product. >>>> >>>> This is going to be quite a lot of work, so we'd appreciate help from >>>> anyone. >>>> >>>> I hope this will meet with everyone's approval. >>>> >>>> Andrew. >>> Sounds great. >>> >>> I can certainly help out with any build related (makefiles etc.) >>> changes. >>> >>> -kto >>> >>> >> Good, because to my knowledge, those form the majority :) >> However, my guess would also be that some require extensive reworking >> to be generally acceptable (e.g. providing the option to build using >> system libraries rather than forcing it). >> -- >> 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 >> > > On the other hand, there is some low-hanging fruit. Andrew Haley > reminded me of this patch earlier today: > > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6781583 > > which went into OpenJDK7. The patch itself should be trivial to > approve, given it has already been through the process once. The main > issue is that it relies on OpenJDK6 being updated to hs14. Is there > any news on this and of the public stable branch of this version? > I made sure there is a '6-open' version of this bug. Not sure what the state of hs14 in OpenJDK6 is, but if hs14 is 'done' we may need to apply this patch to OpenJDK6's hotspot, making it a hs14+ kind of. I'll pass this decision onto Joe. ;^) -kto > As to committing, do those on the OpenJDK commit list have access to > all repositories (given patch approval obviously) or is it restricted > in some way? As myself, Gary and Andrew Haley all are now on this > list, it would be good to start the process of committing patches > ourself once approved. > > Thanks, From gnu_andrew at member.fsf.org Wed Apr 1 12:27:18 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 1 Apr 2009 19:27:18 +0000 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3B416.4020907@sun.com> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <17c6771e0904011055nfa6a0a5pec140dd568cc63e0@mail.gmail.com> <17c6771e0904011103j78adad05h59960f37ed2c32a2@mail.gmail.com> <49D3B416.4020907@sun.com> Message-ID: <17c6771e0904011227v201373cbw6bbc8e218fcb2d19@mail.gmail.com> 2009/4/1 Kelly O'Hair : > > Andrew John Hughes wrote: >> >> 2009/4/1 Andrew John Hughes : >>> >>> 2009/4/1 Kelly O'Hair : >>>> >>>> Andrew Haley wrote: >>>>> >>>>> We at Red Hat have noticed that the list of IcedTea local patches has >>>>> been getting large, with some local patches that should have been >>>>> pushed upstream. ?Also, some IcedTea patches have been committed to >>>>> OpenJDK 7 but not OpenJDK 6. >>>>> >>>>> So, we're going to have a serious attempt to minimize the number of >>>>> IcedTea patches. ?We'll create a Wiki page at icedtea.classpath.org >>>>> that is a list of the patches, and for every one we're going to >>>>> discuss whether it should stay IcedTea local, be pushed upstream to >>>>> OpenJDK, or be deleted altogether. ?Then we will create OpenJDK >>>>> bugzilla entries for the patches that we think should be integrated >>>>> upstream and work with Sun engineers to get that done. >>>>> >>>>> I hope that it will be possible to reduce the number of patches to a >>>>> fraction of what we have at the moment, while improving the quality of >>>>> the upstream product. >>>>> >>>>> This is going to be quite a lot of work, so we'd appreciate help from >>>>> anyone. >>>>> >>>>> I hope this will meet with everyone's approval. >>>>> >>>>> Andrew. >>>> >>>> Sounds great. >>>> >>>> I can certainly help out with any build related (makefiles etc.) >>>> changes. >>>> >>>> -kto >>>> >>>> >>> Good, because to my knowledge, those form the majority :) >>> However, my guess would also be that some require extensive reworking >>> to be generally acceptable (e.g. providing the option to build using >>> system libraries rather than forcing it). >>> -- >>> 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 >>> >> >> On the other hand, there is some low-hanging fruit. ?Andrew Haley >> reminded me of this patch earlier today: >> >> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6781583 >> >> which went into OpenJDK7. ?The patch itself should be trivial to >> approve, given it has already been through the process once. ?The main >> issue is that it relies on OpenJDK6 being updated to hs14. ?Is there >> any news on this and of the public stable branch of this version? >> > > I made sure there is a '6-open' version of this bug. > Not sure what the state of hs14 in OpenJDK6 is, but if hs14 is > 'done' we may need to apply this patch to OpenJDK6's hotspot, > making it a hs14+ kind of. > I'll pass this decision onto Joe. ;^) > Thanks. To my knowledge, OpenJDK6 is still on hs11. With IcedTea6 (which builds against OpenJDK6 b14), we do an rm -rf hotspot and download the last hs14 changeset to use instead (fc6a5ae3fef5) from http://hg.openjdk.java.net/jdk7/hotspot/hotspot. We then apply three patches to the newly acquired b14 hotspot which achieve the same as the one attached to that bug report (these were developed independently, two of them sometime before that changeset). > -kto > >> As to committing, do those on the OpenJDK commit list have access to >> all repositories (given patch approval obviously) or is it restricted >> in some way? ?As myself, Gary and Andrew Haley all are now on this >> list, it would be good to start the process of committing patches >> ourself once approved. >> >> 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 omajid at redhat.com Wed Apr 1 14:19:28 2009 From: omajid at redhat.com (Omair Majid) Date: Wed, 01 Apr 2009 17:19:28 -0400 Subject: [RFC] Fix sun/tools/jrunscriptTest.sh test Message-ID: <49D3DA60.4080201@redhat.com> Hi, The sun/tools/jrunscriptTest.sh test checks if the javascript interpreter works properly. This test passes if there is no javascript support in the current JDK. Otherwise, it checks that jrunscript works properly and the expected output matches the actual output. The issue is that the output varies depending on the version of Rhino [1]. The bundled version of rhino with Sun's JDK produces slightly different output than the latest upstream version of rhino: 'i = 2 + 5' evaluates to '7' using Rhino 1.7R2 and to '7.0' with the version of rhino bundled with Sun's JDK. Simply changing the expected output will cause the test to fail with one or the other JDK. The attached patch replaces jrunscriptTest.sh with Testjrunscript.java. This test parses the output produced by jrunscript and converts all numbers to doubles to try to match them. This should make the test pass with older and newer versions of rhino and should be ok for upstream inclusion. Any objections/suggestions/fixes? Cheers, Omair [1] http://www.mozilla.org/rhino/ -------------- next part -------------- A non-text attachment was scrubbed... Name: jrunscript.patch Type: text/x-patch Size: 13948 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090401/96932893/jrunscript.patch From xerxes at zafena.se Wed Apr 1 15:19:44 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 02 Apr 2009 00:19:44 +0200 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero In-Reply-To: <49D143B2.80007@gmx.net> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D143B2.80007@gmx.net> Message-ID: <49D3E880.8090800@zafena.se> Robert Schuster skrev: > Hi Andrew, > > Andrew Haley schrieb: > >> Definitely; we really don't want a function call just do do an atomic >> cmpxchg. >> > That is why I opted for enabling it only for the arches that really need > it by using #ifdef. > > Before I start prepare a patch adding lots of #ifdefs all over sharkBuilder for all kinds of architectures, i would like to ask if it would be better to do this instead: I consider implementing a new configure option say --enable-shark-atomic-reroute that can enable or disable this rerouting thus then we only needs to add one #ifdef SHARK_LLVM_ATOMIC_REROUTE around the parts that i patch in. My thinking is that it should be easy to add new zero/shark architectures without having to update sharkBuilder at all. configure should be made to set this to be enabled for all zero architectures that we know needing it. >> This is really just a workaround for an llvm bug, and hopefully >> it'll soon go away. >> > Do you know more than me? > > The 'bug' is actually a missing feature and I don't see someone working > on this. I tried fixing it myself but it will take me a while until > understand how to use llvm's tablegen syntax to describe the generation > of a series of instructions for the compiler Found this great google-find: http://markmail.org/message/73owc5nrvsbmrhes It is the mail correspondence when Gary implemented the atomic intrinsics in llvm for PPC. Great work Gary! Cheers, and have a great day. Xerxes From theBohemian at gmx.net Wed Apr 1 16:53:13 2009 From: theBohemian at gmx.net (Robert Schuster) Date: Thu, 02 Apr 2009 01:53:13 +0200 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero In-Reply-To: <49D3E880.8090800@zafena.se> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D143B2.80007@gmx.net> <49D3E880.8090800@zafena.se> Message-ID: <49D3FE69.2030007@gmx.net> Hi Xerxes, Andrew, Gary, Xerxes R?nby schrieb: >> The 'bug' is actually a missing feature and I don't see someone working >> on this. I tried fixing it myself but it will take me a while until >> understand how to use llvm's tablegen syntax to describe the generation >> of a series of instructions for the compiler > Found this great google-find: http://markmail.org/message/73owc5nrvsbmrhes > It is the mail correspondence when Gary implemented the atomic > intrinsics in llvm for PPC. > Great work Gary! very cool. With this correspondence I can understand the approach taken for PPC much easier. While it has been modified since Gary implemented it, there is still the approach with the pseudo instruction. For the first time I got llc to properly decode the cmp_swap intrinsic. The generated code below is nothing but working but the result is more than what I had last week: .text .globl test_compare_and_swap .align 2 test_compare_and_swap: sub sp, sp, #4 str lr, [sp] mov r0, #4 bl malloc mov r3, #200 mov r2, #100 @ ATOMIC_CMP_SWAP_I32 PSEUDO! .LBB1_1: @ return ldr lr, [sp] add sp, sp, #4 bx lr .size test_compare_and_swap, .-test_compare_and_swap Regards Robert -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 260 bytes Desc: OpenPGP digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090402/98b7be10/signature.asc From Christian.Thalinger at Sun.COM Wed Apr 1 22:07:20 2009 From: Christian.Thalinger at Sun.COM (Christian Thalinger) Date: Thu, 02 Apr 2009 07:07:20 +0200 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3B384.2010609@sun.com> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <1238609153.4495.31.camel@localhost.localdomain> <49D3B384.2010609@sun.com> Message-ID: <1238648840.3168.19.camel@localhost.localdomain> On Wed, 2009-04-01 at 11:33 -0700, Kelly O'Hair wrote: > The changes to the jdk files look fine. > One question though, does the name "CORE_BUILD" have a meaning to the > JDK, or just the VM? Just wondering if a "VM_CORE_BUILD" or > "HOTSPOT_CORE_BUILD" might be a better name. Not a big deal. I don't know, but maybe Gary does... > If you have changesets I can send them through the jdk7/build forest, > with the appropriate jdk test builds (the changes look independent, > so should be fine) or you can send them through the hotspot-comp forest. > Although you should make sure the hotspot integrators > are aware that you have made changes to non-hotspot repositories, just > to make sure they don't forget to do a full forest push. I see. Maybe you should do the push :-) Should I prepare a changeset and send it over to you? -- Christian From langel at redhat.com Thu Apr 2 06:48:16 2009 From: langel at redhat.com (Lillian Angel) Date: Thu, 02 Apr 2009 13:48:16 +0000 Subject: changeset in /hg/icedtea6: 2009-04-02 Lillian Angel changeset ba7703f67b22 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ba7703f67b22 description: 2009-04-02 Lillian Angel * patches/icedtea-lcms.patch: Updated with most recent security fixes. diffstat: 2 files changed, 216 insertions(+), 155 deletions(-) ChangeLog | 4 patches/icedtea-lcms.patch | 367 +++++++++++++++++++++++++------------------- diffs (truncated from 923 to 500 lines): diff -r 6a51f2c4db71 -r ba7703f67b22 ChangeLog --- a/ChangeLog Tue Mar 31 17:28:50 2009 -0400 +++ b/ChangeLog Thu Apr 02 09:48:22 2009 -0400 @@ -1,3 +1,7 @@ 2009-03-31 Omair Majid + + * patches/icedtea-lcms.patch: Updated with most recent security fixes. + 2009-03-31 Omair Majid * test/jtreg/excludelist.jdk.jtx: Revert previous change. diff -r 6a51f2c4db71 -r ba7703f67b22 patches/icedtea-lcms.patch --- a/patches/icedtea-lcms.patch Tue Mar 31 17:28:50 2009 -0400 +++ b/patches/icedtea-lcms.patch Thu Apr 02 09:48:22 2009 -0400 @@ -1,6 +1,6 @@ diff -bBruN openjdkold/jdk/src/share/nat -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2008-11-25 04:06:03.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2009-03-24 14:11:33.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2008-11-25 04:06:03.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -79,9 +79,9 @@ diff -bBruN openjdkold/jdk/src/share/nat } -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2008-11-25 04:06:03.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2009-03-24 14:16:55.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2008-11-25 04:06:03.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -118,9 +118,9 @@ diff -bBruN openjdkold/jdk/src/share/nat #else VEC3divK(&tmp, (LPVEC3) &lpMod -> WP, lpMod->WP.Y); MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &tmp); -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2008-11-25 04:06:03.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2009-03-24 14:17:09.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2008-11-25 04:06:03.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -285,8 +285,6 @@ diff -bBruN openjdkold/jdk/src/share/nat + const char *id; + WRITEMODE as; + } PROPERTY; -+ -+static PROPERTY PredefinedProperties[] = { - "NUMBER_OF_FIELDS", // Required - NUMBER OF FIELDS - "NUMBER_OF_SETS", // Required - NUMBER OF SETS @@ -299,6 +297,9 @@ diff -bBruN openjdkold/jdk/src/share/nat - "MANUFACTURE", // Some broken Fuji targets does store this value - "PROD_DATE", // Identifies year and month of production of the target in the form yyyy:mm. - "SERIAL", // Uniquely identifies individual physical target. ++static PROPERTY PredefinedProperties[] = { + +- "MATERIAL", // Identifies the material on which the target was produced using a code + {"NUMBER_OF_FIELDS", WRITE_UNCOOKED}, // Required - NUMBER OF FIELDS + {"NUMBER_OF_SETS", WRITE_UNCOOKED}, // Required - NUMBER OF SETS + {"ORIGINATOR", WRITE_STRINGIFY}, // Required - Identifies the specific system, organization or individual that created the data file. @@ -310,8 +311,7 @@ diff -bBruN openjdkold/jdk/src/share/nat + {"MANUFACTURE", WRITE_STRINGIFY}, // Some broken Fuji targets does store this value + {"PROD_DATE", WRITE_STRINGIFY}, // Identifies year and month of production of the target in the form yyyy:mm. + {"SERIAL", WRITE_STRINGIFY}, // Uniquely identifies individual physical target. - -- "MATERIAL", // Identifies the material on which the target was produced using a code ++ + {"MATERIAL", WRITE_STRINGIFY}, // Identifies the material on which the target was produced using a code // uniquely identifying th e material. This is intend ed to be used for IT8.7 // physical targets only (i.e . IT8.7/1 a nd IT8.7/2). @@ -337,8 +337,7 @@ diff -bBruN openjdkold/jdk/src/share/nat - // measurement. Allowed values are ?black?, ?white?, or "na". + {"SAMPLE_BACKING", WRITE_STRINGIFY}, // Identifies the backing material used behind the sample during + // measurement. Allowed values are ?black?, ?white?, or {"na". - -- "CHISQ_DOF" // Degrees of freedom associated with the Chi squared statistic ++ + {"CHISQ_DOF", WRITE_STRINGIFY}, // Degrees of freedom associated with the Chi squared statistic + +// new in recent specs: @@ -372,7 +371,8 @@ diff -bBruN openjdkold/jdk/src/share/nat + {"TARGET_TYPE", WRITE_STRINGIFY}, // The type of target being measured, e.g. IT8.7/1, IT8.7/3, user defined, etc. + + {"COLORANT", WRITE_STRINGIFY}, // Identifies the colorant(s) used in creating the target. -+ + +- "CHISQ_DOF" // Degrees of freedom associated with the Chi squared statistic + {"TABLE_DESCRIPTOR", WRITE_STRINGIFY}, // Describes the purpose or contents of a data table. + + {"TABLE_NAME", WRITE_STRINGIFY} // Provides a short name for a data table. @@ -408,7 +408,7 @@ diff -bBruN openjdkold/jdk/src/share/nat "STDEV_B", // Standard deviation of b* "STDEV_DE", // Standard deviation of CIE dE "CHI_SQD_PAR"}; // The average of the standard deviations of L*, a* and b*. It is -@@ -397,9 +458,13 @@ +@@ -397,57 +458,119 @@ #define NUMPREDEFINEDSAMPLEID (sizeof(PredefinedSampleID)/sizeof(char *)) @@ -422,8 +422,6 @@ diff -bBruN openjdkold/jdk/src/share/nat +LCMSBOOL isseparator(int c) { return (c == ' ') || (c == '\t') || (c == '\r'); - } -@@ -405,49 +470,107 @@ } // Checks whatever if c is a valid identifier char @@ -494,7 +492,7 @@ diff -bBruN openjdkold/jdk/src/share/nat + return TRUE; +} + - ++ +// Make sure no exploit is being even tried + +static @@ -506,7 +504,7 @@ diff -bBruN openjdkold/jdk/src/share/nat + return str; +} + -+ + +// Syntax error static -BOOL SynError(LPIT8 it8, const char *Txt, ...) @@ -591,18 +589,18 @@ diff -bBruN openjdkold/jdk/src/share/nat + if(_cmsMakePath(it8->str, it8->FileStack[it8->IncludeSP]->FileName, FileNest->FileName) == FALSE) + { + SynError(it8, "File path too long"); + return; + } + +- it8 -> Stream[++it8 -> IncludeSP] = IncludeFile; ++ FileNest->Stream = fopen(FileNest->FileName, "rt"); ++ if (FileNest->Stream == NULL) { ++ ++ SynError(it8, "File %s not found", FileNest->FileName); + return; + } -+ -+ FileNest->Stream = fopen(FileNest->FileName, "rt"); -+ if (FileNest->Stream == NULL) { -+ -+ SynError(it8, "File %s not found", FileNest->FileName); - return; - } + it8->IncludeSP++; - -- it8 -> Stream[++it8 -> IncludeSP] = IncludeFile; ++ it8 ->ch = ' '; InSymbol(it8); } @@ -1564,9 +1562,9 @@ diff -bBruN openjdkold/jdk/src/share/nat void LCMSEXPORT cmsIT8DefineDblFormat(LCMSHANDLE hIT8, const char* Formatter) { LPIT8 it8 = (LPIT8) hIT8; -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2009-03-24 14:17:18.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1592,9 +1590,9 @@ diff -bBruN openjdkold/jdk/src/share/nat + + + -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2009-03-24 14:17:24.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1624,9 +1622,9 @@ diff -bBruN openjdkold/jdk/src/share/nat strcat(Buffer1, Buffer2); MessageBox(NULL, Buffer1, "Little cms", MB_OK|MB_ICONSTOP|MB_TASKMODAL); -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2009-03-24 14:17:32.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1771,9 +1769,9 @@ diff -bBruN openjdkold/jdk/src/share/nat if (cmsIsLinear(Table, nEntries)) return FALSE; // Nothing to do -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2009-03-24 14:17:50.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1875,9 +1873,9 @@ diff -bBruN openjdkold/jdk/src/share/nat } -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2009-03-24 14:17:59.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1914,9 +1912,9 @@ diff -bBruN openjdkold/jdk/src/share/nat f = ((Value - b) / a); -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2009-03-24 14:18:22.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1964,23 +1962,23 @@ diff -bBruN openjdkold/jdk/src/share/nat + if (len == 0) { + return 0; + } - -- if (ResData -> Pointer + len > ResData -> Size){ ++ + if (len / size != count) { + cmsSignalError(LCMS_ERRC_ABORTED, "Read from memory error. Integer overflow with count / size."); + return 0; + } - -- len = (ResData -> Size - ResData -> Pointer); -- cmsSignalError(LCMS_ERRC_WARNING, "Read from memory error. Got %d bytes, block should be of %d bytes", len * size, count * size); ++ + if (extent < len || extent < ResData -> Pointer) { + cmsSignalError(LCMS_ERRC_ABORTED, "Read from memory error. Integer overflow with len."); + return 0; + } -+ + +- if (ResData -> Pointer + len > ResData -> Size){ + if (ResData -> Pointer + len > ResData -> Size) { -+ len = (ResData -> Size - ResData -> Pointer); + len = (ResData -> Size - ResData -> Pointer); +- cmsSignalError(LCMS_ERRC_WARNING, "Read from memory error. Got %d bytes, block should be of %d bytes", len * size, count * size); +- + cmsSignalError(LCMS_ERRC_ABORTED, "Read from memory error. Got %d bytes, block should be of %d bytes", len * size, count * size); + return 0; } @@ -2293,7 +2291,7 @@ diff -bBruN openjdkold/jdk/src/share/nat _cmsInitTag(Icc, sig, sizeof(cmsNAMEDCOLORLIST) + (nc ->nColors - 1) * sizeof(cmsNAMEDCOLOR), nc); - return FALSE; + return TRUE; - } ++} + + +LCMSBOOL LCMSEXPORT _cmsAddChromaticAdaptationTag(cmsHPROFILE hProfile, icTagSignature sig, const cmsCIEXYZ* mat) @@ -2303,12 +2301,12 @@ diff -bBruN openjdkold/jdk/src/share/nat + _cmsInitTag(Icc, sig, 3*sizeof(cmsCIEXYZ), mat); + return TRUE; + -+} -+ -+ -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2009-03-24 14:18:32.000000000 -0400 + } ++ ++ +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -2476,7 +2474,7 @@ diff -bBruN openjdkold/jdk/src/share/nat NewLUT -> T = PtrW; NewLUT -> Tsize = (unsigned int) (nTabSize * sizeof(WORD)); -@@ -589,12 +628,12 @@ +@@ -589,25 +628,37 @@ *PtrW++ = TO16_TAB(Temp[i]); } @@ -2488,10 +2486,6 @@ diff -bBruN openjdkold/jdk/src/share/nat NewLUT ->Tsize = 0; - NewLUT -> wFlags &= ~LUT_HAS3DGRID; + NewLUT ->wFlags &= ~LUT_HAS3DGRID; - } - - -@@ -598,16 +637,28 @@ } @@ -2985,14 +2979,15 @@ diff -bBruN openjdkold/jdk/src/share/nat - case icSigLut8Type: ReadLUT8(Icc, NewLUT, sig); break; - case icSigLut16Type: ReadLUT16(Icc, NewLUT); break; +- +- case icSiglutAtoBType: ReadLUT_A2B(Icc, NewLUT, offset, sig); break; +- case icSiglutBtoAType: ReadLUT_B2A(Icc, NewLUT, offset, sig); break; + case icSigLut8Type: if (!ReadLUT8(Icc, NewLUT, sig)) { + cmsFreeLUT(NewLUT); + return NULL; + } + break; - -- case icSiglutAtoBType: ReadLUT_A2B(Icc, NewLUT, offset, sig); break; -- case icSiglutBtoAType: ReadLUT_B2A(Icc, NewLUT, offset, sig); break; ++ + case icSigLut16Type: if (!ReadLUT16(Icc, NewLUT)) { + cmsFreeLUT(NewLUT); + return NULL; @@ -4284,9 +4279,9 @@ diff -bBruN openjdkold/jdk/src/share/nat - return TRUE; -} - -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2009-03-24 14:18:49.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -4442,9 +4437,9 @@ diff -bBruN openjdkold/jdk/src/share/nat &Lut -> In16params); Lut ->wFlags &= ~LUT_HASTL1; } -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c 2009-03-24 14:19:12.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -4505,9 +4500,9 @@ diff -bBruN openjdkold/jdk/src/share/nat } -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c 2009-03-24 14:19:17.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -4569,9 +4564,9 @@ diff -bBruN openjdkold/jdk/src/share/nat { MAT3 m, a_1; -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2009-03-24 14:19:23.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -4630,9 +4625,9 @@ diff -bBruN openjdkold/jdk/src/share/nat { _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2009-03-24 14:19:30.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2009-03-26 15:13:30.000000000 -0400 @@ -28,7 +28,7 @@ // file: // @@ -4814,9 +4809,9 @@ diff -bBruN openjdkold/jdk/src/share/nat break; default:; -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2009-03-24 14:19:46.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -4826,9 +4821,9 @@ diff -bBruN openjdkold/jdk/src/share/nat // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the "Software"), -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2009-03-24 14:19:55.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -5004,14 +4999,14 @@ diff -bBruN openjdkold/jdk/src/share/nat - if (lIsAbsolute) { + cmsCIEXYZ White; -+ + +- // For absolute colorimetric intent, do nothing + cmsTakeMediaWhitePoint(&White, hProfile); -- // For absolute colorimetric intent, do nothing +- Writef(m, "%% Absolute colorimetric -- no transformation\n" + Writef(m,"/MatrixPQR [1 0 0 0 1 0 0 0 1 ]\n"); + Writef(m,"/RangePQR [ -0.5 2 -0.5 2 -0.5 2 ]\n"); - -- Writef(m, "%% Absolute colorimetric -- no transformation\n" ++ + Writef(m, "%% Absolute colorimetric -- encode to relative to maximize LUT usage\n" "/TransformPQR [\n" - "{exch pop exch pop exch pop exch pop} bind dup dup]\n"); @@ -5190,9 +5185,9 @@ diff -bBruN openjdkold/jdk/src/share/nat // Finally, return used byte count return dwBytesUsed; -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2009-03-24 14:20:03.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -5302,9 +5297,9 @@ diff -bBruN openjdkold/jdk/src/share/nat { WORD *WhitePointIn, *WhitePointOut, *BlackPointIn, *BlackPointOut; -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2009-03-24 14:20:10.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -5457,9 +5452,9 @@ diff -bBruN openjdkold/jdk/src/share/nat Lut -> InputChan = 3; Lut -> OutputChan = 1; -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2009-03-24 14:20:20.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -5614,9 +5609,9 @@ diff -bBruN openjdkold/jdk/src/share/nat if (Intent == INTENT_RELATIVE_COLORIMETRIC && (cmsGetDeviceClass(hProfile) == icSigOutputClass) && (cmsGetColorSpace(hProfile) == icSigCmykData)) -diff -bBruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c ---- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2009-03-24 14:20:26.000000000 -0400 +diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c +--- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2008-11-25 04:06:04.000000000 -0500 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2009-03-26 15:18:47.000000000 -0400 @@ -29,7 +29,7 @@ // From langel at redhat.com Thu Apr 2 06:49:59 2009 From: langel at redhat.com (Lillian Angel) Date: Thu, 02 Apr 2009 09:49:59 -0400 Subject: [FYI] Latest lcms security patch committed Message-ID: <49D4C287.7090807@redhat.com> Hi, I have added the patch below to the existing icedtea-lcms.patch. All packages in Fedora and RHEL will be updated. Cheers, Lillian 2009-04-02 Lillian Angel * patches/icedtea-lcms.patch: Updated with most recent security fixes. --- LCMS.c~ 2009-03-26 17:53:27.000000000 +0000 +++ LCMS.c 2009-03-26 18:58:39.000000000 +0000 @@ -357,11 +357,16 @@ return; } + if (data == NULL) + { + JNU_ThrowByName(env, "java/lang/NullPointerException", ""); + return; + } sProf.j = id; profile = (cmsHPROFILE) sProf.pf; dataArray = (*env)->GetByteArrayElements(env, data, 0); tagSize =(*env)->GetArrayLength(env, data); - _cmsInitTag(profile, (icTagSignature) tagSig, dataArray, tagSize); + _cmsInitTag(profile, (icTagSignature) tagSig, tagSize, dataArray); (*env)->ReleaseByteArrayElements(env, data, dataArray, 0); } --- cmsxform.c~ 2009-03-26 17:53:27.000000000 +0000 +++ cmsxform.c 2009-03-26 18:31:41.000000000 +0000 @@ -689,6 +689,9 @@ GrayTRC = cmsReadICCGamma(hProfile, icSigGrayTRCTag); FromLstarToXYZ(GrayTRC, Shapes1); + if (GrayTRC == NULL) + return NULL; + // Reversing must be done after curve translation Shapes[0] = cmsReverseGamma(Shapes1[0]->nEntries, Shapes1[0]); @@ -704,6 +707,9 @@ GrayTRC = cmsReadICCGammaReversed(hProfile, icSigGrayTRCTag); // Y + if (GrayTRC == NULL) + return NULL; + Shapes[0] = cmsDupGamma(GrayTRC); Shapes[1] = cmsDupGamma(GrayTRC); Shapes[2] = cmsDupGamma(GrayTRC); @@ -1341,7 +1347,7 @@ p -> ToDevice = PCStoShaperMatrix; p -> OutMatShaper = cmsBuildOutputMatrixShaper(p->OutputProfile); - if (!p -> OutMatShaper) { + if (!p || !p -> OutMatShaper) { cmsSignalError(LCMS_ERRC_ABORTED, "profile is unsuitable for output"); return NULL; } @@ -1920,6 +1926,7 @@ ColorSpace = ColorSpaceIn; + Transforms[i] = NULL; if (ColorSpace == CurrentColorSpace) { @@ -1969,6 +1976,11 @@ goto ErrorCleanup; } + if (Transforms[i] == NULL) { + cmsSignalError(LCMS_ERRC_ABORTED, "cmsCreateMultiprofileTransform: Invalid profile"); + goto ErrorCleanup; + } + CurrentColorSpace = ColorSpaceOut; } From langel at redhat.com Thu Apr 2 08:18:55 2009 From: langel at redhat.com (Lillian Angel) Date: Thu, 02 Apr 2009 15:18:55 +0000 Subject: changeset in /hg/icedtea6: Fixed lcms patch typo. Message-ID: changeset 5e6be75f137c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5e6be75f137c description: Fixed lcms patch typo. diffstat: 1 file changed, 48 insertions(+), 48 deletions(-) patches/icedtea-lcms.patch | 96 ++++++++++++++++++++++---------------------- diffs (264 lines): diff -r ba7703f67b22 -r 5e6be75f137c patches/icedtea-lcms.patch --- a/patches/icedtea-lcms.patch Thu Apr 02 09:48:22 2009 -0400 +++ b/patches/icedtea-lcms.patch Thu Apr 02 11:19:02 2009 -0400 @@ -1,5 +1,5 @@ diff -ruN ../openjdk6/jdk/src/share/nati -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2008-11-25 04:06:03.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2008-11-25 04:06:03.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -79,8 +79,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati } -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2008-11-25 04:06:03.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2008-11-25 04:06:03.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -118,8 +118,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati #else VEC3divK(&tmp, (LPVEC3) &lpMod -> WP, lpMod->WP.Y); MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &tmp); -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2008-11-25 04:06:03.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2008-11-25 04:06:03.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -1562,8 +1562,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati void LCMSEXPORT cmsIT8DefineDblFormat(LCMSHANDLE hIT8, const char* Formatter) { LPIT8 it8 = (LPIT8) hIT8; -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -1590,8 +1590,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati + + + -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -1622,8 +1622,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati strcat(Buffer1, Buffer2); MessageBox(NULL, Buffer1, "Little cms", MB_OK|MB_ICONSTOP|MB_TASKMODAL); -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -1769,8 +1769,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati if (cmsIsLinear(Table, nEntries)) return FALSE; // Nothing to do -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -1873,8 +1873,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati } -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -1912,8 +1912,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati f = ((Value - b) / a); -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -2304,8 +2304,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati } + + -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -4279,8 +4279,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati - return TRUE; -} - -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -4437,8 +4437,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati &Lut -> In16params); Lut ->wFlags &= ~LUT_HASTL1; } -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -4500,8 +4500,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati } -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -4564,8 +4564,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati { MAT3 m, a_1; -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -4625,8 +4625,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati { _LPcmsTRANSFORM v = (_LPcmsTRANSFORM) xform; -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2009-03-26 15:13:30.000000000 -0400 @@ -28,7 +28,7 @@ // file: @@ -4809,8 +4809,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati break; default:; -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -4821,8 +4821,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the "Software"), -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -5185,8 +5185,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati // Finally, return used byte count return dwBytesUsed; -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -5297,8 +5297,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati { WORD *WhitePointIn, *WhitePointOut, *BlackPointIn, *BlackPointOut; -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -5452,8 +5452,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati Lut -> InputChan = 3; Lut -> OutputChan = 1; -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -5609,8 +5609,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati if (Intent == INTENT_RELATIVE_COLORIMETRIC && (cmsGetDeviceClass(hProfile) == icSigOutputClass) && (cmsGetColorSpace(hProfile) == icSigCmykData)) -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2009-03-26 15:18:47.000000000 -0400 @@ -29,7 +29,7 @@ // @@ -5844,8 +5844,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati if ((Intent != INTENT_ABSOLUTE_COLORIMETRIC) && !(dwFlags & cmsFLAGS_NOWHITEONWHITEFIXUP)) _cmsFixWhiteMisalignment(p); -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/icc34.h openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/icc34.h ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/icc34.h 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/icc34.h openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/icc34.h +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/icc34.h 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/icc34.h 2009-03-26 15:13:30.000000000 -0400 @@ -1,5 +1,8 @@ +/* Header file guard bands */ @@ -5910,8 +5910,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati typedef uint8_t icUInt8Number; typedef uint16_t icUInt16Number; typedef uint32_t icUInt32Number; -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c 2008-11-25 04:06:03.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c 2008-11-25 04:06:03.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c 2009-03-26 15:16:19.000000000 -0400 @@ -356,12 +356,18 @@ fprintf(stderr, "setTagData on icSigHead not permitted"); @@ -5933,8 +5933,8 @@ diff -ruN ../openjdk6/jdk/src/share/nati (*env)->ReleaseByteArrayElements(env, data, dataArray, 0); } -diff -ruN ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/lcms.h openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/lcms.h ---- ../openjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/lcms.h 2008-11-25 04:06:04.000000000 -0500 +diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/lcms.h openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/lcms.h +--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/lcms.h 2008-11-25 04:06:04.000000000 -0500 +++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/lcms.h 2009-03-26 15:13:30.000000000 -0400 @@ -29,7 +29,7 @@ // From theBohemian at gmx.net Thu Apr 2 10:14:04 2009 From: theBohemian at gmx.net (Robert Schuster) Date: Thu, 02 Apr 2009 19:14:04 +0200 Subject: RFC: Fix usage of INSTALL_ARCH_DIR vs. BUILD_ARCH_DIR In-Reply-To: <49D362AC.6050307@gmx.net> References: <49D362AC.6050307@gmx.net> Message-ID: <49D4F25C.8070705@gmx.net> Hi, no one an opinion. Its just two lines. :) Regards Robert Robert Schuster schrieb: > Hi, > this patch is not directly connected to my other cross-compiling patches > but is also good for 'cross-compilation'. Some people want to compile > OpenJDK using OE for a Geode CPU (i486, i586). > > They found out that IcedTea's build scripts make some invalid > assumptions about the name of some directories in that. From looking at > other occurances where "jre/lib/" was used, they > all use the INSTALL_ARCH_DIR variable just not the two that are fixed in > this patch. > > Ok, to commit? > > (Btw: This patch should also be in IcedTea[7]). > > Regards > Robert > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 260 bytes Desc: OpenPGP digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090402/88dc7b73/signature.asc From dbhole at redhat.com Thu Apr 2 11:54:54 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 02 Apr 2009 18:54:54 +0000 Subject: changeset in /hg/icedtea6: Proxy support for the icedtea plugin Message-ID: changeset 300bff72109a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=300bff72109a description: Proxy support for the icedtea plugin diffstat: 11 files changed, 808 insertions(+), 25 deletions(-) ChangeLog | 23 + IcedTeaPlugin.cc | 158 ++++++- plugin/icedtea/sun/applet/PasswordAuthenticationDialog.java | 241 +++++++++++ plugin/icedtea/sun/applet/PluginAppletViewer.java | 54 ++ plugin/icedtea/sun/applet/PluginCallRequestFactory.java | 4 plugin/icedtea/sun/applet/PluginMain.java | 36 + plugin/icedtea/sun/applet/PluginProxyInfoRequest.java | 85 +++ plugin/icedtea/sun/applet/PluginProxySelector.java | 195 ++++++++ plugin/icedtea/sun/applet/PluginStreamHandler.java | 26 - rt/net/sourceforge/jnlp/JNLPFile.java | 2 rt/net/sourceforge/jnlp/NetxPanel.java | 9 diffs (truncated from 1097 to 500 lines): diff -r 5e6be75f137c -r 300bff72109a ChangeLog --- a/ChangeLog Thu Apr 02 11:19:02 2009 -0400 +++ b/ChangeLog Thu Apr 02 14:55:59 2009 -0400 @@ -1,3 +1,26 @@ 2009-04-02 Lillian Angel + + * IcedTeaPlugin.cc: Incremented timeout to 3 minutes. Added functions to + process proxy and auth info requests (the latter is unused). + * plugin/icedtea/sun/applet/PasswordAuthenticationDialog.java: New file. + Displays a username/password input dialog to users for sites and proxies + requiring http auth. + * plugin/icedtea/sun/applet/PluginAppletViewer.java: Fix wait mechanism to + detect applet initialization failures correctly. Add support for + requesting proxy information from the browser. + * plugin/icedtea/sun/applet/PluginCallRequestFactory.java: Add support for + PluginProxyInfoRequest objects. + * plugin/icedtea/sun/applet/PluginMain.java: Wire in custom authenticator + and proxy selector. + * plugin/icedtea/sun/applet/PluginProxyInfoRequest.java: New file. Object + representing proxy information request from browser. + * plugin/icedtea/sun/applet/PluginProxySelector.java: Custom proxy + selector that requests information from browser and uses it. + * plugin/icedtea/sun/applet/PluginStreamHandler.java: Improve handling + code for "plugin specific" messages on the wire. + * rt/net/sourceforge/jnlp/NetxPanel.java: Add support for improved + initialization failure detection. + 2009-04-02 Lillian Angel * patches/icedtea-lcms.patch: Updated with most recent security fixes. diff -r 5e6be75f137c -r 300bff72109a IcedTeaPlugin.cc --- a/IcedTeaPlugin.cc Thu Apr 02 11:19:02 2009 -0400 +++ b/IcedTeaPlugin.cc Thu Apr 02 14:55:59 2009 -0400 @@ -85,7 +85,7 @@ PRThread* current_thread (); // #14 0x0153fdbf in ProxyJNIEnv::CallObjectMethod (env=0xa8b8040, obj=0x9dad690, methodID=0xa0ed070) at ProxyJNI.cpp:641 // timeout (in seconds) for various calls to java side -#define TIMEOUT 20 +#define TIMEOUT 180 #define NOT_IMPLEMENTED() \ PLUGIN_DEBUG_1ARG ("NOT IMPLEMENTED: %s\n", __PRETTY_FUNCTION__) @@ -1007,6 +1007,7 @@ private: nsresult StartAppletviewer (); void ProcessMessage(); void ConsumeMsgFromJVM(); + nsresult GetProxyInfo(const char* siteAddr, char** proxyScheme, char** proxyHost, char** proxyPort); nsCOMPtr sink; nsCOMPtr transport; nsCOMPtr applet_viewer_process; @@ -1792,7 +1793,7 @@ NS_IMETHODIMP NS_IMETHODIMP IcedTeaPluginFactory::Show (void) { - nsCString msg("showconsole"); + nsCString msg("plugin showconsole"); this->SendMessageToAppletViewer(msg); return NS_OK; } @@ -1800,7 +1801,7 @@ NS_IMETHODIMP NS_IMETHODIMP IcedTeaPluginFactory::Hide (void) { - nsCString msg("hideconsole"); + nsCString msg("plugin hideconsole"); this->SendMessageToAppletViewer(msg); return NS_OK; } @@ -2658,6 +2659,96 @@ IcedTeaPluginInstance::GetJavaObject (jo return factory->GetJavaObject (instance_identifier, object); } +#include +#include +#include +#include +#include +#include +#include + +/** + * + * Returns the proxy information for the given url + * + * The proxy query part of this function can be made much smaller by using + * nsIPluginManager2::FindProxyForURL() .. however, because we need to parse + * the return components in various ways, it is easier to query + * nsIProtocolProxyService directly + * + * @param siteAddr The URL to check + * @param proxyScheme Return parameter containing the proxy URI scheme (http/socks/etc.) + * @param proxyHost Return parameter containing the proxy host + * @param proxyPort Return parameter containing the proxy port + */ + +NS_IMETHODIMP +IcedTeaPluginFactory::GetProxyInfo(const char* siteAddr, char** proxyScheme, char** proxyHost, char** proxyPort) +{ + nsresult rv; + + // Initialize service variables + nsCOMPtr proxy_svc = do_GetService(NS_PROTOCOLPROXYSERVICE_CONTRACTID, &rv); + + if (!proxy_svc) { + printf("Cannot initialize proxy service\n"); + return rv; + } + + nsCOMPtr io_svc = do_GetService(NS_IOSERVICE_CONTRACTID, &rv); + + if (NS_FAILED(rv) || !io_svc) { + printf("Cannot initialize io service\n"); + return NS_ERROR_FAILURE; + } + + // uri which needs to be accessed + nsCOMPtr uri; + io_svc->NewURI(nsCString(siteAddr), NULL, NULL, getter_AddRefs(uri)); + + // find the proxy address if any + nsCOMPtr info; + proxy_svc->Resolve(uri, 0, getter_AddRefs(info)); + + // if there is no proxy found, return immediately + if (!info) { + PLUGIN_DEBUG_1ARG("%s does not need a proxy\n", siteAddr); + return NS_ERROR_FAILURE; + } + + // if proxy info is available, extract it + nsCString phost; + PRInt32 pport; + nsCString ptype; + + info->GetHost(phost); + info->GetPort(&pport); + info->GetType(ptype); + + // resolve the proxy address to an IP + nsCOMPtr dns_svc = do_GetService(NS_DNSSERVICE_CONTRACTID, &rv); + + if (!dns_svc) { + printf("Cannot initialize DNS service\n"); + return rv; + } + + nsCOMPtr record; + dns_svc->Resolve(phost, 0U, getter_AddRefs(record)); + + // TODO: Add support for multiple ips + nsDependentCString ipAddr; + record->GetNextAddrAsString(ipAddr); + + // pack information in return variables + snprintf(*proxyScheme, sizeof(char)*32, "%s", ptype.get()); + snprintf(*proxyHost, sizeof(char)*64, "%s", ipAddr.get()); + snprintf(*proxyPort, sizeof(char)*8, "%d", pport); + + PLUGIN_DEBUG_4ARG("Proxy info for %s: %s %s %s\n", siteAddr, *proxyScheme, *proxyHost, *proxyPort); + + return NS_OK; +} NS_IMETHODIMP IcedTeaPluginInstance::GetCookie(const char* siteAddr, char** cookieString) @@ -2677,8 +2768,8 @@ IcedTeaPluginInstance::GetCookie(const c return NS_ERROR_FAILURE; } - nsIURI *uri; - io_svc->NewURI(nsCString(siteAddr), NULL, NULL, &uri); + nsCOMPtr uri; + io_svc->NewURI(nsCString(siteAddr), NULL, NULL, getter_AddRefs(uri)); nsCOMPtr cookie_svc = do_GetService(NS_COOKIESERVICE_CONTRACTID, &rv); @@ -2902,6 +2993,13 @@ IcedTeaPluginFactory::HandleMessage (nsC nsDependentCSubstring prefix(pch, strlen(pch)); pch = strtok (NULL, " "); PRUint32 identifier = nsDependentCSubstring(pch, strlen(pch)).ToInteger (&conversionResult); + + /* Certain prefixes may not have an identifier. if they don't. we have a command here */ + nsDependentCSubstring command; + if (NS_FAILED(conversionResult)) { + command.Rebind(pch, strlen(pch)); + } + PRUint32 reference = -1; if (strstr(message.get(), "reference") != NULL) { @@ -2910,8 +3008,11 @@ IcedTeaPluginFactory::HandleMessage (nsC reference = nsDependentCSubstring(pch, strlen(pch)).ToInteger (&conversionResult); } - pch = strtok (NULL, " "); - nsDependentCSubstring command(pch, strlen(pch)); + if (command.Length() == 0) { + pch = strtok (NULL, " "); + command.Rebind(pch, strlen(pch)); + } + pch = strtok (NULL, " "); nsDependentCSubstring rest("", 0); @@ -3344,6 +3445,49 @@ IcedTeaPluginFactory::HandleMessage (nsC // Do nothing for: SetStaticField, SetField, ExceptionClear, // DeleteGlobalRef, DeleteLocalRef } + else if (prefix == "plugin") + { + + if (command == "PluginProxyInfo") { + + nsresult rv; + nsCOMPtr net_util = do_GetService(NS_NETUTIL_CONTRACTID, &rv); + + if (!net_util) + printf("Error instantiating NetUtil service.\n"); + + // decode the url + nsDependentCSubstring url; + net_util->UnescapeString(rest, 0, url); + + char* proxyScheme = (char*) malloc(sizeof(char)*32); + char* proxyHost = (char*) malloc(sizeof(char)*64); + char* proxyPort = (char*) malloc(sizeof(char)*8); + + nsCString proxyInfo("plugin PluginProxyInfo "); + + // get proxy info + if (GetProxyInfo(((nsCString) url).get(), &proxyScheme, &proxyHost, &proxyPort) == NS_OK) + { + proxyInfo += proxyScheme; + proxyInfo += " "; + proxyInfo += proxyHost; + proxyInfo += " "; + proxyInfo += proxyPort; + + PLUGIN_DEBUG_4ARG("Proxy for %s is %s %s %s\n", ((nsCString) url).get(), proxyScheme, proxyHost, proxyPort); + } else { + PLUGIN_DEBUG_1ARG("No suitable proxy found for %s\n", ((nsCString) url).get()); + } + + // send back what we found + SendMessageToAppletViewer (proxyInfo); + + // free allocated memory + delete proxyScheme, proxyHost, proxyPort; + + } + } } void IcedTeaPluginFactory::ProcessMessage () diff -r 5e6be75f137c -r 300bff72109a plugin/icedtea/sun/applet/PasswordAuthenticationDialog.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugin/icedtea/sun/applet/PasswordAuthenticationDialog.java Thu Apr 02 14:55:59 2009 -0400 @@ -0,0 +1,241 @@ +/* PasswordAuthenticationDialog -- requests authentication information from users + Copyright (C) 2009 Red Hat + +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. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package sun.applet; + +import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.net.PasswordAuthentication; + +import javax.swing.JButton; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JPasswordField; +import javax.swing.JTextField; +import javax.swing.SwingUtilities; + +/** + * Modal non-minimizable dialog to request http authentication credentials + */ + +public class PasswordAuthenticationDialog extends JDialog { + + private JLabel jlInfo = new JLabel(""); + private JTextField jtfUserName = new JTextField(); + private JPasswordField jpfPassword = new JPasswordField(); + private boolean userCancelled; + + public PasswordAuthenticationDialog() { + initialize(); + } + + /** + * Initialized the dialog components + */ + + public void initialize() { + + setTitle("IcedTea Java Plugin - Authorization needed to proceed"); + + setLayout(new GridBagLayout()); + + JLabel jlUserName = new JLabel("Username: "); + JLabel jlPassword = new JLabel("Password: "); + JButton jbOK = new JButton("OK"); + JButton jbCancel = new JButton("Cancel"); + + jtfUserName.setSize(20, 10); + jpfPassword.setSize(20, 10); + + GridBagConstraints c; + + c = new GridBagConstraints(); + c.fill = c.HORIZONTAL; + c.gridx = 0; + c.gridy = 0; + c.gridwidth = 2; + c.insets = new Insets(10, 5, 3, 3); + add(jlInfo, c); + + c = new GridBagConstraints(); + c.gridx = 0; + c.gridy = 1; + c.insets = new Insets(10, 5, 3, 3); + add(jlUserName, c); + + c = new GridBagConstraints(); + c.fill = c.HORIZONTAL; + c.gridx = 1; + c.gridy = 1; + c.insets = new Insets(10, 5, 3, 3); + c.weightx = 1.0; + add(jtfUserName, c); + + + c = new GridBagConstraints(); + c.gridx = 0; + c.gridy = 2; + c.insets = new Insets(5, 5, 3, 3); + add(jlPassword, c); + + c = new GridBagConstraints(); + c.fill = c.HORIZONTAL; + c.gridx = 1; + c.gridy = 2; + c.insets = new Insets(5, 5, 3, 3); + c.weightx = 1.0; + add(jpfPassword, c); + + c = new GridBagConstraints(); + c.anchor = c.SOUTHEAST; + c.gridx = 1; + c.gridy = 3; + c.insets = new Insets(5, 5, 3, 70); + c.weightx = 0.0; + add(jbCancel, c); + + c = new GridBagConstraints(); + c.anchor = c.SOUTHEAST; + c.gridx = 1; + c.gridy = 3; + c.insets = new Insets(5, 5, 3, 3); + c.weightx = 0.0; + add(jbOK, c); + + setMinimumSize(new Dimension(400,150)); + setMaximumSize(new Dimension(1024,150)); + setAlwaysOnTop(true); + + setSize(400,150); + setLocationRelativeTo(null); + + // OK => read supplied info and pass it on + jbOK.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + userCancelled = false; + dispose(); + } + }); + + // Cancel => discard supplied info and pass on an empty auth + jbCancel.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + userCancelled = true; + dispose(); + } + }); + + // "return" key in either user or password field => OK + + jtfUserName.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + userCancelled = false; + dispose(); + } + }); + + jpfPassword.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + userCancelled = false; + dispose(); + } + }); + } + + /** + * Present a dialog to the user asking them for authentication information + * + * @param hostThe host for with authentication is needed + * @param port The port being accessed + * @param prompt The prompt (realm) as presented by the server + * @param type The type of server (proxy/web) + * @return PasswordAuthentication containing the credentials (empty credentials if user cancelled) + */ + protected PasswordAuthentication askUser(String host, int port, String prompt, String type) { + PasswordAuthentication auth = null; + + host += port != -1 ? ":" + port : ""; + + // This frame is reusable. So reset everything first. + userCancelled = true; + jlInfo.setText("The " + type + " server at " + host + " is requesting authentication. It says \"" + prompt + "\""); + + try { + SwingUtilities.invokeAndWait( new Runnable() { + public void run() { + // show dialog to user + setVisible(true); + } + }); + + PluginDebug.debug("password dialog shown"); + + // wait until dialog is gone + while (this.isShowing()) { + try { + Thread.sleep(200); + } catch (InterruptedException ie) { + } + } + + PluginDebug.debug("password dialog closed"); + + if (!userCancelled) { + auth = new PasswordAuthentication(jtfUserName.getText(), jpfPassword.getText().toCharArray()); + } + } catch (Exception e) { + e.printStackTrace(); + + // Nothing else we can do. Empty auth will be returned + } + + return auth; + } + + public static void main(String[] args) { + PasswordAuthenticationDialog frame = new PasswordAuthenticationDialog(); + + PasswordAuthentication auth = frame.askUser("127.0.0.1", 3128, "Password for local proxy", "proxy"); + + System.err.println("Auth info: " + auth.getUserName() + ":" + new String(auth.getPassword())); + System.exit(0); + } +} diff -r 5e6be75f137c -r 300bff72109a plugin/icedtea/sun/applet/PluginAppletViewer.java From bugzilla-daemon at icedtea.classpath.org Thu Apr 2 13:25:32 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 02 Apr 2009 20:25:32 +0000 Subject: [Bug 314] New: Azureus crashes since upgrade to fedora 10 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=314 Summary: Azureus crashes since upgrade to fedora 10 Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: major Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: gabriel.pissot at free.fr Hello I've recently Upgrade my system from Fedora 9 to Fedora 10. and since this time Azureus Crashes (maybe Java crashes) I can't understand the reason of crash, sometimes it's after few minutes, and other time after hours. I uninstall the Azureus version of Fedora 10 : 3.xx and install the version of Fedora 11 from depot rawhide, but it steel crashes. I try to change version of Java, but nothing changes. I' have log files, and if I can help, I'm ready to do it. thank you -- 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 Apr 2 13:28:47 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 02 Apr 2009 20:28:47 +0000 Subject: [Bug 314] Azureus crashes since upgrade to fedora 10 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=314 ------- Comment #1 from gabriel.pissot at free.fr 2009-04-02 20:28 ------- Created an attachment (id=191) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=191&action=view) log file -- 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 Apr 2 13:35:08 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 02 Apr 2009 20:35:08 +0000 Subject: [Bug 314] Azureus crashes since upgrade to fedora 10 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=314 ------- Comment #2 from gabriel.pissot at free.fr 2009-04-02 20:35 ------- Created an attachment (id=192) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=192&action=view) log file with Azureus 3.X version -- 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 Kelly.Ohair at Sun.COM Thu Apr 2 14:25:38 2009 From: Kelly.Ohair at Sun.COM (Kelly O'Hair) Date: Thu, 02 Apr 2009 14:25:38 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <1238648840.3168.19.camel@localhost.localdomain> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <1238609153.4495.31.camel@localhost.localdomain> <49D3B384.2010609@sun.com> <1238648840.3168.19.camel@localhost.localdomain> Message-ID: <49D52D52.4040100@sun.com> Christian Thalinger wrote: > On Wed, 2009-04-01 at 11:33 -0700, Kelly O'Hair wrote: >> The changes to the jdk files look fine. >> One question though, does the name "CORE_BUILD" have a meaning to the >> JDK, or just the VM? Just wondering if a "VM_CORE_BUILD" or >> "HOTSPOT_CORE_BUILD" might be a better name. Not a big deal. > > I don't know, but maybe Gary does... > >> If you have changesets I can send them through the jdk7/build forest, >> with the appropriate jdk test builds (the changes look independent, >> so should be fine) or you can send them through the hotspot-comp forest. >> Although you should make sure the hotspot integrators >> are aware that you have made changes to non-hotspot repositories, just >> to make sure they don't forget to do a full forest push. > > I see. Maybe you should do the push :-) Should I prepare a changeset > and send it over to you? That would be fine. Or point be at some repository I could pull the changeset from. -kto > > -- Christian > From Dalibor.Topic at Sun.COM Fri Apr 3 06:31:35 2009 From: Dalibor.Topic at Sun.COM (Dalibor Topic) Date: Fri, 03 Apr 2009 15:31:35 +0200 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3917B.2010907@redhat.com> References: <49D3917B.2010907@redhat.com> Message-ID: <49D60FB7.9080301@sun.com> Andrew Haley wrote: > We at Red Hat have noticed that the list of IcedTea local patches has > been getting large, with some local patches that should have been > pushed upstream. Also, some IcedTea patches have been committed to > OpenJDK 7 but not OpenJDK 6. > > So, we're going to have a serious attempt to minimize the number of > IcedTea patches. We'll create a Wiki page at icedtea.classpath.org > that is a list of the patches, and for every one we're going to > discuss whether it should stay IcedTea local, be pushed upstream to > OpenJDK, or be deleted altogether. Then we will create OpenJDK > bugzilla entries for the patches that we think should be integrated > upstream and work with Sun engineers to get that done. > > I hope that it will be possible to reduce the number of patches to a > fraction of what we have at the moment, while improving the quality of > the upstream product. > > This is going to be quite a lot of work, so we'd appreciate help from > anyone. Absolutely - thank you very much for pushing for this, Andrew! cheers, dalibor topic > > I hope this will meet with everyone's approval. > > Andrew. -- ******************************************************************* Dalibor Topic Tel: (+49 40) 23 646 738 Java F/OSS Ambassador AIM: robiladonaim Sun Microsystems GmbH Mobile: (+49 177) 2664 192 Nagelsweg 55 http://openjdk.java.net D-20097 Hamburg mailto:Dalibor.Topic at sun.com Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht M?nchen: HRB 161028 Gesch?ftsf?hrer: Thomas Schr?der, Wolfgang Engels, Dr. Roland B?mer Vorsitzender des Aufsichtsrates: Martin H?ring From langel at redhat.com Fri Apr 3 10:49:00 2009 From: langel at redhat.com (Lillian Angel) Date: Fri, 03 Apr 2009 17:49:00 +0000 Subject: changeset in /hg/icedtea6: 2009-04-03 Lillian Angel changeset 5b9c566ab513 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5b9c566ab513 description: 2009-04-03 Lillian Angel * patches/icedtea-lcms.patch: Updated. Re-added _cmsModifyTag data patch, which is upstream in OpenJDK6, but is not available in the upstream lcms 1.18 sources. diffstat: 2 files changed, 106 insertions(+), 260 deletions(-) ChangeLog | 6 patches/icedtea-lcms.patch | 360 ++++++++++++-------------------------------- diffs (truncated from 886 to 500 lines): diff -r 300bff72109a -r 5b9c566ab513 ChangeLog --- a/ChangeLog Thu Apr 02 14:55:59 2009 -0400 +++ b/ChangeLog Fri Apr 03 13:49:06 2009 -0400 @@ -1,3 +1,9 @@ 2009-04-02 Deepak Bhole + + * patches/icedtea-lcms.patch: Updated. Re-added _cmsModifyTag data + patch, which is upstream in OpenJDK6, but is not available in the + upstream lcms 1.18 sources. + 2009-04-02 Deepak Bhole * IcedTeaPlugin.cc: Incremented timeout to 3 minutes. Added functions to diff -r 300bff72109a -r 5b9c566ab513 patches/icedtea-lcms.patch --- a/patches/icedtea-lcms.patch Thu Apr 02 14:55:59 2009 -0400 +++ b/patches/icedtea-lcms.patch Fri Apr 03 13:49:06 2009 -0400 @@ -1,6 +1,6 @@ diff -ruN openjdkold/jdk/src/share/nativ diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2008-11-25 04:06:03.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2009-04-03 13:42:46.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -81,7 +81,7 @@ diff -ruN openjdkold/jdk/src/share/nativ diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2008-11-25 04:06:03.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c 2009-04-03 13:42:46.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -120,7 +120,7 @@ diff -ruN openjdkold/jdk/src/share/nativ MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &tmp); diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2008-11-25 04:06:03.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2009-04-03 13:42:46.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1564,7 +1564,7 @@ diff -ruN openjdkold/jdk/src/share/nativ LPIT8 it8 = (LPIT8) hIT8; diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2009-04-03 13:42:46.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1592,7 +1592,7 @@ diff -ruN openjdkold/jdk/src/share/nativ + diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2009-04-03 13:42:46.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1624,7 +1624,7 @@ diff -ruN openjdkold/jdk/src/share/nativ MB_OK|MB_ICONSTOP|MB_TASKMODAL); diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2009-04-03 13:42:46.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1771,7 +1771,7 @@ diff -ruN openjdkold/jdk/src/share/nativ if (cmsIsLinear(Table, nEntries)) return FALSE; // Nothing to do diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2009-04-03 13:42:46.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1875,7 +1875,7 @@ diff -ruN openjdkold/jdk/src/share/nativ diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2009-04-03 13:42:46.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1914,7 +1914,7 @@ diff -ruN openjdkold/jdk/src/share/nativ diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2009-04-03 13:43:04.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -1993,7 +1993,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { FILEMEM* ResData = (FILEMEM*) Icc ->stream; -@@ -147,19 +163,18 @@ +@@ -147,10 +163,10 @@ } @@ -2006,32 +2006,19 @@ diff -ruN openjdkold/jdk/src/share/nativ { FILEMEM* ResData = (FILEMEM*) Icc ->stream; - if (size == 0) return TRUE; - - if (ResData != NULL) -- CopyMemory(ResData ->Block + ResData ->Pointer, Ptr, size); -+ CopyMemory(ResData ->Block + Icc ->UsedSpace, Ptr, size); - -- ResData->Pointer += size; - Icc->UsedSpace += size; - - return TRUE; -@@ -167,27 +182,15 @@ +@@ -167,7 +183,7 @@ static -BOOL MemoryGrow(struct _lcms_iccprofile_struct* Icc, size_t size) --{ -- FILEMEM* ResData = (FILEMEM*) Icc->stream; -- ResData->Size += size; -- ResData->Block = realloc(ResData->Block, ResData->Size); -- if (!ResData->Block) -- return FALSE; -- return TRUE; --} -- -- --static ++LCMSBOOL MemoryGrow(struct _lcms_iccprofile_struct* Icc, size_t size) + { + FILEMEM* ResData = (FILEMEM*) Icc->stream; + ResData->Size += size; +@@ -179,15 +195,15 @@ + + + static -BOOL MemoryClose(struct _lcms_iccprofile_struct* Icc) +LCMSBOOL MemoryClose(struct _lcms_iccprofile_struct* Icc) { @@ -2047,7 +2034,7 @@ diff -ruN openjdkold/jdk/src/share/nativ return 0; } -@@ -205,7 +208,7 @@ +@@ -205,7 +221,7 @@ { size_t nReaded = fread(buffer, size, count, (FILE*) Icc->stream); if (nReaded != count) { @@ -2056,7 +2043,7 @@ diff -ruN openjdkold/jdk/src/share/nativ return 0; } -@@ -214,7 +217,7 @@ +@@ -214,7 +230,7 @@ static @@ -2065,7 +2052,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { if (fseek((FILE*) Icc ->stream, (long) offset, SEEK_SET) != 0) { -@@ -236,7 +239,7 @@ +@@ -236,7 +252,7 @@ static @@ -2074,23 +2061,24 @@ diff -ruN openjdkold/jdk/src/share/nativ { if (size == 0) return TRUE; -@@ -252,14 +255,7 @@ +@@ -252,14 +268,14 @@ static -BOOL FileGrow(struct _lcms_iccprofile_struct* Icc, size_t size) --{ -- return TRUE; --} -- -- --static ++LCMSBOOL FileGrow(struct _lcms_iccprofile_struct* Icc, size_t size) + { + return TRUE; + } + + + static -BOOL FileClose(struct _lcms_iccprofile_struct* Icc) +LCMSBOOL FileClose(struct _lcms_iccprofile_struct* Icc) { return fclose((FILE*) Icc ->stream); } -@@ -272,7 +268,7 @@ +@@ -272,7 +288,7 @@ cmsHPROFILE _cmsCreateProfilePlaceholder(void) { @@ -2099,7 +2087,7 @@ diff -ruN openjdkold/jdk/src/share/nativ if (Icc == NULL) return NULL; // Empty values -@@ -310,7 +306,7 @@ +@@ -310,7 +326,7 @@ // Search for a specific tag in tag dictionary // Returns position or -1 if tag not found @@ -2108,7 +2096,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { icInt32Number i; -@@ -331,7 +327,7 @@ +@@ -331,7 +347,7 @@ // Check existance @@ -2117,7 +2105,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; return _cmsSearchTag(Icc, sig, FALSE) >= 0; -@@ -350,7 +346,7 @@ +@@ -350,7 +366,7 @@ if (i >=0) { @@ -2126,7 +2114,7 @@ diff -ruN openjdkold/jdk/src/share/nativ } else { -@@ -361,11 +357,14 @@ +@@ -361,11 +377,14 @@ cmsSignalError(LCMS_ERRC_ABORTED, "Too many tags (%d)", MAX_TABLE_TAG); Icc ->TagCount = MAX_TABLE_TAG-1; @@ -2142,7 +2130,7 @@ diff -ruN openjdkold/jdk/src/share/nativ CopyMemory(Ptr, Init, size); Icc ->TagNames[i] = sig; -@@ -396,13 +395,14 @@ +@@ -396,6 +415,8 @@ if (NewIcc == NULL) return NULL; strncpy(NewIcc -> PhysicalFile, FileName, MAX_PATH-1); @@ -2151,24 +2139,7 @@ diff -ruN openjdkold/jdk/src/share/nativ NewIcc ->stream = ICCfile; NewIcc ->Read = FileRead; - NewIcc ->Seek = FileSeek; - NewIcc ->Tell = FileTell; - NewIcc ->Close = FileClose; -- NewIcc ->Grow = FileGrow; - NewIcc ->Write = NULL; - - NewIcc ->IsWrite = FALSE; -@@ -440,8 +440,7 @@ - NewIcc ->Seek = MemorySeek; - NewIcc ->Tell = MemoryTell; - NewIcc ->Close = MemoryClose; -- NewIcc ->Grow = MemoryGrow; -- NewIcc ->Write = MemoryWrite; -+ NewIcc ->Write = NULL; - - NewIcc ->IsWrite = FALSE; - -@@ -498,7 +497,7 @@ +@@ -498,7 +519,7 @@ @@ -2177,7 +2148,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; *Dest = Icc -> MediaWhitePoint; -@@ -506,14 +505,14 @@ +@@ -506,14 +527,14 @@ } @@ -2194,7 +2165,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) hProfile; *Dest = Icc -> Illuminant; -@@ -571,7 +570,7 @@ +@@ -571,7 +592,7 @@ } @@ -2203,7 +2174,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; CopyMemory(Dest, &Icc ->Created, sizeof(struct tm)); -@@ -660,7 +659,7 @@ +@@ -660,7 +681,7 @@ // This is tricky, since LUT structs does have pointers @@ -2212,7 +2183,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; LPLUT Orig, Stored; -@@ -688,7 +687,7 @@ +@@ -688,7 +709,7 @@ } @@ -2221,7 +2192,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; -@@ -697,7 +696,7 @@ +@@ -697,7 +718,7 @@ } @@ -2230,7 +2201,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; -@@ -705,7 +704,7 @@ +@@ -705,7 +726,7 @@ return TRUE; } @@ -2239,7 +2210,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; -@@ -714,7 +713,7 @@ +@@ -714,7 +735,7 @@ } @@ -2248,7 +2219,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; -@@ -723,7 +722,7 @@ +@@ -723,7 +744,7 @@ } @@ -2257,7 +2228,7 @@ diff -ruN openjdkold/jdk/src/share/nativ { LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; -@@ -733,28 +732,40 @@ +@@ -733,28 +754,40 @@ } @@ -2306,7 +2277,7 @@ diff -ruN openjdkold/jdk/src/share/nativ + diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c --- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2008-11-25 04:06:04.000000000 -0500 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2009-03-26 15:13:30.000000000 -0400 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2009-04-03 13:43:04.000000000 -0400 @@ -29,7 +29,7 @@ // // @@ -2874,10 +2845,10 @@ diff -ruN openjdkold/jdk/src/share/nativ + if (Curves[i] == NULL) goto Error; SkipAlignment(Icc); + } -+ + + // March-26'08: some V4 profiles may have different sampling + // rates, in this case resample all curves to maximum - ++ + for (i=1; i < nCurves; i++) { + if (Curves[i]->nEntries != Curves[0]->nEntries) { + ResampleCurves(Curves, nCurves); @@ -4139,149 +4110,22 @@ diff -ruN openjdkold/jdk/src/share/nativ // update BytesSaved so caller knows how many bytes put into stream *BytesNeeded = Icc ->UsedSpace; -@@ -3662,139 +3764,3 @@ +@@ -3662,10 +3764,10 @@ return FALSE; } -BOOL LCMSEXPORT _cmsModifyTagData(cmsHPROFILE hProfile, icTagSignature sig, -- void *data, size_t size) --{ ++LCMSBOOL LCMSEXPORT _cmsModifyTagData(cmsHPROFILE hProfile, icTagSignature sig, + void *data, size_t size) + { - BOOL isNew; -- int i, idx, delta, count; -- LPBYTE padChars[3] = {0, 0, 0}; -- LPBYTE beforeBuf, afterBuf, ptr; -- size_t beforeSize, afterSize; -- icUInt32Number profileSize, temp; -- LPLCMSICCPROFILE Icc = (LPLCMSICCPROFILE) (LPSTR) hProfile; -- -- isNew = FALSE; -- idx = _cmsSearchTag(Icc, sig, FALSE); -- if (idx < 0) -- { -- isNew = TRUE; -- idx = Icc->TagCount++; -- if (Icc->TagCount >= MAX_TABLE_TAG) -- { -- fprintf(stderr, "Too many tags (%d)\n", Icc->TagCount); -- Icc->TagCount = MAX_TABLE_TAG-1; -- return FALSE; -- } -- } -- -- /* Read in size from header */ -- Icc->Seek(Icc, 0); -- Icc->Read(&profileSize, sizeof(icUInt32Number), 1, Icc); -- AdjustEndianess32((LPBYTE) &profileSize); -- -- /* Compute the change in profile size */ -- if (isNew) -- delta = sizeof(icTag) + ALIGNLONG(size); -- else -- delta = ALIGNLONG(size) - ALIGNLONG(Icc->TagSizes[idx]); -- -- /* Add tag to internal structures */ -- ptr = malloc(size); -- CopyMemory(ptr, data, size); -- Icc->TagSizes[idx] = size; -- Icc->TagNames[idx] = sig; -- if (Icc->TagPtrs[idx]) -- free(Icc->TagPtrs[idx]); -- Icc->TagPtrs[idx] = ptr; -- if (isNew) -- Icc->TagOffsets[idx] = profileSize; -- -- /* Compute size of tag data before/after the modified tag */ -- beforeSize = Icc->TagOffsets[idx] - Icc->TagOffsets[0]; -- if (Icc->TagCount == (idx + 1)) -- afterSize = 0; -- else -- afterSize = profileSize - Icc->TagOffsets[idx+1]; -- -- /* Make copies of the data before/after the modified tag */ -- if (beforeSize > 0) -- { -- beforeBuf = malloc(beforeSize); -- Icc->Seek(Icc, Icc->TagOffsets[0]); -- Icc->Read(beforeBuf, beforeSize, 1, Icc); -- } -- -- if (afterSize > 0) -- { -- afterBuf = malloc(afterSize); -- Icc->Seek(Icc, Icc->TagOffsets[idx+1]); -- Icc->Read(afterBuf, afterSize, 1, Icc); -- } -- -- /* Update the profile size in the header */ -- profileSize += delta; -- Icc->Seek(Icc, 0); -- temp = TransportValue32(profileSize); -- Icc->Write(Icc, sizeof(icUInt32Number), &temp); -- -- Icc->Grow(Icc, delta); -- -- /* Adjust tag offsets: if the tag is new, we must account -- for the new tag table entry; otherwise, only those tags after -- the modified tag are changed (by delta) */ -- if (isNew) -- { -- for (i = 0; i < Icc->TagCount; ++i) -- Icc->TagOffsets[i] += sizeof(icTag); -- } -- else -- { -- for (i = idx+1; i < Icc->TagCount; ++i) -- Icc->TagOffsets[i] += delta; -- } -- -- /* Write out a new tag table */ -- count = 0; -- for (i = 0; i < Icc->TagCount; ++i) -- { -- if (Icc->TagNames[i] != 0) -- ++count; -- } -- Icc->Seek(Icc, sizeof(icHeader)); -- temp = TransportValue32(count); -- Icc->Write(Icc, sizeof(icUInt32Number), &temp); -- -- for (i = 0; i < Icc->TagCount; ++i) -- { -- if (Icc->TagNames[i] != 0) -- { -- icTag tag; From bugzilla-daemon at icedtea.classpath.org Sun Apr 5 06:34:58 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 05 Apr 2009 13:34:58 +0000 Subject: [Bug 314] Azureus crashes since upgrade to fedora 10 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=314 ------- Comment #3 from godji at 300penguins.org 2009-04-05 13:34 ------- There is also a Gentoo bug about this: https://bugs.gentoo.org/show_bug.cgi?id=259884 -- 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 Apr 5 12:49:12 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 05 Apr 2009 19:49:12 +0000 Subject: [Bug 314] Azureus crashes since upgrade to fedora 10 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=314 naveed at cs.columbia.edu changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE ------- Comment #4 from naveed at cs.columbia.edu 2009-04-05 19:49 ------- *** This bug has been marked as a duplicate of bug 293 *** -- 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 Apr 5 12:49:12 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 05 Apr 2009 19:49:12 +0000 Subject: [Bug 293] JVM fatal error in VM code (HS 14) after NetworkManager disable / reenable cycle Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=293 naveed at cs.columbia.edu changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gabriel.pissot at free.fr ------- Comment #9 from naveed at cs.columbia.edu 2009-04-05 19:49 ------- *** Bug 314 has been marked as a duplicate of this 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 Sun Apr 5 12:50:18 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 05 Apr 2009 19:50:18 +0000 Subject: [Bug 293] JVM fatal error in VM code (HS 14) after NetworkManager disable / reenable cycle Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=293 ------- Comment #10 from naveed at cs.columbia.edu 2009-04-05 19:50 ------- Every now and then, I get this crash without any apparent changes to NetworkManager state. -- 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 redhat.com Mon Apr 6 01:28:45 2009 From: gbenson at redhat.com (Gary Benson) Date: Mon, 6 Apr 2009 09:28:45 +0100 Subject: the ARM and the Shark In-Reply-To: <49CBE5C8.7020607@gmx.net> References: <49CBE5C8.7020607@gmx.net> Message-ID: <20090406082845.GB3260@redhat.com> Robert Schuster wrote: > Behold! > > Starring: > > LLVM 2.5 > OpenJDK Hotspot (Zero+Shark) from IcedTea 1.4.1 > > Special guest: > > Beagleboard (armv7a -> Cortex A8 -> OMAP3530) > > root at beagleboard:~# java -XX:+PrintCompilation HelloWorld > 1 java.lang.String::equals (88 bytes) > Hello World! > > No crash here. :) > > root at beagleboard:~# ./azureus > 1 java.lang.String::equals (88 bytes) > 2 java.lang.String::hashCode (60 bytes) > 3 java.lang.String::indexOf (151 bytes) > file:/usr/share/java/Azureus2.jar ; file:/usr/share/java/swt-gtk-3.4.jar > ; 4file:/home/root/ > ! sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (279 bytes) > 5 java.lang.String::lastIndexOf (156 bytes) > 6 java.lang.String::charAt (33 bytes) > 7 java.util.Properties$LineReader::readLine (452 bytes) > 8 java.util.Properties::loadConvert (505 bytes) > Cannot yet select: 0x8ed18: i32,ch = AtomicCmpSwap 0x8e2f4, 0x8ea70, > 0x8eeb0, 0xdf2a8 <0x11844c:0> alignment=4 > Aborted > > Now is that cool or is that cool? :) That is cool, congratulations! :D > The error message that causes the VM to crash when running Azureus > is caused by LLVM not providing ways to implement a certain atomic > compare and swap function (the so-called llvm.atomic.cmp.swap.i32 > intrinsic). > > Xerxes Ranby and me are currently fight^H^H^H^H^H trying to > understand how to implement this in LLVM. > > From the looks of it the MIPS backend of LLVM also does not have > atomic function support. LLVM didn't have it on PowerPC either until I added it. Or, rather, there was partial support, but it was unusable so I had to replace it. The final patch is at http://markmail.org/message/zm5zwxlr65nacpts, which might help you to find the corresponding ARM files that need altering. Cheers, Gary -- http://gbenson.net/ From gbenson at redhat.com Mon Apr 6 05:58:37 2009 From: gbenson at redhat.com (Gary Benson) Date: Mon, 6 Apr 2009 13:58:37 +0100 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero In-Reply-To: <49D09E0F.40802@zafena.se> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> Message-ID: <20090406125837.GF3260@redhat.com> Xerxes R?nby wrote: > Andrew Haley skrev: > > Xerxes R?nby wrote: > > > Andrew Haley skrev: > > > > Robert Schuster wrote: > > > > > Xerxes R?nby schrieb: > > > > > > This patch will make shark reroute LLVM atomic intrinsics > > > > > > to the existing atomic operations implemented in Zero. > > > > > > > > > > > > This patch are both platform and arch independent. I have > > > > > > tested this patch on Shark compiled for X86, PPC and ARM. > > > > > > > > > > I would make this rerouting optional depending on the > > > > > architecture. LLVM has atomic intrinsic fucntion support > > > > > for x86(-64), powerpc (32,64) and alpha. On those > > > > > architectures you really want to use what LLVM provides. > > > > > > > > > > E.g. on x86 the function is converted into a series of > > > > > machine instructions and no function call. > > > > > > > > Definitely; we really don't want a function call just do do an > > > > atomic cmpxchg. This is really just a workaround for an llvm > > > > bug, and hopefully it'll soon go away. > > > > > > I have done a small investigation to see how large the cost is > > > to use the reroute patch on PPC. The test machine is a > > > PowerBook G4 1.333Ghz with F10 installed. > > > > > > I used Caffeine Mark 3.0 for this benchmark, why? It is a quick > > > benchmark and it includes some graphics tests so it is quite fun > > > to benchmark with. > > > > And, perhaps unsurprisingly, it doesn't use java.lang.concurrent.* > > at all. :-) > > > > Really, the use of lock-free in Java is only just beginning; in the > > future I expect it'll be the obvious way to do things. > > I agree that it is a rather stupid benchmark to use yet I dont have > any benchmark that i know specifically tests for concurrency. My > thinking was to use a benchmark with some gui parts since AWT > internally are multi-threaded AFAIC just to see if i could measure > any effect at all from the use of the reroute. [snip] > If someone know of a better benchmark that tests concurrency > throughfully i would be happy to hear about it. Here's a microbenchmark. On PowerPC, the new instruction is more than three times slower with the function call once the thread's (small) local allocation buffer is exhausted. This definitely needs to be conditional code. Having said that, is there any reason to use atomic intrinsics on a single processor system? And, do multiprocessor ARM systems exist? If the answers to those questions are both no then we could make Shark emit non-atomic code to emulate cmpxchg when it is running on a single processor system, which would sidestep the issue for ARM entirely. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- class Test { static long test(int size) { Object[] array = new Object[size]; long start = System.currentTimeMillis(); for (int i = 0; i < size; i++) array[i] = new Object(); return System.currentTimeMillis() - start; } public static void main(String[] args) { int size = Integer.parseInt(args[0]); while (true) System.out.println("time taken: " + test(size) + "ms"); } } -------------- next part -------------- tooma:[mixtec]$ openjdk-ecj/control/build/linux-ppc/j2sdk-image/bin/java -XX:+PrintCompilation -XX:-UseTLAB -Xm{s,x}1G -XX:+PrintGC Test 1000000 1 java.lang.String::hashCode (60 bytes) 2 java.lang.String::charAt (33 bytes) 3 java.lang.String::indexOf (152 bytes) 4 sun.nio.cs.UTF_8$Encoder::encodeArrayLoop (490 bytes) 5 java.lang.Object:: (1 bytes) time taken: 5590ms 6 Test::test (41 bytes) time taken: 5591ms time taken: 72ms time taken: 72ms time taken: 72ms [GC 64512K->5836K(1040512K), 1.0372710 secs] time taken: 1113ms time taken: 73ms time taken: 72ms time taken: 73ms time taken: 72ms [GC 70348K->11753K(1040512K), 3.4359440 secs] time taken: 3510ms time taken: 72ms time taken: 73ms time taken: 72ms time taken: 72ms time taken: 72ms [GC 76265K->9534K(1040512K), 1.0564340 secs] time taken: 1129ms time taken: 72ms time taken: 73ms time taken: 81ms time taken: 72ms time taken: 73ms [GC 74003K->3689K(1040512K), 0.1494880 secs] time taken: 70ms time taken: 71ms time taken: 72ms time taken: 72ms time taken: 72ms ^C -------------- next part -------------- tooma:[mixtec]$ openjdk-ecj/control/build/linux-ppc/j2sdk-image/bin/java -XX:+PrintCompilation -XX:-UseTLAB -Xm{s,x}1G -XX:+PrintGC Test 1000000 1 java.lang.String::hashCode (60 bytes) 2 java.lang.String::charAt (33 bytes) 3 java.lang.String::indexOf (152 bytes) 4 sun.nio.cs.UTF_8$Encoder::encodeArrayLoop (490 bytes) 5 java.lang.Object:: (1 bytes) time taken: 5612ms 6 Test::test (41 bytes) time taken: 5565ms time taken: 233ms time taken: 231ms time taken: 232ms [GC 64512K->5836K(1040512K), 1.0353880 secs] time taken: 1268ms time taken: 231ms time taken: 231ms time taken: 234ms time taken: 231ms [GC 70348K->11752K(1040512K), 3.4058850 secs] time taken: 3638ms time taken: 231ms time taken: 231ms time taken: 231ms time taken: 230ms time taken: 232ms [GC 76264K->9532K(1040512K), 1.0380370 secs] time taken: 1269ms time taken: 230ms time taken: 231ms time taken: 230ms time taken: 231ms time taken: 231ms [GC 74003K->3688K(1040512K), 0.1496730 secs] time taken: 231ms time taken: 231ms time taken: 232ms time taken: 231ms time taken: 232ms [GC 68200K->9605K(1040512K), 1.0443780 secs] time taken: 1276ms time taken: 230ms time taken: 230ms time taken: 231ms time taken: 231ms ^C From gbenson at redhat.com Mon Apr 6 06:04:58 2009 From: gbenson at redhat.com (Gary Benson) Date: Mon, 6 Apr 2009 14:04:58 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <1238648840.3168.19.camel@localhost.localdomain> References: <49D3917B.2010907@redhat.com> <49D3A8B1.4040201@sun.com> <1238609153.4495.31.camel@localhost.localdomain> <49D3B384.2010609@sun.com> <1238648840.3168.19.camel@localhost.localdomain> Message-ID: <20090406130458.GG3260@redhat.com> Christian Thalinger wrote: > On Wed, 2009-04-01 at 11:33 -0700, Kelly O'Hair wrote: > > The changes to the jdk files look fine. One question though, does > > the name "CORE_BUILD" have a meaning to the JDK, or just the VM? > > Just wondering if a "VM_CORE_BUILD" or "HOTSPOT_CORE_BUILD" might > > be a better name. Not a big deal. > > I don't know, but maybe Gary does... It doesn't have any meaning outside of that used in the jdk makefile it patches, ie that there will be no client libjvm.so. Cheers, Gary -- http://gbenson.net/ From gbenson at redhat.com Mon Apr 6 06:10:54 2009 From: gbenson at redhat.com (Gary Benson) Date: Mon, 6 Apr 2009 14:10:54 +0100 Subject: JAR_KNOWS_ATFILE (was: Make or Makefile problem?) In-Reply-To: References: Message-ID: <20090406131054.GH3260@redhat.com> (Posting to distro-pkg-dev, this is an IcedTea-specific issue...) Neale Ferguson wrote: > I?m building icedtea6-1.4.1 and am encountering the following error: > > /bin/mkdir -p > /home/neale/icedtea6-1.4.1/openjdk-ecj/control/build/linux-s390x/tmp > rm -f > /home/neale/icedtea6-1.4.1/openjdk-ecj/control/build/linux-s390x/tmp/rt-orig > .jar > ifneq (,1) > /bin/sh: -c: line 0: syntax error near unexpected token `,1' > /bin/sh: -c: line 0: `ifneq (,1)' > make[2]: *** > [/home/neale/icedtea6-1.4.1/openjdk-ecj/control/build/linux-s390x/tmp/rt-ori > g.jar] Error 2 > make[2]: Leaving directory `/home/neale/icedtea6-1.4.1/openjdk-ecj/jdk/make' > > It appears due to this part of the recipe: > > $(RT_JAR): $(if $(JAR_KNOWS_ATFILE),$(RT_JAR_FILELIST),$(RT_JAR_ARGLIST)) \ > $(JAR_MANIFEST_FILE) > $(prep-target) > ifneq (,$(JAR_KNOWS_ATFILE)) > (cd $(CLASSBINDIR) && \ > $(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \ > $(JAR_JFLAGS) @$(RT_JAR_FILELIST)) > else > : > > I'm using GNU make 3.81. > > Neale -- http://gbenson.net/ From matthew.flaschen at gatech.edu Mon Apr 6 07:25:47 2009 From: matthew.flaschen at gatech.edu (Matthew Flaschen) Date: Mon, 06 Apr 2009 10:25:47 -0400 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero In-Reply-To: <20090406125837.GF3260@redhat.com> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> Message-ID: <49DA10EB.9080704@gatech.edu> Gary Benson wrote: > Having said that, is there any reason to use atomic intrinsics on a > single processor system? And, do multiprocessor ARM systems exist? I think the answers are yes, and definitely yes. Even with a single core, a thread can still be preempted. And there are definitely multi-processor ARM (http://www.arm.com/products/CPUs/ARMCortex-A9_MPCore.html). Matt Flaschen From bugzilla-daemon at icedtea.classpath.org Mon Apr 6 11:40:45 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 06 Apr 2009 18:40:45 +0000 Subject: [Bug 315] New: OpenJDK 1.6 + tomcat + confluence = Java crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=315 Summary: OpenJDK 1.6 + tomcat + confluence = Java crash Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: major Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: archie at dellroad.org See bug details here: https://bugzilla.novell.com/show_bug.cgi?id=492555 -- 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 omajid at redhat.com Mon Apr 6 13:54:03 2009 From: omajid at redhat.com (Omair Majid) Date: Mon, 06 Apr 2009 20:54:03 +0000 Subject: changeset in /hg/icedtea6: 2009-04-06 Omair Majid changeset 976903c2e02e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=976903c2e02e description: 2009-04-06 Omair Majid * patches/icedtea-jtreg-jrunscript.patch: New patch. Replaces jrunscriptTest.sh with a java version that isnt picky about int vs double changes. * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. diffstat: 4 files changed, 363 insertions(+) ChangeLog | 8 HACKING | 1 Makefile.am | 1 patches/icedtea-jtreg-jrunscript.patch | 353 ++++++++++++++++++++++++++++++++ diffs (394 lines): diff -r 5b9c566ab513 -r 976903c2e02e ChangeLog --- a/ChangeLog Fri Apr 03 13:49:06 2009 -0400 +++ b/ChangeLog Mon Apr 06 16:50:53 2009 -0400 @@ -1,3 +1,11 @@ 2009-04-03 Lillian Angel + + * patches/icedtea-jtreg-jrunscript.patch: New patch. Replaces + jrunscriptTest.sh with a java version that isnt picky about int vs double + changes. + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + * HACKING: Document the above. + 2009-04-03 Lillian Angel * patches/icedtea-lcms.patch: Updated. Re-added _cmsModifyTag data diff -r 5b9c566ab513 -r 976903c2e02e HACKING --- a/HACKING Fri Apr 03 13:49:06 2009 -0400 +++ b/HACKING Mon Apr 06 16:50:53 2009 -0400 @@ -93,6 +93,7 @@ The following patches are currently appl * icedtea-jtreg-printjob-multiple-end.patch: Fix test to not require any user interaction. * icedtea-network-unreachable.patch: Check for ENETUNREACH and EHOSTUNREACH early on when doing a Socket.connect(). * icedtea-jtreg-printjob-edgetest-manual.patch: Mark test that requires user interaction as manual. +* icedtea-jtreg-jrunscript.patch: Fix jrunscript test so it works with newer versions of rhino (by comparing the actual numbers). The following patches are only applied to OpenJDK6 in IcedTea6: diff -r 5b9c566ab513 -r 976903c2e02e Makefile.am --- a/Makefile.am Fri Apr 03 13:49:06 2009 -0400 +++ b/Makefile.am Mon Apr 06 16:50:53 2009 -0400 @@ -691,6 +691,7 @@ ICEDTEA_PATCHES += \ patches/icedtea-jtreg-colortest.patch \ patches/icedtea-jtreg-printjob-multiple-end.patch \ patches/icedtea-jtreg-printjob-edgetest-manual.patch \ + patches/icedtea-jtreg-jrunscript.patch \ patches/icedtea-network-unreachable.patch \ $(DISTRIBUTION_PATCHES) diff -r 5b9c566ab513 -r 976903c2e02e patches/icedtea-jtreg-jrunscript.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-jtreg-jrunscript.patch Mon Apr 06 16:50:53 2009 -0400 @@ -0,0 +1,353 @@ +diff -uNr openjdk/jdk/test/sun/tools/jrunscript.orig/CheckEngine.java openjdk/jdk/test/sun/tools/jrunscript/CheckEngine.java +--- openjdk/jdk/test/sun/tools/jrunscript.orig/CheckEngine.java 2009-04-01 14:23:50.000000000 -0400 ++++ openjdk/jdk/test/sun/tools/jrunscript/CheckEngine.java 2009-04-01 16:23:26.000000000 -0400 +@@ -39,7 +39,8 @@ + * passed. + */ + public class CheckEngine { +- public static void main(String... args) { ++ ++ public static int checkEngine() { + int exitCode = 0; + ScriptEngine engine = + (new ScriptEngineManager()).getEngineByName("js"); +@@ -48,7 +49,11 @@ + !(System.getProperty("java.runtime.name").startsWith("Java(TM)"))) { + exitCode = 2; + } +- ++ return exitCode; ++ } ++ ++ public static void main(String... args) { ++ int exitCode = checkEngine(); + System.exit(exitCode); + } + } +diff -uNr openjdk/jdk/test/sun/tools/jrunscript.orig/jrunscriptTest.sh openjdk/jdk/test/sun/tools/jrunscript/jrunscriptTest.sh +--- openjdk/jdk/test/sun/tools/jrunscript.orig/jrunscriptTest.sh 2009-04-01 14:23:50.000000000 -0400 ++++ openjdk/jdk/test/sun/tools/jrunscript/jrunscriptTest.sh 1969-12-31 19:00:00.000000000 -0500 +@@ -1,80 +0,0 @@ +-#!/bin/sh +- +-# +-# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +-# +-# This code is free software; you can redistribute it and/or modify it +-# under the terms of the GNU General Public License version 2 only, as +-# published by the Free Software Foundation. +-# +-# This code is distributed in the hope that it will be useful, but WITHOUT +-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +-# version 2 for more details (a copy is included in the LICENSE file that +-# accompanied this code). +-# +-# You should have received a copy of the GNU General Public License version +-# 2 along with this work; if not, write to the Free Software Foundation, +-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +-# +-# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, +-# CA 95054 USA or visit www.sun.com if you need additional information or +-# have any questions. +-# +- +- +-# @test +-# @bug 6265810 6705893 +-# @build CheckEngine +-# @run shell jrunscriptTest.sh +-# @summary Test that output of 'jrunscript' interactive matches the repl.out file +- +-. ${TESTSRC-.}/common.sh +- +-setup +-${JAVA} -cp ${TESTCLASSES} CheckEngine +-if [ $? -eq 2 ]; then +- echo "No js engine found and engine not required; test vacuously passes." +- exit 0 +-fi +- +-rm -f jrunscriptTest.out 2>/dev/null +-${JRUNSCRIPT} > jrunscriptTest.out 2>&1 </dev/null +- exit 1 +-fi +- +-rm -f jrunscriptTest.out 2>/dev/null +-${JRUNSCRIPT} -l js > jrunscriptTest.out 2>&1 </dev/null +- exit 1 +-fi +- +-rm -f jrunscriptTest.out +-echo "Passed" +-exit 0 +diff -uNr openjdk/jdk/test/sun/tools/jrunscript.orig/Testjrunscript.java openjdk/jdk/test/sun/tools/jrunscript/Testjrunscript.java +--- openjdk/jdk/test/sun/tools/jrunscript.orig/Testjrunscript.java 1969-12-31 19:00:00.000000000 -0500 ++++ openjdk/jdk/test/sun/tools/jrunscript/Testjrunscript.java 2009-04-01 16:52:36.000000000 -0400 +@@ -0,0 +1,239 @@ ++/* ++ * Copyright 2009 Red Hat, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++ ++/* ++ at test ++ at bug 6265810 6705893 ++ at build CheckEngine ++ at run main Testjrunscript ++ at summary Test that output of 'jrunscript' interactive matches the expected output ++*/ ++ ++import java.io.BufferedReader; ++import java.io.File; ++import java.io.FileNotFoundException; ++import java.io.IOException; ++import java.io.InputStream; ++import java.io.InputStreamReader; ++import java.util.LinkedList; ++import java.util.List; ++ ++ ++ ++class OutputMismatchException extends RuntimeException { ++ ++ private String actualLine; ++ private String expectedLine; ++ ++ public OutputMismatchException(String actualLine, String expectedLine) { ++ this.expectedLine = expectedLine; ++ this.actualLine = actualLine; ++ } ++ ++ public String toString() { ++ return "Output mismatch:\n" + "Expected: " + expectedLine + "\n" ++ + "Got : " + actualLine; ++ } ++ ++}; ++ ++public class Testjrunscript { ++ ++ public static final String[] jrunscriptInput = new String[] { ++ "v = 2 + 5;", ++ "v *= 5;", ++ "v = v + \" is the value\";", ++ "if (v != 0) { println('yes v != 0'); }", ++ "java.lang.System.out.println('hello world from script');", ++ "new java.lang.Runnable() { run: function() { println('I am runnable'); }}.run();" }; ++ ++ public static final String INTERPRETER_PROMPT = "js> "; ++ ++ public static final String[] expectedOutput = new String[] { ++ INTERPRETER_PROMPT + "7.0", ++ INTERPRETER_PROMPT + "35.0", ++ INTERPRETER_PROMPT + "35 is the value", ++ INTERPRETER_PROMPT + "yes v != 0", ++ INTERPRETER_PROMPT + "hello world from script", ++ INTERPRETER_PROMPT + "I am runnable", ++ INTERPRETER_PROMPT, }; ++ ++ public static final double EPSILON = 0.000001; ++ ++ /** ++ * Compares the expected output as stored in expectedOutput against the ++ * actual output read in from processOutput ++ * ++ * @param processOutput ++ * @throws IOException ++ */ ++ private static void checkOutput(InputStream processOutput) ++ throws IOException { ++ ++ BufferedReader lineReader = new BufferedReader(new InputStreamReader( ++ processOutput)); ++ ++ String actualLine; ++ String expectedLine; ++ for (int i = 0; i < expectedOutput.length; i++) { ++ expectedLine = expectedOutput[i]; ++ actualLine = lineReader.readLine(); ++ if (actualLine == null) { ++ throw new OutputMismatchException("", expectedLine); ++ } ++ checkLinesMatch(actualLine, expectedLine); ++ } ++ ++ actualLine = lineReader.readLine(); ++ if (actualLine != null) { ++ throw new OutputMismatchException(actualLine, ""); ++ } ++ } ++ ++ /** ++ * Compares two lines and throws {@link OutputMismatchException} if they ++ * dont match. Allows for different representations of numbers. ++ * ++ * @param actualLine ++ * the actual output ++ * @param expectedLine ++ * the expected output ++ */ ++ private static void checkLinesMatch(String actualLine, String expectedLine) { ++ String delimiter = "[ ]+"; ++ String[] actualTokens = actualLine.split(delimiter); ++ String[] expectedTokens = expectedLine.split(delimiter); ++ if (actualTokens.length != expectedTokens.length) { ++ throw new OutputMismatchException(actualLine, expectedLine); ++ } ++ ++ String actualToken; ++ String expectedToken; ++ for (int i = 0; i < expectedTokens.length; i++) { ++ actualToken = actualTokens[i]; ++ expectedToken = expectedTokens[i]; ++ if (actualToken.equals(expectedToken)) { ++ continue; ++ } ++ ++ // if tokens dont match exactly, try converting them both to doubles ++ // and then comparing. some versions of rhino return int for some ++ // operations, while others return floats/doubles ++ try { ++ Double actualDouble = Double.valueOf(actualToken); ++ Double expectedDouble = Double.valueOf(expectedToken); ++ if (Math.abs(expectedDouble - actualDouble) < EPSILON) { ++ continue; ++ } else { ++ throw new OutputMismatchException(actualLine, expectedLine); ++ } ++ } catch (NumberFormatException nfe) { ++ throw new OutputMismatchException(actualLine, expectedLine); ++ } ++ } ++ ++ } ++ ++ /** ++ * @return the path to the jrunscript binary ++ */ ++ public static String getPathToJrunscript() throws FileNotFoundException { ++ ++ File jreDir = new File(System.getProperty("java.home")); ++ if (!jreDir.isDirectory()) { ++ throw new RuntimeException("java.home doesnt point to a directory"); ++ } ++ ++ String jdkDir = jreDir.getParent(); ++ String pathToJrunscript = jdkDir + File.separatorChar + "bin" ++ + File.separatorChar + "jrunscript"; ++ File jrunscriptBinary = new File(pathToJrunscript); ++ if (!jrunscriptBinary.exists()) { ++ throw new FileNotFoundException("File " ++ + jrunscriptBinary.getAbsolutePath()); ++ } ++ return pathToJrunscript; ++ ++ } ++ ++ /** ++ * Runs the given command to execute jrunscript and checks to make sure it ++ * works ++ */ ++ public static void checkJrunscript(List command) throws IOException { ++ System.out.print("Testing jrunscript:"); ++ for (String cmd : command) { ++ System.out.print(" " + cmd); ++ } ++ System.out.println(); ++ ++ ++ ProcessBuilder pb = new ProcessBuilder(command); ++ pb.redirectErrorStream(true); ++ ++ Process jrunscript = pb.start(); ++ ++ InputStream input = jrunscript.getInputStream(); ++ String inputLine; ++ for (int i = 0; i < jrunscriptInput.length; i++) { ++ inputLine = jrunscriptInput[i]; ++ jrunscript.getOutputStream().write(inputLine.getBytes()); ++ jrunscript.getOutputStream().write(new byte[] { '\n' }); ++ } ++ jrunscript.getOutputStream().close(); ++ ++ checkOutput(input); ++ ++ try { ++ jrunscript.waitFor(); ++ } catch (InterruptedException e) { ++ throw new RuntimeException(e); ++ } ++ ++ if (jrunscript.exitValue() != 0) { ++ throw new RuntimeException("jrunscript failed"); ++ } ++ } ++ ++ /** ++ * test if jrunscript works properly ++ */ ++ public static void main(String[] args) throws IOException, ++ InterruptedException { ++ ++ if (CheckEngine.checkEngine() == 2) { ++ System.out ++ .println("No js engine found and engine not required; test vacuously passes."); ++ } ++ ++ // check jrunscript without any other args ++ List command = new LinkedList(); ++ command.add(getPathToJrunscript()); ++ checkJrunscript(command); ++ ++ // check jrunscript -l js ++ command.add("-l"); ++ command.add("js"); ++ checkJrunscript(command); ++ ++ System.out.println("Passed"); ++ ++ } ++} From mvfranz at gmail.com Mon Apr 6 16:45:47 2009 From: mvfranz at gmail.com (Michael Franz) Date: Mon, 6 Apr 2009 19:45:47 -0400 Subject: JAR_KNOWS_ATFILE (was: Make or Makefile problem?) In-Reply-To: <20090406131054.GH3260@redhat.com> References: <20090406131054.GH3260@redhat.com> Message-ID: I have had the same problem on IcedTea7 when trying to build on OS X 10.4.11, the same directory builds fine on OS X 10.5.6. I cannot figure out what is different other than the OS and gcc. Michael -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090406/db107922/attachment.html From aph at redhat.com Tue Apr 7 02:08:34 2009 From: aph at redhat.com (Andrew Haley) Date: Tue, 07 Apr 2009 10:08:34 +0100 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero In-Reply-To: <20090406125837.GF3260@redhat.com> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> Message-ID: <49DB1812.8000500@redhat.com> Gary Benson wrote: > Having said that, is there any reason to use atomic intrinsics on a > single processor system? Yes. The problem is essentially the same on multi-core and single-core systems. A thread switch can happen at any time. > And, do multiprocessor ARM systems exist? > If the answers to those questions are both no then we could make Shark > emit non-atomic code to emulate cmpxchg when it is running on a single > processor system, which would sidestep the issue for ARM entirely. I don't think that's possible without making a system call. Andrew. From gbenson at redhat.com Tue Apr 7 02:51:01 2009 From: gbenson at redhat.com (Gary Benson) Date: Tue, 7 Apr 2009 10:51:01 +0100 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero In-Reply-To: <49DA10EB.9080704@gatech.edu> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> <49DA10EB.9080704@gatech.edu> Message-ID: <20090407095101.GB3204@redhat.com> Matthew Flaschen wrote: > Gary Benson wrote: > > Having said that, is there any reason to use atomic intrinsics on a > > single processor system? And, do multiprocessor ARM systems exist? > > I think the answers are yes, and definitely yes. Even with a single > core, a thread can still be preempted. And there are definitely > multi-processor ARM > (http://www.arm.com/products/CPUs/ARMCortex-A9_MPCore.html). Ok, so there's no way around this. I'm thinking is that ARM is a special case here: you could implement SharkBuilder::CreateCmpxchg* on ARM by inlining arm_compare_and_swap from atomic_linux_zero.inline.hpp. That wouldn't require any LLVM modifications, and it wouldn't be any slower than a "real" implementation of llvm.atomic.cmp.swap.i32 because either way the atomic part is handled by the call to __kernel_cmpxchg so the generated code would be the same. Obviously it would be preferable for this code to be in LLVM rather than in Shark, but I know that implementing it in LLVM won't be quick or easy so I can live with a bit of clutter in Shark for this. What I'm not happy with is the idea of a generic solution that would perform a function call on platforms that don't require one, because that _would_ be slower than an implementation of llvm.atomic.cmp.swap. For platforms that have instructions to do this I'm going to insist people bite the bullet and implement the intrinsic. Cheers, Gary -- http://gbenson.net/ From omajid at redhat.com Tue Apr 7 07:32:01 2009 From: omajid at redhat.com (Omair Majid) Date: Tue, 07 Apr 2009 14:32:01 +0000 Subject: changeset in /hg/icedtea6: 2009-04-07 Omair Majid changeset 953caf041bef in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=953caf041bef description: 2009-04-07 Omair Majid * patches/icedtea-dnd-filelists.patch: New patch. Fix drag and drop behaviour when dragging a file list between JVMs (S5079469). Backported from OpenJDK. * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. diffstat: 4 files changed, 29 insertions(+) ChangeLog | 8 ++++++++ HACKING | 1 + Makefile.am | 1 + patches/icedtea-dnd-filelists.patch | 19 +++++++++++++++++++ diffs (60 lines): diff -r 976903c2e02e -r 953caf041bef ChangeLog --- a/ChangeLog Mon Apr 06 16:50:53 2009 -0400 +++ b/ChangeLog Tue Apr 07 10:28:20 2009 -0400 @@ -1,3 +1,11 @@ 2009-04-06 Omair Majid + + * patches/icedtea-dnd-filelists.patch: New patch. Fix drag and drop + behaviour when dragging a file list between JVMs (S5079469). Backported + from OpenJDK. + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + * HACKING: Document the above. + 2009-04-06 Omair Majid * patches/icedtea-jtreg-jrunscript.patch: New patch. Replaces diff -r 976903c2e02e -r 953caf041bef HACKING --- a/HACKING Mon Apr 06 16:50:53 2009 -0400 +++ b/HACKING Tue Apr 07 10:28:20 2009 -0400 @@ -104,6 +104,7 @@ 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-dnd-filelists.patch: Fix drag and drop behaviour when dragging a file list between JVMs (S5079469). Backported from OpenJDK. The following patches are only applied to OpenJDK in IcedTea: diff -r 976903c2e02e -r 953caf041bef Makefile.am --- a/Makefile.am Mon Apr 06 16:50:53 2009 -0400 +++ b/Makefile.am Tue Apr 07 10:28:20 2009 -0400 @@ -693,6 +693,7 @@ ICEDTEA_PATCHES += \ patches/icedtea-jtreg-printjob-edgetest-manual.patch \ patches/icedtea-jtreg-jrunscript.patch \ patches/icedtea-network-unreachable.patch \ + patches/icedtea-dnd-filelists.patch \ $(DISTRIBUTION_PATCHES) stamps/extract.stamp: stamps/download.stamp diff -r 976903c2e02e -r 953caf041bef patches/icedtea-dnd-filelists.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-dnd-filelists.patch Tue Apr 07 10:28:20 2009 -0400 @@ -0,0 +1,19 @@ +--- openjdk/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java.orig 2009-04-06 16:17:44.000000000 -0400 ++++ openjdk/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java 2009-04-06 16:33:42.000000000 -0400 +@@ -1327,12 +1327,11 @@ + throw new IOException(pae.getMessage()); + } + +- for (String fileName: fileList) { +- byte[] bytes = fileName.getBytes(); +- bos.write(bytes, 0, bytes.length); +- bos.write(0); ++ for (int i = 0; i < fileList.size(); i++) { ++ byte[] bytes = fileList.get(i).getBytes(); ++ if (i != 0) bos.write(0); ++ bos.write(bytes, 0, bytes.length); + } +- bos.write(0); + + // Source data is an InputStream. For arbitrary flavors, just grab the + // bytes and dump them into a byte array. For text flavors, decode back From omajid at redhat.com Tue Apr 7 07:34:30 2009 From: omajid at redhat.com (Omair Majid) Date: Tue, 07 Apr 2009 10:34:30 -0400 Subject: [FYI] Fix drag and drop behaviour (S5079469) Message-ID: <49DB6476.2060305@redhat.com> Hi, The attached patch fixes drag and drop behaviour when dragging a file list between JVMs. Backported from OpenJDK. Also makes the java/awt/dnd/FileListBetweenJVMsTest/ test pass. ChangeLog: 2009-04-07 Omair Majid * patches/icedtea-dnd-filelists.patch: New patch. Fix drag and drop behaviour when dragging a file list between JVMs (S5079469). Backported from OpenJDK. * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: dnd.patch Type: text/x-patch Size: 2173 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090407/f38f6359/dnd.patch From gnu_andrew at member.fsf.org Tue Apr 7 12:01:15 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Tue, 7 Apr 2009 20:01:15 +0100 Subject: IcedTea7 1.9.1 released Message-ID: <17c6771e0904071201h793c56cet991279dc973bb51c@mail.gmail.com> We are pleased to announce a new minor release of IcedTea[7], containing a number of security updates: New in release 1.9.1 (2009-04-07) - Security fixes for: * 6536193 * 6610888 * 6610896 * 6630639 * 6632886 * 6636360 * 6652463 * 6656633 * 6658158 * 6691246 * 6717680 * 6721651 * 6737315 * 6792554 * 6804996 * 6804997 * 6804998 - LCMS security fixes. The tarball can be downloaded here: http://icedtea.classpath.org/download/source/icedtea-1.9.1.tar.gz The following people helped with this release: Lillian Angel, Andrew John Hughes Full build requirements and instructions are in INSTALL: $ ./configure $ make -- 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 dbhole at redhat.com Tue Apr 7 12:11:15 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 7 Apr 2009 15:11:15 -0400 Subject: RFC: 2 minor fixes for the plugin Message-ID: <20090407191115.GA27181@redhat.com> Attached are 2 patches for 2 minor issues in the plugin. The first one (rhbz478561.patch) fixes a problem whereby the plugin hangs if Java side returns an empty string. Thanks to Omair for tracing the issue! The second patch bumps the maximum number of workers from 3 to 20. With the new proxy support patch, this patch is now necessary to support pages with multiple applets. Test instructions for patch1: https://bugzilla.redhat.com/show_bug.cgi?id=478561 Test site for patch2 (won't work with HEAD - patch): http://www.w3.org/People/mimasa/test/object/java/Othello -- ChangeLog -- 2009-04-07 Deepak Bhole * IcedTeaPlugin.cc: Fix rhbz478561 (freeze with empty string return from Java side). * plugin/icedtea/sun/applet/PluginMessageConsumer.java: Bump max workers from 3 to 20, limiting initial to 3, and growing if/when needed. --------------- Deepak -------------- next part -------------- diff -r 953caf041bef IcedTeaPlugin.cc --- a/IcedTeaPlugin.cc Tue Apr 07 10:28:20 2009 -0400 +++ b/IcedTeaPlugin.cc Tue Apr 07 14:54:00 2009 -0400 @@ -588,7 +588,7 @@ PLUGIN_DEBUG_0ARG ("RECEIVE VALUE 1\n"); \ ResultContainer *resultC; \ factory->result_map.Get(reference, &resultC); \ - while (resultC->returnValue == "" && \ + while (resultC->returnValue.IsVoid() == PR_TRUE && \ resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ @@ -607,7 +607,7 @@ PLUGIN_DEBUG_0ARG("RECEIVE SIZE 1\n"); \ ResultContainer *resultC; \ factory->result_map.Get(reference, &resultC); \ - while (resultC->returnValue == "" && \ + while (resultC->returnValue.IsVoid() == PR_TRUE && \ resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ @@ -631,7 +631,7 @@ PLUGIN_DEBUG_0ARG("RECEIVE STRING 1\n"); \ ResultContainer *resultC; \ factory->result_map.Get(reference, &resultC); \ - while (resultC->returnValue == "" && \ + while (resultC->returnValue.IsVoid() == PR_TRUE && \ resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ @@ -655,7 +655,7 @@ PLUGIN_DEBUG_0ARG("RECEIVE STRING UCS 1\n"); \ ResultContainer *resultC; \ factory->result_map.Get(reference, &resultC); \ - while (resultC->returnValueUCS.IsEmpty() && \ + while (resultC->returnValueUCS.IsVoid() == PR_TRUE && \ resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ @@ -855,6 +855,8 @@ returnIdentifier = -1; returnValue.Truncate(); returnValueUCS.Truncate(); + returnValue.SetIsVoid(PR_TRUE); + returnValueUCS.SetIsVoid(PR_TRUE); errorMessage.Truncate(); errorOccurred = PR_FALSE; @@ -877,6 +879,8 @@ returnIdentifier = -1; returnValue.Truncate(); returnValueUCS.Truncate(); + returnValue.SetIsVoid(PR_TRUE); + returnValueUCS.SetIsVoid(PR_TRUE); errorMessage.Truncate(); errorOccurred = PR_FALSE; @@ -3352,7 +3356,8 @@ ResultContainer *resultC; result_map.Get(reference, &resultC); - resultC->returnValue = rest; + resultC->returnValue = rest; + resultC->returnValue.SetIsVoid(PR_FALSE); PLUGIN_DEBUG_1ARG ("PLUGIN GOT RETURN VALUE: %s\n", resultC->returnValue.get()); } else if (command == "GetStringUTFChars") @@ -3440,6 +3445,7 @@ ResultContainer *resultC; result_map.Get(reference, &resultC); resultC->returnValueUCS = returnValueUCS; + resultC->returnValueUCS.SetIsVoid(PR_FALSE); } // Do nothing for: SetStaticField, SetField, ExceptionClear, -------------- next part -------------- diff -r 953caf041bef plugin/icedtea/sun/applet/PluginMessageConsumer.java --- a/plugin/icedtea/sun/applet/PluginMessageConsumer.java Tue Apr 07 10:28:20 2009 -0400 +++ b/plugin/icedtea/sun/applet/PluginMessageConsumer.java Tue Apr 07 14:54:00 2009 -0400 @@ -35,7 +35,6 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ - package sun.applet; import java.util.ArrayList; @@ -45,17 +44,19 @@ class PluginMessageConsumer { - int MAX_WORKERS = 3; + int MAX_WORKERS = 20; LinkedList readQueue = new LinkedList(); ArrayList workers = new ArrayList(); PluginStreamHandler streamHandler = null; + AppletSecurity as; public PluginMessageConsumer(PluginStreamHandler streamHandler) { - AppletSecurity as = new AppletSecurity(); + as = new AppletSecurity(); this.streamHandler = streamHandler; - for (int i=0; i < MAX_WORKERS; i++) { + // create some workers at the start... + for (int i=0; i < 3; i++) { PluginDebug.debug("Creating worker " + i); PluginMessageHandlerWorker worker = new PluginMessageHandlerWorker(streamHandler, i, as); worker.start(); @@ -96,6 +97,19 @@ return worker; } } + + // If we have less than MAX_WORKERS, create a new worker + if (workers.size() < MAX_WORKERS) { + PluginDebug.debug("Cannot find free worker, creating worker " + workers.size()); + PluginMessageHandlerWorker worker = new PluginMessageHandlerWorker(streamHandler, workers.size(), as); + worker.start(); + workers.add(worker); + worker.busy(); + return worker; + } else { + // else wait + } + Thread.yield(); } From gnu_andrew at member.fsf.org Wed Apr 8 12:58:05 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 8 Apr 2009 20:58:05 +0100 Subject: Binary files in Nimbus Message-ID: <17c6771e0904081258x114ae22eyf03608e3f5e9c1a2@mail.gmail.com> >Peter, > >Earlier today you pushed Nimbus into the JDK 7 Swing forest [1]. I'm >happy to see Nimbus get in, but later on the #openjdk IRC channel Andrew >Hughes pointed out that the changes include seven binary jar files [2]. > >When we open-sourced JDK 7 we took great pains to eliminate all binary >files from the source tree, and as a matter of policy they are no longer >allowed. In retrospect we could've communicated this more often and more >widely, and we'll certainly do that going forward. I'm also going to >look into enhancing the jcheck extension to check for binary files. > >In the meantime, we need to get rid of these jar files. I suggest that >the best route forward is for me to do a rollback of the Nimbus changeset >on the server side and then for you to rework the code so that these jar >files are no longer required. > >I'd still like to see Nimbus in M3, and I'll support integration into a >later build as long as it's okay with SQE, but removing these jar files >is a higher priority. Aside from the fact that they're binary files, >some of them contain code that has not been approved by Sun Legal for >inclusion in OpenJDK. > >If anyone sees a problem with this plan, please let me know ASAP. > >- Mark > > >[1] http://hg.openjdk.java.net/jdk7/swing/jdk/rev/c5cd40f1f596 >[2] http://hg.openjdk.java.net/jdk7/swing/jdk/file/c5cd40f1f596/make/tools/swing-nimbus/libs/ My thanks to Mark for raising this. Blobs of unknown JAR code have been a problem in the past for including OpenJDK in the GNU/Linux distributions, and it would be a shame to take a backwards step on this. These ones do just appear to be http://jibx.sourceforge.net/, so providing some way to point to the JAR files instead should be sufficient. awt16.jar can be dumped, given OpenJDK (AFAIR) is supposed to be built with a 1.6 JDK. On the positive side, the patch applies to OpenJDK6 with a few simple modifications, and by copying across the JAR files manually to make/tools/swing-nimbus/libs, I was able to build with the following patch: https://bugs.openjdk.java.net/show_bug.cgi?id=100037 So anyone wanting to try Nimbus on OpenJDK6 today, feel free :) -- 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 Wed Apr 8 14:59:39 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 08 Apr 2009 21:59:39 +0000 Subject: [Bug 316] New: unexpected error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=316 Summary: unexpected error Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: critical Priority: P1 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: rodrigof_silva at yahoo.com # # An unexpected error has been detected by Java Runtime Environment: # # SIGSEGV (0xb) at pc=0xb7f59776, pid=23657, tid=2344299408 # # Java VM: OpenJDK Server VM (1.6.0-b09 mixed mode linux-x86) # Problematic frame: # C [libc.so.6+0x74776] memcpy+0x46 # # If you would like to submit a bug report, please visit: # http://icedtea.classpath.org/bugzilla # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # --------------- T H R E A D --------------- Current thread (0x08400800): JavaThread "Thread-28" [_thread_in_native, id=24920, stack(0x8bb62000,0x8bbb3000)] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=2 (SEGV_ACCERR), si_addr=0x8c72e000 Registers: EAX=0x00000002, EBX=0xb7458ff4, ECX=0x000004e9, EDX=0x8c722cd6 ESP=0x8bbb0ce0, EBP=0x8bbb0d30, ESI=0x8c72e000, EDI=0x082300ec EIP=0xb7f59776, CR2=0x8c72e000, EFLAGS=0x00210202 Top of Stack: (sp=0x8bbb0ce0) 0x8bbb0ce0: 00000001 b74555d7 08224df0 8c722d04 0x8bbb0cf0: 0000c6a2 b78fccba b7ab4ff4 00000067 0x8bbb0d00: 08234cc8 6f6d0001 00000000 00000000 0x8bbb0d10: 00000036 0000c6a2 08401c80 08234cc8 0x8bbb0d20: b745543f b7458ff4 8c6ae5bc 081c4a78 0x8bbb0d30: 8bbb0d50 b7455b17 00000000 8bbb0d92 0x8bbb0d40: 3627b36a b7458ff4 8bbb0d92 00000036 0x8bbb0d50: 8bbb11a0 b745469f 8c6aa660 8bbb0d92 Instructions: (pc=0xb7f59776) 0xb7f59766: 00 00 00 74 02 a4 49 50 89 c8 c1 e9 02 83 e0 03 0xb7f59776: f3 a5 89 c1 f3 a4 58 89 c7 89 d6 8b 44 24 04 c3 Stack: [0x8bb62000,0x8bbb3000], sp=0x8bbb0ce0, free space=315k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [libc.so.6+0x74776] memcpy+0x46 C [libzip.so+0x4b17] ZIP_GetEntry+0xc7 C [libzip.so+0x369f] Java_java_util_zip_ZipFile_getEntry+0xdf J java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J J java.util.zip.ZipFile.getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry; v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter J sun.misc.URLClassPath.getResource(Ljava/lang/String;Z)Lsun/misc/Resource; v ~BufferBlob::Interpreter v ~BufferBlob::StubRoutines (1) v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::StubRoutines (1) v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::Interpreter v ~BufferBlob::StubRoutines (1) --------------- P R O C E S S --------------- Java Threads: ( => current thread ) =>0x08400800 JavaThread "Thread-28" [_thread_in_native, id=24920, stack(0x8bb62000,0x8bbb3000)] 0x8bd65400 JavaThread "DestroyJavaVM" [_thread_blocked, id=23658, stack(0xb7471000,0xb74c2000)] 0x8bf9f000 JavaThread "Thread-19" [_thread_blocked, id=23694, stack(0x8bbbc000,0x8bc0d000)] 0x08235000 JavaThread "Thread-17" [_thread_blocked, id=23686, stack(0x8bc0d000,0x8bc5e000)] 0x8bfc4c00 JavaThread "Thread-16" [_thread_in_native, id=23685, stack(0x8bc5e000,0x8bcaf000)] 0x8bd35400 JavaThread "MySQL Statement Cancellation Timer" daemon [_thread_blocked, id=23673, stack(0x8bcaf000,0x8bd00000)] 0x8c6e7800 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" daemon [_thread_blocked, id=23672, stack(0x8be0d000,0x8be5e000)] 0x8bf9d000 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" daemon [_thread_blocked, id=23671, stack(0x8be5e000,0x8beaf000)] 0x8c6f4000 JavaThread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" daemon [_thread_blocked, id=23670, stack(0x8c005000,0x8c056000)] 0x8bf75000 JavaThread "Timer-0" daemon [_thread_blocked, id=23669, stack(0x8beaf000,0x8bf00000)] 0x8c6a3400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=23667, stack(0x8c1c0000,0x8c211000)] 0x8c6a1400 JavaThread "CompilerThread1" daemon [_thread_blocked, id=23666, stack(0x8c211000,0x8c292000)] 0x8c6a0000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=23665, stack(0x8c292000,0x8c313000)] 0x8c69f000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=23664, stack(0x8c313000,0x8c364000)] 0x8c685000 JavaThread "Finalizer" daemon [_thread_blocked, id=23663, stack(0x8c72e000,0x8c77f000)] 0x8c684000 JavaThread "Reference Handler" daemon [_thread_blocked, id=23662, stack(0x8c3a3000,0x8c3f4000)] Other Threads: 0x8c680c00 VMThread [stack: 0x8c3f4000,0x8c475000] [id=23661] 0x8c6a5000 WatcherThread [stack: 0x8c13f000,0x8c1c0000] [id=23668] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap PSYoungGen total 50944K, used 17551K [0xb0b10000, 0xb4070000, 0xb4310000) eden space 48384K, 31% used [0xb0b10000,0xb19bcc00,0xb3a50000) from space 2560K, 98% used [0xb3d30000,0xb3fa7388,0xb3fb0000) to space 2944K, 0% used [0xb3a50000,0xb3a50000,0xb3d30000) PSOldGen total 28672K, used 2885K [0x94b10000, 0x96710000, 0xb0b10000) object space 28672K, 10% used [0x94b10000,0x94de16e8,0x96710000) PSPermGen total 16384K, used 15848K [0x8cb10000, 0x8db10000, 0x94b10000) object space 16384K, 96% used [0x8cb10000,0x8da8a388,0x8db10000) Dynamic libraries: 08048000-08050000 r-xp 00000000 09:00 11912458 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java 08050000-08051000 r--p 00008000 09:00 11912458 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java 08051000-08052000 rw-p 00009000 09:00 11912458 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/bin/java 08052000-0883a000 rw-p 08052000 00:00 0 [heap] 8bb62000-8bb65000 ---p 8bb62000 00:00 0 8bb65000-8bbb3000 rw-p 8bb65000 00:00 0 8bbb3000-8bbba000 r-xp 00000000 09:00 11912418 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libnio.so 8bbba000-8bbbb000 r--p 00006000 09:00 11912418 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libnio.so 8bbbb000-8bbbc000 rw-p 00007000 09:00 11912418 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libnio.so 8bbbc000-8bbbf000 ---p 8bbbc000 00:00 0 8bbbf000-8bc0d000 rw-p 8bbbf000 00:00 0 8bc0d000-8bc10000 ---p 8bc0d000 00:00 0 8bc10000-8bc5e000 rw-p 8bc10000 00:00 0 8bc5e000-8bc61000 ---p 8bc5e000 00:00 0 8bc61000-8bcaf000 rw-p 8bc61000 00:00 0 8bcaf000-8bcb2000 ---p 8bcaf000 00:00 0 8bcb2000-8bdff000 rw-p 8bcb2000 00:00 0 8bdff000-8be00000 ---p 8bdff000 00:00 0 8be07000-8be0d000 r--s 000fd000 09:00 11912440 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/resources.jar 8be0d000-8be10000 ---p 8be0d000 00:00 0 8be10000-8be5e000 rw-p 8be10000 00:00 0 8be5e000-8be61000 ---p 8be5e000 00:00 0 8be61000-8beaf000 rw-p 8be61000 00:00 0 8beaf000-8beb2000 ---p 8beaf000 00:00 0 8beb2000-8bffd000 rw-p 8beb2000 00:00 0 8bffd000-8c000000 ---p 8bffd000 00:00 0 8c005000-8c008000 ---p 8c005000 00:00 0 8c008000-8c056000 rw-p 8c008000 00:00 0 8c056000-8c05c000 r-xp 00000000 09:00 11912415 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libmanagement.so 8c05c000-8c05d000 r--p 00005000 09:00 11912415 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libmanagement.so 8c05d000-8c05e000 rw-p 00006000 09:00 11912415 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libmanagement.so 8c05e000-8c093000 r--s 00000000 09:00 705327 /var/run/nscd/dbFmrmcd (deleted) 8c093000-8c0cc000 rw-p 8c093000 00:00 0 8c0cc000-8c0e0000 r-xp 00000000 09:00 11912417 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libnet.so 8c0e0000-8c0e1000 r--p 00013000 09:00 11912417 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libnet.so 8c0e1000-8c0e2000 rw-p 00014000 09:00 11912417 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libnet.so 8c0e2000-8c0e3000 r--s 00002000 09:00 8324022 /home/rodrigofer/tests/server1/lib/slf4j-log4j12-1.5.6.jar (deleted) 8c0e3000-8c0e5000 r--s 00004000 09:00 8324023 /home/rodrigofer/tests/server1/lib/slf4j-api-1.5.6.jar (deleted) 8c0e5000-8c0ec000 r--s 000a7000 09:00 8324025 /home/rodrigofer/tests/server1/lib/mysql-connector-java-5.1.7-bin.jar (deleted) 8c0ec000-8c0f3000 r--s 00059000 09:00 8324012 /home/rodrigofer/tests/server1/lib/log4j-1.2.15.jar (deleted) 8c0f3000-8c0f5000 r--s 00002000 09:00 8324019 /home/rodrigofer/tests/server1/lib/jta-1.1.jar (deleted) 8c0f5000-8c0fb000 r--s 0006d000 09:00 8324024 /home/rodrigofer/tests/server1/lib/javassist-3.4.GA.jar (deleted) 8c0fb000-8c0fe000 r--s 0000d000 09:00 8324014 /home/rodrigofer/tests/server1/lib/hibernate-validator.jar (deleted) 8c0fe000-8c101000 r--s 0000e000 09:00 8324015 /home/rodrigofer/tests/server1/lib/hibernate-commons-annotations.jar (deleted) 8c101000-8c106000 r--s 00040000 09:00 8324021 /home/rodrigofer/tests/server1/lib/hibernate-annotations.jar (deleted) 8c106000-8c132000 r--s 00278000 09:00 8324013 /home/rodrigofer/tests/server1/lib/hibernate3.jar (deleted) 8c132000-8c13f000 r--s 0007c000 09:00 8324026 /home/rodrigofer/tests/server1/lib/commons-collections-3.1.jar (deleted) 8c13f000-8c140000 ---p 8c13f000 00:00 0 8c140000-8c1c0000 rw-p 8c140000 00:00 0 8c1c0000-8c1c3000 ---p 8c1c0000 00:00 0 8c1c3000-8c211000 rw-p 8c1c3000 00:00 0 8c211000-8c214000 ---p 8c211000 00:00 0 8c214000-8c292000 rw-p 8c214000 00:00 0 8c292000-8c295000 ---p 8c292000 00:00 0 8c295000-8c313000 rw-p 8c295000 00:00 0 8c313000-8c316000 ---p 8c313000 00:00 0 8c316000-8c364000 rw-p 8c316000 00:00 0 8c364000-8c3a3000 r--p 00000000 09:00 12247050 /usr/lib/locale/pt_BR.utf8/LC_CTYPE 8c3a3000-8c3a6000 ---p 8c3a3000 00:00 0 8c3a6000-8c3f4000 rw-p 8c3a6000 00:00 0 8c3f4000-8c3f5000 ---p 8c3f4000 00:00 0 8c3f5000-8c475000 rw-p 8c3f5000 00:00 0 8c475000-8c600000 r--s 0334e000 09:00 11912441 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/rt.jar 8c600000-8c700000 rw-p 8c600000 00:00 0 8c704000-8c709000 r--s 00048000 09:00 8324020 /home/rodrigofer/tests/server1/lib/dom4j-1.6.1.jar (deleted) 8c709000-8c70b000 r--s 0000a000 09:00 8324027 /home/rodrigofer/tests/server1/lib/commons-codec-1.3.jar (deleted) 8c70b000-8c716000 r--s 0008b000 09:00 8324017 /home/rodrigofer/tests/server1/lib/c3p0-0.9.1.2.jar (deleted) 8c716000-8c71c000 r--s 00067000 09:00 8324018 /home/rodrigofer/tests/server1/lib/antlr-2.7.6.jar (deleted) 8c71c000-8c720000 r--s 00079000 09:00 11912432 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/jsse.jar 8c720000-8c725000 r--s 0002c000 09:00 8323238 /home/rodrigofer/tests/server1/monitor-server.jar 8c725000-8c72e000 r--s 00065000 09:00 11912376 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/ext/gnome-java-bridge.jar 8c72e000-8c731000 ---p 8c72e000 00:00 0 8c731000-8c7b1000 rw-p 8c731000 00:00 0 8c7b1000-8c7b2000 ---p 8c7b1000 00:00 0 8c7b2000-8c832000 rw-p 8c7b2000 00:00 0 8c832000-8c833000 ---p 8c832000 00:00 0 8c833000-8c8b3000 rw-p 8c833000 00:00 0 8c8b3000-8c8bb000 rwxp 8c8b3000 00:00 0 8c8bb000-8c8f3000 rwxp 8c8bb000 00:00 0 8c8f3000-8c901000 rwxp 8c8f3000 00:00 0 8c901000-8c9d3000 rwxp 8c901000 00:00 0 8c9d3000-8c9db000 rwxp 8c9d3000 00:00 0 8c9db000-8ca13000 rwxp 8c9db000 00:00 0 8ca13000-8ca21000 rwxp 8ca13000 00:00 0 8ca21000-8caf3000 rwxp 8ca21000 00:00 0 8caf3000-8cb0e000 rwxp 8caf3000 00:00 0 8cb0e000-8cb0f000 rwxp 8cb0e000 00:00 0 8cb0f000-8db10000 rwxp 8cb0f000 00:00 0 8db10000-94b10000 rwxp 8db10000 00:00 0 94b10000-96710000 rwxp 94b10000 00:00 0 96710000-b0b10000 rwxp 96710000 00:00 0 b0b10000-b4070000 rwxp b0b10000 00:00 0 b4070000-b4310000 rwxp b4070000 00:00 0 b4312000-b4317000 r--s 0002c000 09:00 8323238 /home/rodrigofer/tests/server1/monitor-server.jar b4317000-b431e000 r--s 00000000 09:00 11203201 /usr/lib/gconv/gconv-modules.cache b431e000-b4327000 rwxp b431e000 00:00 0 b4327000-b43de000 rwxp b4327000 00:00 0 b43de000-b461e000 rwxp b43de000 00:00 0 b461e000-b73de000 rwxp b461e000 00:00 0 b73de000-b7402000 r-xp 00000000 09:00 11912405 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so b7402000-b7403000 r--p 00023000 09:00 11912405 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so b7403000-b7405000 rw-p 00024000 09:00 11912405 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libjava.so b7405000-b743a000 r--s 00000000 09:00 705325 /var/run/nscd/passwd b743a000-b744d000 r-xp 00000000 09:00 942150 /lib/libnsl-2.8.so b744d000-b744e000 r--p 00012000 09:00 942150 /lib/libnsl-2.8.so b744e000-b744f000 rw-p 00013000 09:00 942150 /lib/libnsl-2.8.so b744f000-b7451000 rw-p b744f000 00:00 0 b7451000-b7458000 r-xp 00000000 09:00 11912425 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so b7458000-b7459000 r--p 00006000 09:00 11912425 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so b7459000-b745a000 rw-p 00007000 09:00 11912425 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libzip.so b745a000-b7466000 r-xp 00000000 09:00 11912424 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so b7466000-b7467000 r--p 0000c000 09:00 11912424 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so b7467000-b7468000 rw-p 0000d000 09:00 11912424 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/libverify.so b7468000-b746f000 r-xp 00000000 09:00 942426 /lib/librt-2.8.so b746f000-b7470000 r--p 00006000 09:00 942426 /lib/librt-2.8.so b7470000-b7471000 rw-p 00007000 09:00 942426 /lib/librt-2.8.so b7471000-b7474000 ---p b7471000 00:00 0 b7474000-b74c2000 rw-p b7474000 00:00 0 b74c2000-b74e6000 r-xp 00000000 09:00 942339 /lib/libm-2.8.so b74e6000-b74e7000 r--p 00023000 09:00 942339 /lib/libm-2.8.so b74e7000-b74e8000 rw-p 00024000 09:00 942339 /lib/libm-2.8.so b74e8000-b7a78000 r-xp 00000000 09:00 11912430 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/server/libjvm.so b7a78000-b7ab5000 r--p 0058f000 09:00 11912430 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/server/libjvm.so b7ab5000-b7ac3000 rw-p 005cc000 09:00 11912430 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/server/libjvm.so b7ac3000-b7ee5000 rw-p b7ac3000 00:00 0 b7ee5000-b8022000 r-xp 00000000 09:00 942353 /lib/libc-2.8.so b8022000-b8024000 r--p 0013d000 09:00 942353 /lib/libc-2.8.so b8024000-b8025000 rw-p 0013f000 09:00 942353 /lib/libc-2.8.so b8025000-b8029000 rw-p b8025000 00:00 0 b8029000-b802b000 r-xp 00000000 09:00 942361 /lib/libdl-2.8.so b802b000-b802c000 r--p 00001000 09:00 942361 /lib/libdl-2.8.so b802c000-b802d000 rw-p 00002000 09:00 942361 /lib/libdl-2.8.so b802d000-b8031000 r-xp 00000000 09:00 11912393 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so b8031000-b8032000 r--p 00003000 09:00 11912393 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so b8032000-b8033000 rw-p 00004000 09:00 11912393 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/jli/libjli.so b8033000-b8047000 r-xp 00000000 09:00 942295 /lib/libpthread-2.8.so b8047000-b8048000 r--p 00013000 09:00 942295 /lib/libpthread-2.8.so b8048000-b8049000 rw-p 00014000 09:00 942295 /lib/libpthread-2.8.so b8049000-b804b000 rw-p b8049000 00:00 0 b804b000-b805d000 r-xp 00000000 09:00 942436 /lib/libz.so.1.2.3 b805d000-b805e000 r--p 00011000 09:00 942436 /lib/libz.so.1.2.3 b805e000-b805f000 rw-p 00012000 09:00 942436 /lib/libz.so.1.2.3 b8060000-b8063000 r--s 0000a000 09:00 8324016 /home/rodrigofer/tests/server1/lib/ejb3-persistence.jar (deleted) b8063000-b806b000 rw-s 00000000 09:00 13713442 /tmp/hsperfdata_root/23657 b806b000-b8072000 r-xp 00000000 09:00 11912427 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so b8072000-b8073000 r--p 00006000 09:00 11912427 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so b8073000-b8074000 rw-p 00007000 09:00 11912427 /usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/native_threads/libhpi.so b8074000-b8075000 rwxp b8074000 00:00 0 b8075000-b8076000 r--p b8075000 00:00 0 b8076000-b8077000 rw-p b8076000 00:00 0 b8077000-b8092000 r-xp 00000000 09:00 942525 /lib/ld-2.8.so b8092000-b8093000 r--p 0001a000 09:00 942525 /lib/ld-2.8.so b8093000-b8094000 rw-p 0001b000 09:00 942525 /lib/ld-2.8.so bfa5d000-bfa93000 rw-p bffca000 00:00 0 [stack] ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso] VM Arguments: java_command: monitor-server.jar Launcher Type: SUN_STANDARD Environment Variables: JAVA_HOME=/usr/lib/jvm/java JRE_HOME=/usr/lib/jvm/java/jre PATH=/opt/kde3/bin:/home/rodrigofer/bin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386/server:/usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.2_b09/jre/../lib/i386 SHELL=/bin/bash DISPLAY=:0.0 HOSTTYPE=i386 OSTYPE=linux MACHTYPE=i686-suse-linux Signal Handlers: SIGSEGV: [libjvm.so+0x529830], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGBUS: [libjvm.so+0x529830], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGFPE: [libjvm.so+0x42d350], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGPIPE: [libjvm.so+0x42d350], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGXFSZ: [libjvm.so+0x42d350], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGILL: [libjvm.so+0x42d350], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000 SIGUSR2: [libjvm.so+0x42cd00], sa_mask[0]=0x00000000, sa_flags=0x10000004 SIGHUP: [libjvm.so+0x42eec0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGINT: [libjvm.so+0x42eec0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGTERM: [libjvm.so+0x42eec0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGQUIT: [libjvm.so+0x42eec0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 --------------- S Y S T E M --------------- OS:openSUSE 11.0 (i586) VERSION = 11.0 uname:Linux 2.6.25.20-0.1-pae #1 SMP 2008-12-12 20:30:38 +0100 i686 libc:glibc 2.8 NPTL 2.8 rlimit: STACK 8192k, CORE 0k, NPROC 16304, NOFILE 8192, AS 3501200k load average:0.65 0.36 0.24 CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 13, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3 Memory: 4k page, physical 2063100k(144768k free), swap 2313308k(2313284k free) vm_info: OpenJDK Server VM (1.6.0-b09) for linux-x86 JRE (1.6.0-b09), built on Jun 7 2008 06:42:03 by "abuild" with gcc 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] time: Wed Apr 8 18:51:36 2009 elapsed time: 714 seconds -- 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 Joe.Darcy at Sun.COM Wed Apr 8 22:15:05 2009 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Wed, 08 Apr 2009 22:15:05 -0700 Subject: Binary files in Nimbus In-Reply-To: <17c6771e0904081258x114ae22eyf03608e3f5e9c1a2@mail.gmail.com> References: <17c6771e0904081258x114ae22eyf03608e3f5e9c1a2@mail.gmail.com> Message-ID: <49DD8459.80705@sun.com> Andrew John Hughes wrote: >> Peter, >> >> Earlier today you pushed Nimbus into the JDK 7 Swing forest [1]. I'm >> happy to see Nimbus get in, but later on the #openjdk IRC channel Andrew >> Hughes pointed out that the changes include seven binary jar files [2]. >> >> When we open-sourced JDK 7 we took great pains to eliminate all binary >> files from the source tree, and as a matter of policy they are no longer >> allowed. In retrospect we could've communicated this more often and more >> widely, and we'll certainly do that going forward. I'm also going to >> look into enhancing the jcheck extension to check for binary files. >> >> In the meantime, we need to get rid of these jar files. I suggest that >> the best route forward is for me to do a rollback of the Nimbus changeset >> on the server side and then for you to rework the code so that these jar >> files are no longer required. >> >> I'd still like to see Nimbus in M3, and I'll support integration into a >> later build as long as it's okay with SQE, but removing these jar files >> is a higher priority. Aside from the fact that they're binary files, >> some of them contain code that has not been approved by Sun Legal for >> inclusion in OpenJDK. >> >> If anyone sees a problem with this plan, please let me know ASAP. >> >> - Mark >> >> >> [1] http://hg.openjdk.java.net/jdk7/swing/jdk/rev/c5cd40f1f596 >> [2] http://hg.openjdk.java.net/jdk7/swing/jdk/file/c5cd40f1f596/make/tools/swing-nimbus/libs/ >> > > My thanks to Mark for raising this. Blobs of unknown JAR code have > been a problem in the past for including OpenJDK in the GNU/Linux > distributions, and it would be a shame to take a backwards step on > this. > These ones do just appear to be http://jibx.sourceforge.net/, so > providing some way to point to the JAR files instead should be > sufficient. awt16.jar can be dumped, given OpenJDK (AFAIR) is > supposed to be built with a 1.6 JDK. > > On the positive side, the patch applies to OpenJDK6 with a few simple > modifications, and by copying across the JAR files manually to > make/tools/swing-nimbus/libs, I was able to build with the following > patch: > > https://bugs.openjdk.java.net/show_bug.cgi?id=100037 > > So anyone wanting to try Nimbus on OpenJDK6 today, feel free :) > Once the binary file problems are resolved, I'm open to having Nimbus ported to the OpenJDK 6 master repository. -Joe From gnu_andrew at member.fsf.org Thu Apr 9 00:50:34 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 9 Apr 2009 08:50:34 +0100 Subject: Binary files in Nimbus In-Reply-To: <49DD8459.80705@sun.com> References: <17c6771e0904081258x114ae22eyf03608e3f5e9c1a2@mail.gmail.com> <49DD8459.80705@sun.com> Message-ID: <17c6771e0904090050x4d6f319fl3421daf5cec3cfb4@mail.gmail.com> 2009/4/9 Joseph D. Darcy : > Andrew John Hughes wrote: >>> >>> Peter, >>> >>> Earlier today you pushed Nimbus into the JDK 7 Swing forest [1]. ?I'm >>> happy to see Nimbus get in, but later on the #openjdk IRC channel Andrew >>> Hughes pointed out that the changes include seven binary jar files [2]. >>> >>> When we open-sourced JDK 7 we took great pains to eliminate all binary >>> files from the source tree, and as a matter of policy they are no longer >>> allowed. ?In retrospect we could've communicated this more often and more >>> widely, and we'll certainly do that going forward. ?I'm also going to >>> look into enhancing the jcheck extension to check for binary files. >>> >>> In the meantime, we need to get rid of these jar files. ?I suggest that >>> the best route forward is for me to do a rollback of the Nimbus changeset >>> on the server side and then for you to rework the code so that these jar >>> files are no longer required. >>> >>> I'd still like to see Nimbus in M3, and I'll support integration into a >>> later build as long as it's okay with SQE, but removing these jar files >>> is a higher priority. ?Aside from the fact that they're binary files, >>> some of them contain code that has not been approved by Sun Legal for >>> inclusion in OpenJDK. >>> >>> If anyone sees a problem with this plan, please let me know ASAP. >>> >>> - Mark >>> >>> >>> [1] http://hg.openjdk.java.net/jdk7/swing/jdk/rev/c5cd40f1f596 >>> [2] >>> http://hg.openjdk.java.net/jdk7/swing/jdk/file/c5cd40f1f596/make/tools/swing-nimbus/libs/ >>> >> >> My thanks to Mark for raising this. ?Blobs of unknown JAR code have >> been a problem in the past for including OpenJDK in the GNU/Linux >> distributions, and it would be a shame to take a backwards step on >> this. >> These ones do just appear to be http://jibx.sourceforge.net/, so >> providing some way to point to the JAR files instead should be >> sufficient. ?awt16.jar can be dumped, given OpenJDK (AFAIR) is >> supposed to be built with a 1.6 JDK. >> >> On the positive side, the patch applies to OpenJDK6 with a few simple >> modifications, and by copying across the JAR files manually to >> make/tools/swing-nimbus/libs, I was able to build with the following >> patch: >> >> https://bugs.openjdk.java.net/show_bug.cgi?id=100037 >> >> So anyone wanting to try Nimbus on OpenJDK6 today, feel free :) >> > > Once the binary file problems are resolved, I'm open to having Nimbus ported > to the OpenJDK 6 master repository. > > -Joe > Great! From a little testing yesterday, it already seems to work fine on current OpenJDK6, bar the binary issue. -- 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 redhat.com Thu Apr 9 06:14:46 2009 From: aph at redhat.com (Andrew Haley) Date: Thu, 09 Apr 2009 14:14:46 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3917B.2010907@redhat.com> References: <49D3917B.2010907@redhat.com> Message-ID: <49DDF4C6.1070602@redhat.com> Andrew Haley wrote: > We at Red Hat have noticed that the list of IcedTea local patches has > been getting large, with some local patches that should have been > pushed upstream. Also, some IcedTea patches have been committed to > OpenJDK 7 but not OpenJDK 6. > > So, we're going to have a serious attempt to minimize the number of > IcedTea patches. We'll create a Wiki page at icedtea.classpath.org > that is a list of the patches, and for every one we're going to > discuss whether it should stay IcedTea local, be pushed upstream to > OpenJDK, or be deleted altogether. Then we will create OpenJDK > bugzilla entries for the patches that we think should be integrated > upstream and work with Sun engineers to get that done. The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches These are the patches in icedtea/patches and icedtea/patches/hotspot. * Every patch should be assigned to someone. * Every patch should be discussed. * If we can, we will push a patch upstream. If we can't the discussion should explain why we can't. Here we go... Andrew. From Alan.Bateman at Sun.COM Thu Apr 9 07:20:50 2009 From: Alan.Bateman at Sun.COM (Alan Bateman) Date: Thu, 09 Apr 2009 15:20:50 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49DDF4C6.1070602@redhat.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> Message-ID: <49DE0442.6060802@sun.com> Andrew Haley wrote: > : > The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches > These are the patches in icedtea/patches and icedtea/patches/hotspot. > > > * Every patch should be assigned to someone. > > * Every patch should be discussed. > > * If we can, we will push a patch upstream. If we can't the discussion > should explain why we can't. > > Here we go... > > Andrew. > I'm not very familiar with IcedTea but I cloned the repository to see what these patches are about. Here are a few comments: icedtea-6728542-epoll.patch seems to be a change-set I pushed to jdk7 last year. It seems very reasonable to push this into jdk6/jdk6/jdk. Go for it! icedtea-bytebuffer-compact.patch - this looks to be a partial fix to 6593946. If so, 6593946 is already in jdk6/jdk6/jdk (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/3e7bfcdcf96f). icedtea-io_util-overflow.patch - this looks like the initial fix for 6788196. Martin has already pushed this to jdk6/jdk7/jdk (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/cc4d93e8ae7d). icedtea-jvmtiEnv.patch - I thought JvmtiEnv::GetLineNumberTable already handled this case so I'm curious why this one is needed. icedtea-network-unreachable.patch - I'm pretty sure net-dev would be open to this because it looks to be cases where the specific exceptions aren't thrown in the timed read case. icedtea-sunsrc.patch - I'm not sure what this is about but it looks like it removes the service configuration files. Does JDI still work? icedtea-testenv.patch - the changes to test/sun/net/InetAddress/nameservice/dns/cname.sh seems reasonable (pilot error is why this one was missed when the other tests were updated). icedtea-jtreg-hatrun.patch - I suspect this is 6545295. We should just fix this test (serviceability-dev). -Alan. PS: I'm not on distro-pkg-dev so this mail might need the moderator to approve. From gnu_andrew at member.fsf.org Thu Apr 9 08:05:09 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 9 Apr 2009 16:05:09 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49DE0442.6060802@sun.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> Message-ID: <17c6771e0904090805y352a1e43nd5de8909f21c63a@mail.gmail.com> 2009/4/9 Alan Bateman : > Andrew Haley wrote: >> >> : >> The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches >> These are the patches in icedtea/patches and icedtea/patches/hotspot. >> >> >> * Every patch should be assigned to someone. >> >> * Every patch should be discussed. >> >> * If we can, we will push a patch upstream. ?If we can't the discussion >> ?should explain why we can't. >> >> Here we go... >> >> Andrew. >> > > I'm not very familiar with IcedTea but I cloned the repository to see what > these patches are about. Here are a few comments: > > icedtea-6728542-epoll.patch seems to be a change-set I pushed to jdk7 last > year. It seems very reasonable to push this into jdk6/jdk6/jdk. Go for it! > > icedtea-bytebuffer-compact.patch - this looks to be a partial fix to > 6593946. If so, 6593946 is already in jdk6/jdk6/jdk > (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/3e7bfcdcf96f). > > icedtea-io_util-overflow.patch - this looks like the initial fix for > 6788196. Martin has already pushed this to jdk6/jdk7/jdk > (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/cc4d93e8ae7d). > > icedtea-jvmtiEnv.patch - I thought JvmtiEnv::GetLineNumberTable already > handled this case so I'm curious why this one is needed. > > icedtea-network-unreachable.patch - I'm pretty sure net-dev would be open to > this because it looks to be cases where the specific exceptions aren't > thrown in the timed read case. > > icedtea-sunsrc.patch - I'm not sure what this is about but it looks like it > removes the service configuration files. Does JDI still work? > > icedtea-testenv.patch - the changes to > test/sun/net/InetAddress/nameservice/dns/cname.sh seems reasonable (pilot > error is why this one was missed when the other tests were updated). > > icedtea-jtreg-hatrun.patch - I suspect this is 6545295. We should just fix > this test (serviceability-dev). > > -Alan. > > PS: I'm not on distro-pkg-dev so this mail might need the moderator to > approve. > > Woah, thanks for the quick response on this :) I'll have a quick look at these after the conf. call but good to know a few are possibles for going in. I've just been trying to write off a few low-hanging fruits that I know are in OpenJDK7, or don't need to be pushed. Thanks again, -- 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 doko at ubuntu.com Thu Apr 9 08:13:38 2009 From: doko at ubuntu.com (Matthias Klose) Date: Thu, 09 Apr 2009 17:13:38 +0200 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49DDF4C6.1070602@redhat.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> Message-ID: <49DE10A2.8090108@ubuntu.com> Andrew Haley schrieb: > The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches > SCA: Enter "OK" here if you are certain that all authors of this patch have an > SCA on file. this is not correct. AFAIU all authors of the patch have to submit the patch under the SCA, just having an SCA on file is not enough. Matthias From aph at redhat.com Thu Apr 9 08:17:48 2009 From: aph at redhat.com (Andrew Haley) Date: Thu, 09 Apr 2009 16:17:48 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49DE10A2.8090108@ubuntu.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE10A2.8090108@ubuntu.com> Message-ID: <49DE119C.3030802@redhat.com> Matthias Klose wrote: > Andrew Haley schrieb: >> The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches > >> SCA: Enter "OK" here if you are certain that all authors of this patch have an >> SCA on file. > > this is not correct. AFAIU all authors of the patch have to submit the patch > under the SCA, just having an SCA on file is not enough. OK. SO, the problem is that maybe the authors of the patch who have signed the SCA might not be willing to submit the same patch upstream? It's not possible for more than one person to submit a particular patch: only one person can do it. Anyway, if any suitable patch hasn't been submitted upstream we'll ask the author. Andrew. From bugzilla-daemon at icedtea.classpath.org Thu Apr 9 09:09:39 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 09 Apr 2009 16:09:39 +0000 Subject: [Bug 316] unexpected error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=316 ------- Comment #1 from omajid at redhat.com 2009-04-09 16:09 ------- Were you by any chance trying to write to an open zip file and then read it without closing it first? -- 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 Apr 9 09:36:20 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 9 Apr 2009 17:36:20 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49D3A3C3.9090104@sun.com> References: <49D3917B.2010907@redhat.com> <49D3A3C3.9090104@sun.com> Message-ID: <17c6771e0904090936j4dbac23mc25b73319e9badfe@mail.gmail.com> 2009/4/1 Joseph D. Darcy : > Andrew Haley wrote: >> >> We at Red Hat have noticed that the list of IcedTea local patches has >> been getting large, with some local patches that should have been >> pushed upstream. ?Also, some IcedTea patches have been committed to >> OpenJDK 7 but not OpenJDK 6. >> >> So, we're going to have a serious attempt to minimize the number of >> IcedTea patches. ?We'll create a Wiki page at icedtea.classpath.org >> that is a list of the patches, and for every one we're going to >> discuss whether it should stay IcedTea local, be pushed upstream to >> OpenJDK, or be deleted altogether. ?Then we will create OpenJDK >> bugzilla entries for the patches that we think should be integrated >> upstream and work with Sun engineers to get that done. >> >> I hope that it will be possible to reduce the number of patches to a >> fraction of what we have at the moment, while improving the quality of >> the upstream product. >> >> This is going to be quite a lot of work, so we'd appreciate help from >> anyone. >> >> I hope this will meet with everyone's approval. >> > > Sounds good to me! > > -Joe > Joe, FWIW, https://bugs.openjdk.java.net/show_bug.cgi?id=100036 is currently the only patch needed for OpenJDK6 to build out of the box on Fedora 10. Would be nice if it was applied. Even nicer if one of us could try and commit it after your approval :) -- 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 Thu Apr 9 10:55:55 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 9 Apr 2009 18:55:55 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49DE0442.6060802@sun.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> Message-ID: <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> 2009/4/9 Alan Bateman : > Andrew Haley wrote: >> >> : >> The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches >> These are the patches in icedtea/patches and icedtea/patches/hotspot. >> >> >> * Every patch should be assigned to someone. >> >> * Every patch should be discussed. >> >> * If we can, we will push a patch upstream. ?If we can't the discussion >> ?should explain why we can't. >> >> Here we go... >> >> Andrew. >> > > I'm not very familiar with IcedTea but I cloned the repository to see what > these patches are about. Here are a few comments: > > icedtea-6728542-epoll.patch seems to be a change-set I pushed to jdk7 last > year. It seems very reasonable to push this into jdk6/jdk6/jdk. Go for it! > Yes, I've referenced the bug on the wiki now. Joe, can we commit this to 6? > icedtea-bytebuffer-compact.patch - this looks to be a partial fix to > 6593946. If so, 6593946 is already in jdk6/jdk6/jdk > (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/3e7bfcdcf96f). > IcedTea6 is still based on the last build drop of jdk6, not the Mercurial repository. So this 6 week old patch won't be in the 25th of November b14 tarball. Interestingly, it also still exists in IcedTea7 as there were cases covered by the patch which didn't make it into the commit. I've attached that version. It was originally added by Keith Seitz while he was working on OpenJDK at Red Hat (according to the ChangeLog). > icedtea-io_util-overflow.patch - this looks like the initial fix for > 6788196. Martin has already pushed this to jdk6/jdk7/jdk > (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/cc4d93e8ae7d). > Same case as the epoll patch, not in b14. > icedtea-jvmtiEnv.patch - I thought JvmtiEnv::GetLineNumberTable already > handled this case so I'm curious why this one is needed. > Added by Andrew Haley as part of work on Shark; perhaps he can explain. > icedtea-network-unreachable.patch - I'm pretty sure net-dev would be open to > this because it looks to be cases where the specific exceptions aren't > thrown in the timed read case. > >From our intern, Omair so this is covered by the SCA. Omair, maybe you could file a bug report for this (or link to one here if there is one)? > icedtea-sunsrc.patch - I'm not sure what this is about but it looks like it > removes the service configuration files. Does JDI still work? > Don't know about this one, all I can say is it was added by Joshua Sumali in late 2007. Perhaps someone at Red Hat then can shed some light on it? > icedtea-testenv.patch - the changes to > test/sun/net/InetAddress/nameservice/dns/cname.sh seems reasonable (pilot > error is why this one was missed when the other tests were updated). > Recent patch from Mark Wielaard. Mark? > icedtea-jtreg-hatrun.patch - I suspect this is 6545295. We should just fix > this test (serviceability-dev). > Again, this one is from Omair, so he should be able to provide more detail. > -Alan. > > PS: I'm not on distro-pkg-dev so this mail might need the moderator to > approve. > > Thanks again for the conf. call, very useful! 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 Thu Apr 9 11:01:18 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 9 Apr 2009 19:01:18 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> Message-ID: <17c6771e0904091101t634e419ctfaf5cc6c8b264a90@mail.gmail.com> 2009/4/9 Andrew John Hughes : > 2009/4/9 Alan Bateman : >> Andrew Haley wrote: >>> >>> : >>> The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches >>> These are the patches in icedtea/patches and icedtea/patches/hotspot. >>> >>> >>> * Every patch should be assigned to someone. >>> >>> * Every patch should be discussed. >>> >>> * If we can, we will push a patch upstream. ?If we can't the discussion >>> ?should explain why we can't. >>> >>> Here we go... >>> >>> Andrew. >>> >> >> I'm not very familiar with IcedTea but I cloned the repository to see what >> these patches are about. Here are a few comments: >> >> icedtea-6728542-epoll.patch seems to be a change-set I pushed to jdk7 last >> year. It seems very reasonable to push this into jdk6/jdk6/jdk. Go for it! >> > > Yes, I've referenced the bug on the wiki now. ?Joe, can we commit this to 6? > >> icedtea-bytebuffer-compact.patch - this looks to be a partial fix to >> 6593946. If so, 6593946 is already in jdk6/jdk6/jdk >> (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/3e7bfcdcf96f). >> > > IcedTea6 is still based on the last build drop of jdk6, not the > Mercurial repository. ?So this 6 week old patch won't be in the 25th > of November b14 tarball. > Interestingly, it also still exists in IcedTea7 as there were cases > covered by the patch which didn't make it into the commit. > I've attached that version. ?It was originally added by Keith Seitz > while he was working on OpenJDK at Red Hat (according to the > ChangeLog). > >> icedtea-io_util-overflow.patch - this looks like the initial fix for >> 6788196. Martin has already pushed this to jdk6/jdk7/jdk >> (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/cc4d93e8ae7d). >> > > Same case as the epoll patch, not in b14. > >> icedtea-jvmtiEnv.patch - I thought JvmtiEnv::GetLineNumberTable already >> handled this case so I'm curious why this one is needed. >> > > Added by Andrew Haley as part of work on Shark; perhaps he can explain. > >> icedtea-network-unreachable.patch - I'm pretty sure net-dev would be open to >> this because it looks to be cases where the specific exceptions aren't >> thrown in the timed read case. >> > > From our intern, Omair so this is covered by the SCA. ?Omair, maybe > you could file a bug report for this (or link to one here if there is > one)? > >> icedtea-sunsrc.patch - I'm not sure what this is about but it looks like it >> removes the service configuration files. Does JDI still work? >> > > Don't know about this one, all I can say is it was added by Joshua > Sumali in late 2007. ?Perhaps someone at Red Hat then can shed some > light on it? > >> icedtea-testenv.patch - the changes to >> test/sun/net/InetAddress/nameservice/dns/cname.sh seems reasonable (pilot >> error is why this one was missed when the other tests were updated). >> > > Recent patch from Mark Wielaard. ?Mark? > >> icedtea-jtreg-hatrun.patch - I suspect this is 6545295. We should just fix >> this test (serviceability-dev). >> > > Again, this one is from Omair, so he should be able to provide more detail. > >> -Alan. >> >> PS: I'm not on distro-pkg-dev so this mail might need the moderator to >> approve. >> >> > > Thanks again for the conf. call, very useful! > > 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 > And then forgot the patch! -- 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 -------------- A non-text attachment was scrubbed... Name: icedtea-bytebuffer-compact.patch Type: application/octet-stream Size: 1333 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090409/5bbf5b8b/icedtea-bytebuffer-compact.patch From aph at redhat.com Thu Apr 9 11:04:07 2009 From: aph at redhat.com (Andrew Haley) Date: Thu, 09 Apr 2009 19:04:07 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> Message-ID: <49DE3897.5050902@redhat.com> Andrew John Hughes wrote: > 2009/4/9 Alan Bateman : >> icedtea-jvmtiEnv.patch - I thought JvmtiEnv::GetLineNumberTable already >> handled this case so I'm curious why this one is needed. > > Added by Andrew Haley as part of work on Shark; perhaps he can explain. GetLineNumberTable checks for a missing table but not for a zero-length one. I had a crash in Shark, but I can't remember exactly where. Andrew. From omajid at redhat.com Thu Apr 9 11:05:18 2009 From: omajid at redhat.com (Omair Majid) Date: Thu, 09 Apr 2009 14:05:18 -0400 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> Message-ID: <49DE38DE.1050505@redhat.com> Andrew John Hughes wrote: > 2009/4/9 Alan Bateman : >> Andrew Haley wrote: >>> : >>> The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches >>> These are the patches in icedtea/patches and icedtea/patches/hotspot. >>> >>> >>> * Every patch should be assigned to someone. >>> >>> * Every patch should be discussed. >>> >>> * If we can, we will push a patch upstream. If we can't the discussion >>> should explain why we can't. >>> >>> Here we go... >>> >>> Andrew. >>> >> I'm not very familiar with IcedTea but I cloned the repository to see what >> these patches are about. Here are a few comments: >> >> icedtea-6728542-epoll.patch seems to be a change-set I pushed to jdk7 last >> year. It seems very reasonable to push this into jdk6/jdk6/jdk. Go for it! >> > > Yes, I've referenced the bug on the wiki now. Joe, can we commit this to 6? > >> icedtea-bytebuffer-compact.patch - this looks to be a partial fix to >> 6593946. If so, 6593946 is already in jdk6/jdk6/jdk >> (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/3e7bfcdcf96f). >> > > IcedTea6 is still based on the last build drop of jdk6, not the > Mercurial repository. So this 6 week old patch won't be in the 25th > of November b14 tarball. > Interestingly, it also still exists in IcedTea7 as there were cases > covered by the patch which didn't make it into the commit. > I've attached that version. It was originally added by Keith Seitz > while he was working on OpenJDK at Red Hat (according to the > ChangeLog). > >> icedtea-io_util-overflow.patch - this looks like the initial fix for >> 6788196. Martin has already pushed this to jdk6/jdk7/jdk >> (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/cc4d93e8ae7d). >> > > Same case as the epoll patch, not in b14. > >> icedtea-jvmtiEnv.patch - I thought JvmtiEnv::GetLineNumberTable already >> handled this case so I'm curious why this one is needed. >> > > Added by Andrew Haley as part of work on Shark; perhaps he can explain. > >> icedtea-network-unreachable.patch - I'm pretty sure net-dev would be open to >> this because it looks to be cases where the specific exceptions aren't >> thrown in the timed read case. >> > > From our intern, Omair so this is covered by the SCA. Omair, maybe > you could file a bug report for this (or link to one here if there is > one)? > Just got around to filing this one today: http://bugs.openjdk.java.net/show_bug.cgi?id=100039 >> icedtea-sunsrc.patch - I'm not sure what this is about but it looks like it >> removes the service configuration files. Does JDI still work? >> > > Don't know about this one, all I can say is it was added by Joshua > Sumali in late 2007. Perhaps someone at Red Hat then can shed some > light on it? > >> icedtea-testenv.patch - the changes to >> test/sun/net/InetAddress/nameservice/dns/cname.sh seems reasonable (pilot >> error is why this one was missed when the other tests were updated). >> > > Recent patch from Mark Wielaard. Mark? > >> icedtea-jtreg-hatrun.patch - I suspect this is 6545295. We should just fix >> this test (serviceability-dev). >> > > Again, this one is from Omair, so he should be able to provide more detail. > Filed as http://bugs.openjdk.java.net/show_bug.cgi?id=100026 >> -Alan. >> >> PS: I'm not on distro-pkg-dev so this mail might need the moderator to >> approve. >> >> > > Thanks again for the conf. call, very useful! > > Cheers, Cheers, Omair From Alan.Bateman at Sun.COM Thu Apr 9 12:08:55 2009 From: Alan.Bateman at Sun.COM (Alan Bateman) Date: Thu, 09 Apr 2009 20:08:55 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> Message-ID: <49DE47C7.1040908@sun.com> Andrew John Hughes wrote: > : >> icedtea-bytebuffer-compact.patch - this looks to be a partial fix to >> 6593946. If so, 6593946 is already in jdk6/jdk6/jdk >> (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/3e7bfcdcf96f). >> >> > > IcedTea6 is still based on the last build drop of jdk6, not the > Mercurial repository. So this 6 week old patch won't be in the 25th > of November b14 tarball. > Interestingly, it also still exists in IcedTea7 as there were cases > covered by the patch which didn't make it into the commit. > I've attached that version. It was originally added by Keith Seitz > while he was working on OpenJDK at Red Hat (according to the > ChangeLog). > Once the fix gets into a build (b16?) then I don't think you'll need the IcedTea6 patch. Also, it does seem that the IcedTea6 patch is only a partial fix in that I don't see the changes for the view buffers. I looked at the patch you attached in the last mail (is this the IcedTea patch to jdk7?). It seems to be a no-op, or at least just replaces setting of mark to -1 with calls to discardMark that does the same thing. Nothing wrong with it, just inconsistent with the existing code. -Alan. From gnu_andrew at member.fsf.org Thu Apr 9 12:27:03 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 9 Apr 2009 20:27:03 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49DE47C7.1040908@sun.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> <49DE47C7.1040908@sun.com> Message-ID: <17c6771e0904091227rde7ae31g72602473b1bbf786@mail.gmail.com> 2009/4/9 Alan Bateman : > Andrew John Hughes wrote: >> >> : >>> >>> icedtea-bytebuffer-compact.patch - this looks to be a partial fix to >>> 6593946. If so, 6593946 is already in jdk6/jdk6/jdk >>> (http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/3e7bfcdcf96f). >>> >>> >> >> IcedTea6 is still based on the last build drop of jdk6, not the >> Mercurial repository. ?So this 6 week old patch won't be in the 25th >> of November b14 tarball. >> Interestingly, it also still exists in IcedTea7 as there were cases >> covered by the patch which didn't make it into the commit. >> I've attached that version. ?It was originally added by Keith Seitz >> while he was working on OpenJDK at Red Hat (according to the >> ChangeLog). >> > > Once the fix gets into a build (b16?) then I don't think you'll need the > IcedTea6 patch. Spot on, we need a new build drop (read tarball) to pick up the recent changes. There hasn't been one since Nov. 2008. Also, it does seem that the IcedTea6 patch is only a partial > fix in that I don't see the changes for the view buffers. Yeah, this is an old patch so I don't know all the origins, but it may have been pushed upstream and revised in the process, or even developed separately at Sun. One has clearMark(), one has discardMark IIRC. I looked at the > patch you attached in the last mail (is this the IcedTea patch to jdk7?). Yes, it's the leftovers after I took out the bits in upstream OpenJDK7 (last build against b50). > It > seems to be a no-op, or at least just replaces setting of mark to -1 with > calls to discardMark that does the same thing. Nothing wrong with it, just > inconsistent with the existing code. > Yeah I agree, it's not a must have. I meant to actually raise this at the time, but never got round to it obviously. Using discardMark is perhaps a little cleaner/maintainable, but has the downside of adding an extra method dispatch. > -Alan. > -- 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 Alan.Bateman at Sun.COM Thu Apr 9 12:57:05 2009 From: Alan.Bateman at Sun.COM (Alan Bateman) Date: Thu, 09 Apr 2009 20:57:05 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49DE3897.5050902@redhat.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> <49DE3897.5050902@redhat.com> Message-ID: <49DE5311.5040108@sun.com> Andrew Haley wrote: > Andrew John Hughes wrote: > >> 2009/4/9 Alan Bateman : >> > > >>> icedtea-jvmtiEnv.patch - I thought JvmtiEnv::GetLineNumberTable already >>> handled this case so I'm curious why this one is needed. >>> >> Added by Andrew Haley as part of work on Shark; perhaps he can explain. >> > > GetLineNumberTable checks for a missing table but not for a zero-length > one. I had a crash in Shark, but I can't remember exactly where. > > Andrew. > I need to double-check the VM and JVM TI specs but off-hand, I believe a zero-length table is possible. I wonder if this was a case of the agent not handling the zero-length case. Anyway, if you do remember the details please send them on to serviceability-dev. -Alan. From doko at ubuntu.com Fri Apr 10 03:55:03 2009 From: doko at ubuntu.com (doko at ubuntu.com) Date: Fri, 10 Apr 2009 10:55:03 +0000 Subject: changeset in /hg/icedtea6: 2009-04-10 Matthias Klose changeset 97ad7002bc2e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=97ad7002bc2e description: 2009-04-10 Matthias Klose * Makefile.am (check-jdk): Fix location of test input files, fix changing permissions on these files. diffstat: 2 files changed, 7 insertions(+), 2 deletions(-) ChangeLog | 5 +++++ Makefile.am | 4 ++-- diffs (26 lines): diff -r 953caf041bef -r 97ad7002bc2e ChangeLog --- a/ChangeLog Tue Apr 07 10:28:20 2009 -0400 +++ b/ChangeLog Fri Apr 10 12:50:57 2009 +0200 @@ -1,3 +1,8 @@ 2009-04-07 Omair Majid + + * Makefile.am (check-jdk): Fix location of test input files, fix + changing permissions on these files. + 2009-04-07 Omair Majid * patches/icedtea-dnd-filelists.patch: New patch. Fix drag and drop diff -r 953caf041bef -r 97ad7002bc2e Makefile.am --- a/Makefile.am Tue Apr 07 10:28:20 2009 -0400 +++ b/Makefile.am Fri Apr 10 12:50:57 2009 +0200 @@ -1764,8 +1764,8 @@ check-langtools: stamps/jtreg.stamp | tee test/$@.log check-jdk: stamps/jtreg.stamp - chmod -w $(abs_top_srcdir)/openjdk/jdk/test/sun/tools/native2ascii/test2 - chmod -w $(abs_top_srcdir)/openjdk/jdk/test/sun/tools/native2ascii/test3 + chmod a-w $(abs_top_builddir)/openjdk/jdk/test/sun/tools/native2ascii/test2 + chmod a-w $(abs_top_builddir)/openjdk/jdk/test/sun/tools/native2ascii/test3 mkdir -p test/jdk/JTwork test/jdk/JTreport $(ICEDTEA_BOOT_DIR)/bin/java -jar test/jtreg.jar -v1 -a -ignore:quiet \ -w:test/jdk/JTwork -r:test/jdk/JTreport \ From Joe.Darcy at Sun.COM Mon Apr 13 14:17:30 2009 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Mon, 13 Apr 2009 14:17:30 -0700 Subject: How to host HS14 stable? (Was: RFC: Change name of default HotSpot to 'default') In-Reply-To: <17c6771e0903200428j75e26899x9c15daf57f5ed20e@mail.gmail.com> References: <20090212150029.GA1121@rivendell.middle-earth.co.uk> <1234731237.3562.6.camel@hermans.wildebeest.org> <17c6771e0902151453t523b15derfc243ffaa201264f@mail.gmail.com> <1234768690.24153.28.camel@localhost.localdomain> <1234772748.3612.3.camel@hermans.wildebeest.org> <1234774554.11228.3.camel@localhost.localdomain> <1234862105.4062.8.camel@fedora.wildebeest.org> <499B727D.6060901@sun.com> <17c6771e0903200428j75e26899x9c15daf57f5ed20e@mail.gmail.com> Message-ID: <49E3ABEA.6020400@sun.com> Andrew John Hughes wrote: > 2009/2/18 Joe Darcy : > >> On 02/17/09 01:15 AM, Mark Wielaard wrote: >> >> Hi Christian (CCed hotspot-dev for advice) >> >> On Mon, 2009-02-16 at 09:55 +0100, Christian Thalinger wrote: >> >> >> On Mon, 2009-02-16 at 09:25 +0100, Mark Wielaard wrote: >> >> >> Great. I was surprised if it was otherwise. >> I was just confused which tree to track to make sure to get the latest >> HS14 since we are trying to keep all branches (zero/shark/default) of >> IcedTea6 at a stable Hotspot release. Is this in the default >> jdk7/jdk7/hotspot tree or in some other one? >> >> >> The jdk7 repository contains HS15 and therefore not a stable one. I >> just looked into the jdk6 repository but it only contains HS11. I don't >> know of any open HS14 repository off the top of my head. >> >> >> So it would be good to have an open repo that hosts the HS14 stable >> build so that people interested in a stable, but modern, hotspot could >> base their work on that. Since IcedTea6 is trying to standardize on HS14 >> for the default hotspot and the one that Zero and Shark are based on I >> could create a icedtea/hotspot repo branched from the latest HS14 code >> in the jdk7/jdk7/hotspot repo. Would that be interesting to others? How >> do we coordinate backporting fixes to it? Any other suggestions for >> hosting an open hotspot HS14 repo (maybe as subtree of one of the other >> 6 hotspot repos under jdk7/hostspot-* (I admit to not know what they are >> all for currently). >> >> >> >> Hello. >> >> I have been talking with the HotSpot team inside Sun about the logistics >> needed to support a public HotSpot Mercurial repository usable by both >> OpenJDK 6 and the 6 update release, which would mean the stabilized HotSpot >> 14 at this point. >> >> We should have something figured out relatively soon; I'll post when we do. >> >> -Joe >> >> > > Any news on this? > Some news should be available real soon now... -Joe From xerxes at zafena.se Tue Apr 14 06:55:16 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Tue, 14 Apr 2009 15:55:16 +0200 Subject: [patch] shark + assertions + llvm2.6 on X86 and ARM Message-ID: <49E495C4.90604@zafena.se> Cheers I have been playing with Shark combined with the recent llvm (pre2.6) svn trunk on ARM during the easter weekend: If someone want to try to improve shark and llvm i have attached some patches to use on icedtea6 * mixtec-hacks.patch : tweaked version of Garys mixtec hacks patch to apply on current icedtea tip. it enables assertions and makes a nice debuggable build. original mixtec-hacks fetched from http://gbenson.net/wp-content/uploads/2008/08/mixtec-hacks.patch * sharkCompiler_fnmatch.patch : prevents a compile error when compiling using assertions on X86 /home/xerxes/icedtea6/openjdk-ecj/hotspot/src/share/vm/shark/sharkCompiler.cpp:152: error: 'fnmatch' was not declared in this scope * llvm-2.6-compat-patch : patches shark to compile against current llvm svn trunk (pre2.6) rev 69038 * On ARM I have also applied the Shark reroute LLVM atomic intrinsics to Zero patch found in: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2009-March/005255.html Now for some demonstrations of all the current fun you can have using shark on ARM: root at overo:/home/xerxes/shark_java_test/success/Hello# java -version java version "1.6.0_0" OpenJDK Runtime Environment (build 1.6.0_0-b14) OpenJDK Shark VM (build 14.0-b08-product, mixed mode) root at overo:/home/xerxes/shark_java_test/success/Hello# java -XX:+PrintCompilation -XX:+SharkTraceInstalls -XX:+VerifyBeforeGC Hello [Verifying threads permgen tenured generation def new generation remset ref_proc syms strs zone dict hand C-heap ] 1 java.lang.String::hashCode (60 bytes) [0x6799a010-0x6799a2c8): java.lang.String::hashCode (696 bytes code) Hello World! Hello World works and shark does insert the jited code. Nice :) Running something less trivial like java -X root at overo:/home/xerxes/shark_java_test/success/Hello# java -XX:+PrintCompilation -XX:+SharkTraceInstalls -XX:+VerifyBeforeGC -X [Verifying threads permgen tenured generation def new generation remset ref_proc syms strs zone dict hand C-heap ] 1 java.lang.String::hashCode (60 bytes) [0x6799a010-0x6799a2c8): java.lang.String::hashCode (696 bytes code) 2 java.lang.String::charAt (33 bytes) [0x6799a2d0-0x6799a4f4): java.lang.String::charAt (548 bytes code) 3 ! sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (279 bytes) [0x6799a500-0x6799bbf4): sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (5876 bytes code) 4 ! java.io.BufferedReader::readLine (304 bytes) [0x6799bc00-0x6799cb84): java.io.BufferedReader::readLine (3972 bytes code) 5 ! sun.nio.cs.US_ASCII$Decoder::decodeArrayLoop (241 bytes) [0x6799cb90-0x6799d9d0): sun.nio.cs.US_ASCII$Decoder::decodeArrayLoop (3648 bytes code) 6 java.lang.String::equals (88 bytes) [0x6799d9e0-0x6799e268): java.lang.String::equals (2184 bytes code) 7 java.lang.String::indexOf (151 bytes) [0x6799e270-0x6799e6a0): java.lang.String::indexOf (1072 bytes code) 8 java.lang.String::lastIndexOf (156 bytes) [0x6799e6b0-0x6799ea68): java.lang.String::lastIndexOf (952 bytes code) 9 java.util.Properties$LineReader::readLine (452 bytes) [0x6799ea70-0x6799fa30): java.util.Properties$LineReader::readLine (4032 bytes code) 10 java.util.Properties::loadConvert (505 bytes) [0x6799fa40-0x679a06c8): java.util.Properties::loadConvert (3208 bytes code) # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/bytecodeInterpreter.cpp:854 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/usr/src/openembedded/overo/tmp/work/armv7a-angstrom-linux-gnueabi/openjdk-6-shark-jre-6b14-r3/icedtea6-1.4.1+hg20090912/openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp:854), pid=14277, tid=1090688144 # Error: assert(topOfStack < istate->stack_base(),"Stack underrun") # # Java VM: OpenJDK Shark VM (14.0-b08-product mixed mode linux-arm ) # Distribution: Built on Ubuntu 8.04.2 # An error report file with more information is saved as: # /home/xerxes/shark_java_test/success/Hello/hs_err_pid14277.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # Current thread is 1090688144 Dumping core ... Aborted root at overo:/home/xerxes/shark_java_test/success/Hello# try again... root at overo:/home/xerxes/shark_java_test/success/Hello# java -XX:SuppressErrorAt=/bytecodeInterpreter.cpp:854 -X # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/linkResolver.cpp:71 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/usr/src/openembedded/overo/tmp/work/armv7a-angstrom-linux-gnueabi/openjdk-6-shark-jre-6b14-r3/icedtea6-1.4.1+hg20090912/openjdk/hotspot/src/share/vm/interpreter/linkResolver.cpp:71), pid=14307, tid=1090688144 # Error: assert(resolved_method->signature() == selected_method->signature(),"signatures must correspond") # # Java VM: OpenJDK Shark VM (14.0-b08-product mixed mode linux-arm ) # Distribution: Built on Ubuntu 8.04.2 # An error report file with more information is saved as: # /home/xerxes/shark_java_test/success/Hello/hs_err_pid14307.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # Current thread is 1090688144 Dumping core ... Aborted try again... root at overo:/home/xerxes/shark_java_test/success/Hello# java -XX:SuppressErrorAt=/bytecodeInterpreter.cpp:854 -XX:SuppressErrorAt=/linkResolver.cpp:71 -X -Xmixed mixed mode execution (default) -Xint interpreted mode execution only -Xbootclasspath: set search path for bootstrap classes and resources -Xbootclasspath/a: append to end of bootstrap class path -Xbootclasspath/p: prepend in front of bootstrap class path -Xnoclassgc disable class garbage collection -Xincgc enable incremental garbage collection -Xloggc: log GC status to a file with time stamps -Xbatch disable background compilation -Xms set initial Java heap size -Xmx set maximum Java heap size -Xss set java thread stack size -Xprof output cpu profiling data -Xfuture enable strictest checks, anticipating future default -Xrs reduce use of OS signals by Java/VM (see documentation) -Xcheck:jni perform additional checks for JNI functions -Xshare:off do not attempt to use shared class data -Xshare:auto use shared class data if possible (default) -Xshare:on require using shared class data, otherwise fail. The -X options are non-standard and subject to change without notice. root at overo:/home/xerxes/shark_java_test/success/Hello# echo $? 0 root at overo:/home/xerxes/shark_java_test/success/Hello# ... ok we try again this time using all the nice options like -XX:+PrintCompilation -XX:+SharkTraceInstalls -XX:+VerifyBeforeGC and have fun of observing all strange errors in llvm: root at overo:/home/xerxes/shark_java_test/success/Hello# java -XX:SuppressErrorAt=/bytecodeInterpreter.cpp:854 -XX:SuppressErrorAt=/linkResolver.cpp:71 -XX:+PrintCompilation -XX:+SharkTraceInstalls -XX:+VerifyBeforeGC -X [Verifying threads permgen tenured generation def new generation remset ref_proc syms strs zone dict hand C-heap ] 1 java.lang.String::hashCode (60 bytes) [0x6799a010-0x6799a2c8): java.lang.String::hashCode (696 bytes code) 2 java.lang.String::charAt (33 bytes) [0x6799a2d0-0x6799a4f4): java.lang.String::charAt (548 bytes code) 3 ! sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (279 bytes) [0x6799a500-0x6799bbf4): sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (5876 bytes code) 4 ! java.io.BufferedReader::readLine (304 bytes) java: /usr/src/openembedded/overo/tmp/work/armv7a-angstrom-linux-gnueabi/llvm2.6-2.5+svnr69038-r2/trunk/lib/ExecutionEngine/JIT/JIT.cpp:518: void llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, const llvm::MutexGuard&): Assertion `!isAlreadyCodeGenerating && "Error: Recursive compilation detected!"' failed. Stack dump: 0. Running pass 'Linear Scan Register Allocator' on function '@"java.io.BufferedReader::readLine"' Aborted root at overo:/home/xerxes/shark_java_test/success/Hello# If someone want root at overo:/home/xerxes/shark_java_test/success/Hello# java -XX:SuppressErrorAt=/bytecodeInterpreter.cpp:854 -XX:SuppressErrorAt=/linkResolver.cpp:71 -XX:+Pr intCompilation -XX:+SharkTraceInstalls -XX:+VerifyBeforeGC -X [Verifying threads permgen tenured generation def new generation remset ref_proc syms strs zone dict hand C-heap ] 1 java.lang.String::hashCode (60 bytes) [0x6799a010-0x6799a2c8): java.lang.String::hashCode (696 bytes code) 2 java.lang.String::charAt (33 bytes) [0x6799a2d0-0x6799a4f4): java.lang.String::charAt (548 bytes code) 3 ! sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (279 bytes) [0x6799a500-0x6799bbf4): sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (5876 bytes code) 4 ! java.io.BufferedReader::readLine (304 bytes) java: /usr/src/openembedded/overo/tmp/work/armv7a-angstrom-linux-gnueabi/llvm2.6-2.5+svnr69038-r2/trunk/lib/ExecutionEngine/JIT/JIT.cpp:518: void llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, const llvm::MutexGuard&): Assertion `!isAlreadyCodeGenerating && "Error: Recursive compilation detected!"' failed. Stack dump: 0. Running pass 'Linear Scan Register Allocator' on function '@"java.io.BufferedReader::readLine"' Aborted root at overo:/home/xerxes/shark_java_test/success/Hello# On X86 the assertions reports that Shark have some stack issues: http://mail.openjdk.java.net/pipermail/zero-dev/2009-April/000074.html Cheers and have a great day! Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: mixtec-hacks.patch Type: text/x-patch Size: 5155 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090414/d01c87fc/mixtec-hacks.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: llvm-2.6-compat.patch Type: text/x-patch Size: 2240 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090414/d01c87fc/llvm-2.6-compat.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: sharkCompiler_fnmatch.patch Type: text/x-patch Size: 397 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090414/d01c87fc/sharkCompiler_fnmatch.patch From dbhole at redhat.com Tue Apr 14 10:56:59 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 14 Apr 2009 17:56:59 +0000 Subject: changeset in /hg/icedtea6: - Fix rhbz478561 (freeze with empty s... Message-ID: changeset 3ebbbd651177 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3ebbbd651177 description: - Fix rhbz478561 (freeze with empty string return from Java side). - Bump max workers from 3 to 20; limiting initial to 3, and growing if/when needed. diffstat: 3 files changed, 36 insertions(+), 9 deletions(-) ChangeLog | 7 +++++ IcedTeaPlugin.cc | 16 +++++++++---- plugin/icedtea/sun/applet/PluginMessageConsumer.java | 22 ++++++++++++++---- diffs (143 lines): diff -r 97ad7002bc2e -r 3ebbbd651177 ChangeLog --- a/ChangeLog Fri Apr 10 12:50:57 2009 +0200 +++ b/ChangeLog Tue Apr 14 13:58:42 2009 -0400 @@ -1,3 +1,10 @@ 2009-04-10 Matthias Klose + + * IcedTeaPlugin.cc: Fix rhbz478561 (freeze with empty string return from + Java side). + * plugin/icedtea/sun/applet/PluginMessageConsumer.java: Bump max workers + from 3 to 20, limiting initial to 3, and growing if/when needed. + 2009-04-10 Matthias Klose * Makefile.am (check-jdk): Fix location of test input files, fix diff -r 97ad7002bc2e -r 3ebbbd651177 IcedTeaPlugin.cc --- a/IcedTeaPlugin.cc Fri Apr 10 12:50:57 2009 +0200 +++ b/IcedTeaPlugin.cc Tue Apr 14 13:58:42 2009 -0400 @@ -588,7 +588,7 @@ char const* TYPES[10] = { "Object", PLUGIN_DEBUG_0ARG ("RECEIVE VALUE 1\n"); \ ResultContainer *resultC; \ factory->result_map.Get(reference, &resultC); \ - while (resultC->returnValue == "" && \ + while (resultC->returnValue.IsVoid() == PR_TRUE && \ resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ @@ -607,7 +607,7 @@ char const* TYPES[10] = { "Object", PLUGIN_DEBUG_0ARG("RECEIVE SIZE 1\n"); \ ResultContainer *resultC; \ factory->result_map.Get(reference, &resultC); \ - while (resultC->returnValue == "" && \ + while (resultC->returnValue.IsVoid() == PR_TRUE && \ resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ @@ -631,7 +631,7 @@ char const* TYPES[10] = { "Object", PLUGIN_DEBUG_0ARG("RECEIVE STRING 1\n"); \ ResultContainer *resultC; \ factory->result_map.Get(reference, &resultC); \ - while (resultC->returnValue == "" && \ + while (resultC->returnValue.IsVoid() == PR_TRUE && \ resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ @@ -655,7 +655,7 @@ char const* TYPES[10] = { "Object", PLUGIN_DEBUG_0ARG("RECEIVE STRING UCS 1\n"); \ ResultContainer *resultC; \ factory->result_map.Get(reference, &resultC); \ - while (resultC->returnValueUCS.IsEmpty() && \ + while (resultC->returnValueUCS.IsVoid() == PR_TRUE && \ resultC->errorOccurred == PR_FALSE) \ { \ PROCESS_PENDING_EVENTS_REF (reference); \ @@ -855,6 +855,8 @@ ResultContainer::ResultContainer () returnIdentifier = -1; returnValue.Truncate(); returnValueUCS.Truncate(); + returnValue.SetIsVoid(PR_TRUE); + returnValueUCS.SetIsVoid(PR_TRUE); errorMessage.Truncate(); errorOccurred = PR_FALSE; @@ -877,6 +879,8 @@ ResultContainer::Clear() returnIdentifier = -1; returnValue.Truncate(); returnValueUCS.Truncate(); + returnValue.SetIsVoid(PR_TRUE); + returnValueUCS.SetIsVoid(PR_TRUE); errorMessage.Truncate(); errorOccurred = PR_FALSE; @@ -3352,7 +3356,8 @@ IcedTeaPluginFactory::HandleMessage (nsC ResultContainer *resultC; result_map.Get(reference, &resultC); - resultC->returnValue = rest; + resultC->returnValue = rest; + resultC->returnValue.SetIsVoid(PR_FALSE); PLUGIN_DEBUG_1ARG ("PLUGIN GOT RETURN VALUE: %s\n", resultC->returnValue.get()); } else if (command == "GetStringUTFChars") @@ -3440,6 +3445,7 @@ IcedTeaPluginFactory::HandleMessage (nsC ResultContainer *resultC; result_map.Get(reference, &resultC); resultC->returnValueUCS = returnValueUCS; + resultC->returnValueUCS.SetIsVoid(PR_FALSE); } // Do nothing for: SetStaticField, SetField, ExceptionClear, diff -r 97ad7002bc2e -r 3ebbbd651177 plugin/icedtea/sun/applet/PluginMessageConsumer.java --- a/plugin/icedtea/sun/applet/PluginMessageConsumer.java Fri Apr 10 12:50:57 2009 +0200 +++ b/plugin/icedtea/sun/applet/PluginMessageConsumer.java Tue Apr 14 13:58:42 2009 -0400 @@ -35,7 +35,6 @@ obligated to do so. If you do not wish obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ - package sun.applet; import java.util.ArrayList; @@ -45,17 +44,19 @@ import sun.applet.AppletSecurity; class PluginMessageConsumer { - int MAX_WORKERS = 3; + int MAX_WORKERS = 20; LinkedList readQueue = new LinkedList(); ArrayList workers = new ArrayList(); PluginStreamHandler streamHandler = null; + AppletSecurity as; public PluginMessageConsumer(PluginStreamHandler streamHandler) { - AppletSecurity as = new AppletSecurity(); + as = new AppletSecurity(); this.streamHandler = streamHandler; - for (int i=0; i < MAX_WORKERS; i++) { + // create some workers at the start... + for (int i=0; i < 3; i++) { PluginDebug.debug("Creating worker " + i); PluginMessageHandlerWorker worker = new PluginMessageHandlerWorker(streamHandler, i, as); worker.start(); @@ -96,6 +97,19 @@ class PluginMessageConsumer { return worker; } } + + // If we have less than MAX_WORKERS, create a new worker + if (workers.size() < MAX_WORKERS) { + PluginDebug.debug("Cannot find free worker, creating worker " + workers.size()); + PluginMessageHandlerWorker worker = new PluginMessageHandlerWorker(streamHandler, workers.size(), as); + worker.start(); + workers.add(worker); + worker.busy(); + return worker; + } else { + // else wait + } + Thread.yield(); } From xerxes at zafena.se Wed Apr 15 03:43:28 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Wed, 15 Apr 2009 12:43:28 +0200 Subject: shark + assertions + llvm2.6 [PATCH] shark IA32 In-Reply-To: <20090415101548.GB3192@redhat.com> References: <49E47B8D.2030900@zafena.se> <20090414131146.GD3268@redhat.com> <49E4BFB7.2010104@zafena.se> <20090415101548.GB3192@redhat.com> Message-ID: <49E5BA50.5000206@zafena.se> Gary Benson skrev: > Xerxes R?nby wrote: > >> Den 2009-04-14 15:11, Gary Benson skrev: >> >>> Xerxes R?nby wrote: >>> >>>> I tested building a debuggable shark with assertions enabled using >>>> the current llvm 2.6 svn trunk on X86. >>>> >>>> I have one assertion that fails when running trivial stuff like java >>>> -version >>>> I wanted to know your opinion if this IA32_ONLY assertion in >>>> /openjdk-ecj/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp:424 >>>> are valid for shark or should i simply ignore it? >>>> >>>> >>> That one's definitely important. If it fails then your stack is >>> corrupted. >>> >> Thanks, i will look for what corrupts my stack then. >> >> Do you know the reason why this assertion is only enabled for IA32 ? >> >> Would not all hotspots using shark or not benefit for checking this >> assertions as well? >> > > Hmmm, I'm confused, I thought it was the assertion before the IA32 > one that was firing, but it's not is it. Are you building on IA32? > If not, there's something wrong with your build! But in any case, > I don't think that IA32_ONLY assertion is valid on Shark, so it > should be surrounded by an #ifdef SHARK ... #endif // SHARK. > > Cheers, > Gary > > I was building on a IA32 machine, more precisely i was building shark on a Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz This is a IA32 CPU in my world so i think the build got that one right. I have attached a patch against Icedtea6 as a remedy for this problem using Shark on IA32 Cheers Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: hg_diff_icedtea-ia32-hotspot-shark.patch Type: text/x-patch Size: 1183 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090415/01d9e3ea/hg_diff_icedtea-ia32-hotspot-shark.patch From gbenson at redhat.com Wed Apr 15 04:47:20 2009 From: gbenson at redhat.com (Gary Benson) Date: Wed, 15 Apr 2009 11:47:20 +0000 Subject: changeset in /hg/icedtea6: 2009-04-15 Gary Benson changeset 03be2128639f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=03be2128639f description: 2009-04-15 Gary Benson Xerxes R?nby * patches/icedtea-zero.patch (BytecodeInterpreter::run): Skip a bad assertion on IA32 with Zero. diffstat: 2 files changed, 17 insertions(+) ChangeLog | 6 ++++++ patches/icedtea-zero.patch | 11 +++++++++++ diffs (34 lines): diff -r 3ebbbd651177 -r 03be2128639f ChangeLog --- a/ChangeLog Tue Apr 14 13:58:42 2009 -0400 +++ b/ChangeLog Wed Apr 15 12:47:36 2009 +0100 @@ -1,3 +1,9 @@ 2009-04-10 Deepak Bhole + Xerxes R??nby + + * patches/icedtea-zero.patch (BytecodeInterpreter::run): + Skip a bad assertion on IA32 with Zero. + 2009-04-10 Deepak Bhole * IcedTeaPlugin.cc: Fix rhbz478561 (freeze with empty string return from diff -r 3ebbbd651177 -r 03be2128639f patches/icedtea-zero.patch --- a/patches/icedtea-zero.patch Tue Apr 14 13:58:42 2009 -0400 +++ b/patches/icedtea-zero.patch Wed Apr 15 12:47:36 2009 +0100 @@ -77,6 +77,17 @@ if (fp) { --- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp.orig 2008-07-27 08:37:03.000000000 +0000 +++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp 2008-07-27 08:38:13.000000000 +0000 +@@ -424,7 +421,9 @@ + #ifdef ASSERT + if (istate->_msg != initialize) { + assert(abs(istate->_stack_base - istate->_stack_limit) == (istate->_method->max_stack() + 1), "bad stack limit"); +- IA32_ONLY(assert(istate->_stack_limit == istate->_thread->last_Java_sp() + 1, "wrong")); ++#if defined(IA32) && !defined(ZERO) ++ assert(istate->_stack_limit == istate->_thread->last_Java_sp() + 1, "wrong"); ++#endif // IA32 && !ZERO + } + // Verify linkages. + interpreterState l = istate; @@ -3030,9 +3030,9 @@ tty->print_cr("&native_fresult: " INTPTR_FORMAT, (uintptr_t) &this->_native_fresult); tty->print_cr("native_lresult: " INTPTR_FORMAT, (uintptr_t) this->_native_lresult); From gbenson at redhat.com Wed Apr 15 04:49:34 2009 From: gbenson at redhat.com (Gary Benson) Date: Wed, 15 Apr 2009 12:49:34 +0100 Subject: shark + assertions + llvm2.6 [PATCH] shark IA32 In-Reply-To: <49E5BA50.5000206@zafena.se> References: <49E47B8D.2030900@zafena.se> <20090414131146.GD3268@redhat.com> <49E4BFB7.2010104@zafena.se> <20090415101548.GB3192@redhat.com> <49E5BA50.5000206@zafena.se> Message-ID: <20090415114934.GC3192@redhat.com> Xerxes R?nby wrote: > Gary Benson skrev: > > Hmmm, I'm confused, I thought it was the assertion before the IA32 > > one that was firing, but it's not is it. Are you building on > > IA32? If not, there's something wrong with your build! But in > > any case, I don't think that IA32_ONLY assertion is valid on > > Shark, so it should be surrounded by an #ifdef SHARK ... #endif // > > SHARK. > > I was building on a IA32 machine, more precisely i was building > shark on a > Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz > This is a IA32 CPU in my world so i think the build got that one > right. > > I have attached a patch against Icedtea6 as a remedy for this > problem using Shark on IA32 I added this chunk to icedtea-zero.patch. It's a Zero thing really, not Shark, my brain's not working today ;) Cheers, Gary -- http://gbenson.net/ From omajid at redhat.com Wed Apr 15 07:47:47 2009 From: omajid at redhat.com (Omair Majid) Date: Wed, 15 Apr 2009 10:47:47 -0400 Subject: Regression in IcedTea6 JTreg Results - hotspot In-Reply-To: <1236182569.4825.15.camel@fedora.wildebeest.org> References: <200903040455.n244tv13016052@ns3.rdu.redhat.com> <1236182569.4825.15.camel@fedora.wildebeest.org> Message-ID: <49E5F393.1020801@redhat.com> Mark Wielaard wrote: > Hi Omair, > > On Tue, 2009-03-03 at 23:55 -0500, IcedTea6 JTreg wrote: >> Recent commiters: >> Mark Wielaard >> Andrew John Hughes >> Gary Benson >> >> Newly failing tests: >> compiler/6775880/Test.java > > And it is correct. I am the "guilty party". It would probably help to > have the full hg description of the changes with the above list. And > maybe add the suspects to the CC so they have a chance to defend > themselves :) > > So, the full failure is: > > #section:main > ----------messages:(3/353)---------- > command: main -server -Xbatch -XX:+DoEscapeAnalysis -XX:+DeoptimizeALot -XX:CompileCommand=exclude,java.lang.AbstractStringBuilder::appendTest > reason: User specified action: run main/othervm -server -Xbatch -XX:+DoEscapeAnalysis -XX:+DeoptimizeALot -XX:CompileCommand=exclude,java.lang.AbstractStringBuilder::append Test > elapsed time (seconds): 0.059 > ----------System.out:(0/0)---------- > ----------System.err:(2/84)---------- > Unrecognized VM option '+DeoptimizeALot' > Could not create the Java virtual machine. > result: Failed. Unexpected exit from test [exit code: 1] > > This comes from: > > changeset: 1412:f03bf9944657 > user: Mark Wielaard > date: Mon Mar 02 22:19:24 2009 +0100 > files: ChangeLog hotspot.map > description: > * hotspot.map (default): Set to rev fc6a5ae3fef5 (14.0-b10). > > This has been "fixed" in HS15 with the following patch: > > changeset: 564:323728917cf4 > user: kvn > date: Thu Feb 05 13:38:52 2009 -0800 > files: src/share/vm/runtime/arguments.cpp > src/share/vm/runtime/globals.hpp > test/compiler/6775880/Test.java > description: > 6788376: allow to ignore unrecognized VM options > Summary: Add new product flag -XX:+IgnoreUnrecognizedVMOptions > Reviewed-by: ysr, xlu > > Will backport. > > Still looking where exactly the +DeoptimizeALot flag disappeared to, > cannot immediately pinpoint the exact hotspot patch. Looks like this option exists, but is only enabled in a debug build: $ openjdk/control/build/linux-i586-debug/j2sdk-image/jre/bin/java -XX:+DeoptimizeALot -version VM option '+DeoptimizeALot' Warning: Cannot open log file: hotspot.log Warning: Forcing option -XX:LogFile=/tmp//hs_pid24007.log java version "1.6.0_0-debug" OpenJDK Runtime Environment (IcedTea6 1.5pre-r953caf041bef) (build 1.6.0_0-debug-b14) OpenJDK Client VM (build 14.0-b10-jvmg, mixed mode) $ openjdk/control/build/linux-i586/j2sdk-image/jre/bin/java -XX:+DeoptimizeALot -version Unrecognized VM option '+DeoptimizeALot' Could not create the Java virtual machine. This test was written to check for a bug in the debug build of the JVM. I dont think it makes a lot of sense to run it against the production build every night. Any thoughts? > > Thanks, > > Mark > Cheers, Omair From bugzilla-daemon at icedtea.classpath.org Thu Apr 16 03:17:49 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 10:17:49 +0000 Subject: [Bug 318] New: Shark java.io.BufferedReader.readLine SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=318 Summary: Shark java.io.BufferedReader.readLine SHARK_FRAME segfaults on ARM Product: IcedTea Version: unspecified Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se How to reproduce: java -Xbatch -X Expected result: java prints all -X options Actual result: segmentationfault Java stack: 0x410280ac: stack_word[0] = 0x431b2460 0x410280b0: monitor[0]->_lock = 0x00000001 0x410280b4: monitor[0]->_obj = 0x431aa880 0x410280b8: exception = 0x00000000 0x410280bc: method = java.io.BufferedReader.readLine(Z)Ljava/lang/String; 0x410280c0: unextended_sp = 0x41028098 0x410280c4: pc = 0x41144795 0x410280c8: frame_type = SHARK_FRAME 0x410280cc: next_frame = 0x41028148 -- 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 Apr 16 03:19:15 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 10:19:15 +0000 Subject: [Bug 318] Shark java.io.BufferedReader.readLine SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=318 ------- Comment #1 from xerxes at zafena.se 2009-04-16 10:19 ------- Created an attachment (id=198) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=198&action=view) hs_err_pid19338.log ARM segmentation fault -- 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 Apr 16 03:58:01 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 10:58:01 +0000 Subject: [Bug 319] New: Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 Summary: Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Product: IcedTea Version: unspecified Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Testcase: class HelloLoop { public static void main(String args[]) { for(int i=0;i<10000;i++) System.out.println("Hello World!"); } } How to reproduce: root at overo:~/test/fails/HelloLoop# java -XX:+SharkTraceInstalls HelloLoop [0x6799a010-0x6799a2c8): java.lang.String::hashCode (696 bytes code) Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! [0x6799a2d0-0x6799b9c4): sun.nio.cs.US_ASCII$Encoder::encodeArrayLoop (5876 bytes code) [0x6799b9d0-0x6799be00): java.lang.String::indexOf (1072 bytes code) [0x6799be10-0x6799bf70): java.nio.ByteBuffer::arrayOffset (352 bytes code) # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/os_linux_zero.cpp:215 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/usr/src/openembedded/overo/tmp/work/armv7a-angstrom-linux-gnueabi/openjdk-6-shark-jre-6b14-r3/icedtea6-1.4.1+hg20090912/openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp:215), pid=19620, tid=1090688144 # Error: # # /--------------------\ # | segmentation fault | # \---\ /--------------/ # / # [-] |\_/| # (+)=C |o o|__ # | | =-*-=__\ # OOO c_c_(___) # # Java VM: OpenJDK Shark VM (14.0-b08-product mixed mode linux-arm ) # Distribution: Built on Ubuntu 8.04.2 # An error report file with more information is saved as: # /home/root/test/fails/HelloLoop/hs_err_pid19620.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # Current thread is 1090688144 Dumping core ... Aborted Java stack: 0x410286d0: exception = 0x00000000 0x410286d4: method = sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult; 0x410286d8: unextended_sp = 0x410286bc 0x410286dc: pc = 0x41144b19 0x410286e0: frame_type = SHARK_FRAME 0x410286e4: next_frame = 0x4102876c -- 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 Apr 16 03:59:11 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 10:59:11 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #1 from xerxes at zafena.se 2009-04-16 10:59 ------- Created an attachment (id=199) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=199&action=view) hs_err_pid19620.log segfault log -- 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 Apr 16 05:43:20 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 12:43:20 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #2 from xerxes at zafena.se 2009-04-16 12:43 ------- I have noticed that when running this test using Shark on my IA32 machine then shark uses sun.nio.cs.UTF_8$Encoder On my ARM board shark uses sun.nio.cs.US_ASCII$Encoder The US_ASCII llvm ir is significantly larger than the UTF_8 llvm ir I will attach both. At the end of the ARM ir .ll file one assertion had fired and have been included in the ir file as well. I recorded the generated IR on ARM like this: java -XX:+SharkTraceInstalls -XX:SharkPrintBitcodeOf=sun.nio.cs.US_ASCII\$Encoder::encodeArrayLoop HelloLoop 2> sun.nio.cs .US_ASCII.ll and on IA32 like this: java -XX:+SharkTraceInstalls -XX:SharkPrintBitcodeOf=sun.nio.cs.UTF_8\$Encoder::encodeArrayLoop HelloLoop 2> IA32sun.nio.cs.UTF_8Encoder.ll -- 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 Apr 16 05:45:10 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 12:45:10 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #3 from xerxes at zafena.se 2009-04-16 12:45 ------- Created an attachment (id=200) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=200&action=view) ARM llvm ir generated for sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop -- 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 Apr 16 05:46:26 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 12:46:26 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #4 from xerxes at zafena.se 2009-04-16 12:46 ------- Created an attachment (id=201) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=201&action=view) IA32 llvm ir generated for sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop -- 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 Apr 16 05:46:58 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 12:46:58 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #201|IA32 llvm ir generated for |IA32 llvm ir generated for description|sun.nio.cs.US_ASCII$Encoder.|sun.nio.cs.UTF_8$Encoder.enc |encodeArrayLoop |odeArrayLoop -- 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 Apr 16 05:47:55 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 12:47:55 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #5 from xerxes at zafena.se 2009-04-16 12:47 ------- (In reply to comment #4) > Created an attachment (id=201) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=201&action=view) [details] > IA32 llvm ir generated for sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop > I meant: IA32 llvm ir generated for sun.nio.cs.UTF_8$Encoder.encodeArrayLoop -- 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 Apr 16 06:05:40 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 13:05:40 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #6 from gbenson at redhat.com 2009-04-16 13:05 ------- Try "export LANG=en_GB.UTF-8" or similar, it sounds like the problem is specific to the US ASCII encoder. -- 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 Apr 16 06:14:00 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 13:14:00 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #7 from xerxes at zafena.se 2009-04-16 13:13 ------- (In reply to comment #6) > Try "export LANG=en_GB.UTF-8" or similar, it sounds like the problem is > specific to the US ASCII encoder. > I trested using the same LANG as i was using on IA32. The output are included below: root at overo:~/test/fails/HelloLoop# export LANG="sv_SE.UTF-8" java -Xbatch -XX:+SharkTraceInstalls HelloLoop root at overo:~/test/fails/HelloLoop# java -Xbatch -XX:+SharkTraceInstalls HelloLoop [0x67c7c010-0x67c7c2c8): java.lang.String::hashCode (696 bytes code) Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! [0x67c7c2d0-0x67c7cfb8): sun.nio.cs.UTF_8$Encoder::encodeArrayLoop (3304 bytes code) # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/os_linux_zero.cpp:215 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/usr/src/openembedded/overo/tmp/work/armv7a-angstrom-linux-gnueabi/openjdk-6-shark-jre-6b14-r3/icedtea6-1.4.1+hg20090912/openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp:215), pid=20480, tid=1090716816 # Error: # # /--------------------\ # | segmentation fault | # \---\ /--------------/ # / # [-] |\_/| # (+)=C |o o|__ # | | =-*-=__\ # OOO c_c_(___) # # Java VM: OpenJDK Shark VM (14.0-b08-product mixed mode linux-arm ) # Distribution: Built on Ubuntu 8.04.2 # An error report file with more information is saved as: # /home/root/test/fails/HelloLoop/hs_err_pid20480.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # Current thread is 1090716816 Dumping core ... Aborted Java stack: 0x4102f6d8: exception = 0x00000000 0x4102f6dc: method = sun.nio.cs.UTF_8$Encoder.encodeArrayLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult; 0x4102f6e0: unextended_sp = 0x4102f6c4 0x4102f6e4: pc = 0x4114bde2 0x4102f6e8: frame_type = SHARK_FRAME 0x4102f6ec: next_frame = 0x4102f76c -- 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 Apr 16 06:21:19 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 13:21:19 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #8 from xerxes at zafena.se 2009-04-16 13:21 ------- Created an attachment (id=202) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=202&action=view) ARM llvm ir generated for sun.nio.cs.UTF_8$Encoder.encodeArrayLoop -- 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 Apr 16 06:22:43 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 13:22:43 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #9 from xerxes at zafena.se 2009-04-16 13:22 ------- (In reply to comment #8) > Created an attachment (id=202) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=202&action=view) [details] > ARM llvm ir generated for sun.nio.cs.UTF_8$Encoder.encodeArrayLoop > Why the generated IR for ARM and IA32 differs in size are a LLVM mystery I have been using the same version of llvm for both arm builds. -- 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 Apr 16 06:38:30 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 13:38:30 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #10 from xerxes at zafena.se 2009-04-16 13:38 ------- Observation: The testcase are not fully deterministic. I have now noticed that sometimes when running the testcase the output looks the same: java -Xbatch -XX:+SharkTraceInstalls HelloLoop Hello World! ... Hello World! [0x67c7c2d0-0x67c7cfb8): sun.nio.cs.UTF_8$Encoder::encodeArrayLoop (3304 bytes code) # ... mjau # Current thread is 1090716816 Dumping core ... Aborted yet the top of the java stack is different, sometimes it are not even a SHARK_FRAME at the top, in this case it was a INTERPERTER_FRAME: Java stack: 0x4102f710: stack_word[2] = 0x43188e10 0x4102f714: stack_word[1] = 0x431ac3b0 0x4102f718: stack_word[0] = 0x00000002 0x4102f71c: (vtable for istate) = 0x4102f6d4 0x4102f720: istate->_thread = 0x00035270 0x4102f724: istate->_bcp = 0x6329fc69 0x4102f728: istate->_locals = 0x4102f784 0x4102f72c: istate->_constants = 0x632a0c58 0x4102f730: istate->_method = java.nio.charset.CharsetEncoder.encode(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult; 0x4102f734: istate->_mdx = 0x00000000 0x4102f738: istate->_stack = 0x4102f714 0x4102f73c: istate->_msg = 0x00000008 0x4102f740: istate->_result = 0x6329e408 0x4102f744: (istate->_result) = 0x410f8180 0x4102f748: (istate->_result) = 0x00000003 0x4102f74c: istate->_prev_link = 0x00000000 0x4102f750: istate->_oop_temp = 0x00000000 0x4102f754: istate->_stack_base = 0x4102f71c 0x4102f758: istate->_stack_limit = 0x4102f70c 0x4102f75c: istate->_monitor_base = 0x4102f71c 0x4102f760: istate->_self_link = 0x4102f71c 0x4102f764: frame_type = INTERPRETER_FRAME 0x4102f768: next_frame = 0x4102f7d4 -- 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 Apr 16 06:42:13 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 13:42:13 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #11 from xerxes at zafena.se 2009-04-16 13:42 ------- Created an attachment (id=203) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=203&action=view) alternative way for the testcase to segfault with INTERPERTER_FRAME at the top of stack -- 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 Apr 16 06:53:27 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 16 Apr 2009 13:53:27 +0000 Subject: [Bug 319] Shark sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop SHARK_FRAME segfaults on ARM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=319 ------- Comment #12 from xerxes at zafena.se 2009-04-16 13:53 ------- Created an attachment (id=204) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=204&action=view) IA32 llvm ir generated for sun.nio.cs.US_ASCII$Encoder.encodeArrayLoop the IA32 generated IR are not the same size as the ARM generated IR -- 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 omajid at redhat.com Thu Apr 16 07:54:49 2009 From: omajid at redhat.com (Omair Majid) Date: Thu, 16 Apr 2009 10:54:49 -0400 Subject: [FYI] Backport -XX:+IgnoreUnrecognizedVMOptions flag to hs14 Message-ID: <49E746B9.5080000@redhat.com> Hi The attached patch backports -XX:+IgnoreUnrecognizedVMOptions to hs14. ChangeLog: 2009-04-16 Omair Majid * patches/hotspot/default/icedtea-ignore-unrecognized-options.patch: New file. Adds -XX:+IgnoreUnrecognizedVMOptions flag to hotspot. * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: hotspot-ignore-unrecognized-options.patch Type: text/x-patch Size: 5070 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090416/e30df336/hotspot-ignore-unrecognized-options.patch From omajid at redhat.com Thu Apr 16 07:58:04 2009 From: omajid at redhat.com (Omair Majid) Date: Thu, 16 Apr 2009 14:58:04 +0000 Subject: changeset in /hg/icedtea6: 2009-04-16 Omair Majid changeset 147eb19a7637 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=147eb19a7637 description: 2009-04-16 Omair Majid * patches/hotspot/default/icedtea-ignore-unrecognized-options.patch: New file. Adds -XX:+IgnoreUnrecognizedVMOptions flag to hotspot. * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. diffstat: 4 files changed, 86 insertions(+), 1 deletion(-) ChangeLog | 7 HACKING | 1 Makefile.am | 3 patches/hotspot/default/icedtea-ignore-unrecognized-options.patch | 76 ++++++++++ diffs (118 lines): diff -r 03be2128639f -r 147eb19a7637 ChangeLog --- a/ChangeLog Wed Apr 15 12:47:36 2009 +0100 +++ b/ChangeLog Thu Apr 16 10:55:27 2009 -0400 @@ -1,3 +1,10 @@ 2009-04-15 Gary Benson + + * patches/hotspot/default/icedtea-ignore-unrecognized-options.patch: New + file. Adds -XX:+IgnoreUnrecognizedVMOptions flag to hotspot. + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + * HACKING: Document the above. + 2009-04-15 Gary Benson Xerxes R??nby diff -r 03be2128639f -r 147eb19a7637 HACKING --- a/HACKING Wed Apr 15 12:47:36 2009 +0100 +++ b/HACKING Thu Apr 16 10:55:27 2009 -0400 @@ -94,6 +94,7 @@ The following patches are currently appl * icedtea-network-unreachable.patch: Check for ENETUNREACH and EHOSTUNREACH early on when doing a Socket.connect(). * icedtea-jtreg-printjob-edgetest-manual.patch: Mark test that requires user interaction as manual. * icedtea-jtreg-jrunscript.patch: Fix jrunscript test so it works with newer versions of rhino (by comparing the actual numbers). +* icedtea-ignore-unrecognized-options.patch: Add -XX:+IgnoreUnrecognizedVMOptions flag to hotspot (S6788376). The following patches are only applied to OpenJDK6 in IcedTea6: diff -r 03be2128639f -r 147eb19a7637 Makefile.am --- a/Makefile.am Wed Apr 15 12:47:36 2009 +0100 +++ b/Makefile.am Thu Apr 16 10:55:27 2009 -0400 @@ -632,7 +632,8 @@ ICEDTEA_PATCHES += \ patches/icedtea-fortify-source.patch \ patches/hotspot/$(HSBUILD)/icedtea-sparc-buildfixes.patch \ patches/hotspot/$(HSBUILD)/icedtea-6791168.patch \ - patches/hotspot/$(HSBUILD)/icedtea-includedb.patch + patches/hotspot/$(HSBUILD)/icedtea-includedb.patch \ + patches/hotspot/$(HSBUILD)/icedtea-ignore-unrecognized-options.patch endif if !WITH_ALT_HSBUILD diff -r 03be2128639f -r 147eb19a7637 patches/hotspot/default/icedtea-ignore-unrecognized-options.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/default/icedtea-ignore-unrecognized-options.patch Thu Apr 16 10:55:27 2009 -0400 @@ -0,0 +1,76 @@ +--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Feb 04 23:17:38 2009 -0800 ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Thu Feb 05 13:38:52 2009 -0800 +@@ -2478,7 +2478,7 @@ jint Arguments::parse_options_environmen + vm_args.version = JNI_VERSION_1_2; + vm_args.options = options; + vm_args.nOptions = i; +- vm_args.ignoreUnrecognized = false; ++ vm_args.ignoreUnrecognized = IgnoreUnrecognizedVMOptions; + + if (PrintVMOptions) { + const char* tail; +@@ -2525,13 +2525,12 @@ jint Arguments::parse(const JavaVMInitAr + + // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed. + bool settings_file_specified = false; ++ const char* flags_file; + int index; + for (index = 0; index < args->nOptions; index++) { + const JavaVMOption *option = args->options + index; + if (match_option(option, "-XX:Flags=", &tail)) { +- if (!process_settings_file(tail, true, args->ignoreUnrecognized)) { +- return JNI_EINVAL; +- } ++ flags_file = tail; + settings_file_specified = true; + } + if (match_option(option, "-XX:+PrintVMOptions", &tail)) { +@@ -2539,6 +2538,24 @@ jint Arguments::parse(const JavaVMInitAr + } + if (match_option(option, "-XX:-PrintVMOptions", &tail)) { + PrintVMOptions = false; ++ } ++ if (match_option(option, "-XX:+IgnoreUnrecognizedVMOptions", &tail)) { ++ IgnoreUnrecognizedVMOptions = true; ++ } ++ if (match_option(option, "-XX:-IgnoreUnrecognizedVMOptions", &tail)) { ++ IgnoreUnrecognizedVMOptions = false; ++ } ++ } ++ ++ if (IgnoreUnrecognizedVMOptions) { ++ // uncast const to modify the flag args->ignoreUnrecognized ++ *(jboolean*)(&args->ignoreUnrecognized) = true; ++ } ++ ++ // Parse specified settings file ++ if (settings_file_specified) { ++ if (!process_settings_file(flags_file, true, args->ignoreUnrecognized)) { ++ return JNI_EINVAL; + } + } + +--- openjdk/hotspot/src/share/vm/runtime/globals.hpp Wed Feb 04 23:17:38 2009 -0800 ++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp Thu Feb 05 13:38:52 2009 -0800 +@@ -2167,6 +2167,9 @@ class CommandLineFlags { + product(bool, PrintVMOptions, trueInDebug, \ + "print VM flag settings") \ + \ ++ product(bool, IgnoreUnrecognizedVMOptions, false, \ ++ "Ignore unrecognized VM options") \ ++ \ + diagnostic(bool, SerializeVMOutput, true, \ + "Use a mutex to serialize output to tty and hotspot.log") \ + \ +--- openjdk/hotspot/test/compiler/6775880/Test.java Wed Feb 04 23:17:38 2009 -0800 ++++ openjdk/hotspot/test/compiler/6775880/Test.java Thu Feb 05 13:38:52 2009 -0800 +@@ -27,7 +27,7 @@ + * @bug 6775880 + * @summary EA +DeoptimizeALot: assert(mon_info->owner()->is_locked(),"object must be locked now") + * @compile -source 1.4 -target 1.4 Test.java +- * @run main/othervm -server -Xbatch -XX:+DoEscapeAnalysis -XX:+DeoptimizeALot -XX:CompileCommand=exclude,java.lang.AbstractStringBuilder::append Test ++ * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -Xbatch -XX:+DoEscapeAnalysis -XX:+DeoptimizeALot -XX:CompileCommand=exclude,java.lang.AbstractStringBuilder::append Test + */ + + public class Test { + From langel at redhat.com Thu Apr 16 08:26:25 2009 From: langel at redhat.com (Lillian Angel) Date: Thu, 16 Apr 2009 15:26:25 +0000 Subject: changeset in /hg/icedtea6: 2009-04-16 Lillian Angel changeset 7e38108fb278 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7e38108fb278 description: 2009-04-16 Lillian Angel * HACKING: Updated. * Makefile.am: Updated to b16 bundle. (ICEDTEA_PATCHES): Removed unneeded patches (icedtea.stamp): fixed build path. (icedtea-ecj.stamp): Likewise. * patches/ecj/icedtea.patch: Fixed path. * patches/icedtea-bytebuffer-compact.patch: Updated. * patches/icedtea-core-build.patch: Fixed path. * patches/icedtea-jdk-docs-target.patch: Fixed path. * patches/icedtea-shark-build.patch: Fixed path. * patches/icedtea-version.patch: Updated * patches/icedtea-display-mode-changer.patch, patches/icedtea-io_util-overflow.patch, patches/security/icedtea-6536193.patch, patches/security/icedtea-6610888.patch, patches/security/icedtea-6610896.patch, patches/security/icedtea-6630639.patch, patches/security/icedtea-6632886.patch, patches/security/icedtea-6636360.patch, patches/security/icedtea-6652463.patch, patches/security/icedtea-6656633.patch, patches/security/icedtea-6658158.patch, patches/security/icedtea-6691246.patch, patches/security/icedtea-6717680.patch, patches/security/icedtea-6721651.patch, patches/security/icedtea-6737315.patch, patches/security/icedtea-6792554.patch, patches/security/icedtea-6804996.patch, patches/security/icedtea-6804997.patch, patches/security/icedtea-6804998.patch: Removed. diffstat: 28 files changed, 51 insertions(+), 3548 deletions(-) ChangeLog | 33 + HACKING | 5 Makefile.am | 42 - patches/ecj/icedtea.patch | 2 patches/icedtea-bytebuffer-compact.patch | 20 patches/icedtea-core-build.patch | 2 patches/icedtea-display-mode-changer.patch | 100 --- patches/icedtea-io_util-overflow.patch | 37 - patches/icedtea-jdk-docs-target.patch | 2 patches/icedtea-shark-build.patch | 2 patches/icedtea-version.patch | 16 patches/security/icedtea-6536193.patch | 102 --- patches/security/icedtea-6610888.patch | 58 - patches/security/icedtea-6610896.patch | 189 ------ patches/security/icedtea-6630639.patch | 31 - patches/security/icedtea-6632886.patch | 502 ----------------- patches/security/icedtea-6636360.patch | 34 - patches/security/icedtea-6652463.patch | 28 patches/security/icedtea-6656633.patch | 51 - patches/security/icedtea-6658158.patch | 815 ---------------------------- patches/security/icedtea-6691246.patch | 166 ----- patches/security/icedtea-6717680.patch | 27 patches/security/icedtea-6721651.patch | 735 ------------------------- patches/security/icedtea-6737315.patch | 44 - patches/security/icedtea-6792554.patch | 415 -------------- patches/security/icedtea-6804996.patch | 75 -- patches/security/icedtea-6804997.patch | 31 - patches/security/icedtea-6804998.patch | 35 - diffs (truncated from 3824 to 500 lines): diff -r 147eb19a7637 -r 7e38108fb278 ChangeLog --- a/ChangeLog Thu Apr 16 10:55:27 2009 -0400 +++ b/ChangeLog Thu Apr 16 11:26:48 2009 -0400 @@ -1,3 +1,36 @@ 2009-04-16 Omair Majid + + * HACKING: Updated. + * Makefile.am: Updated to b16 bundle. + (ICEDTEA_PATCHES): Removed unneeded patches + (icedtea.stamp): fixed build path. + (icedtea-ecj.stamp): Likewise. + * patches/ecj/icedtea.patch: Fixed path. + * patches/icedtea-bytebuffer-compact.patch: Updated. + * patches/icedtea-core-build.patch: Fixed path. + * patches/icedtea-jdk-docs-target.patch: Fixed path. + * patches/icedtea-shark-build.patch: Fixed path. + * patches/icedtea-version.patch: Updated + * patches/icedtea-display-mode-changer.patch, + patches/icedtea-io_util-overflow.patch, + patches/security/icedtea-6536193.patch, + patches/security/icedtea-6610888.patch, + patches/security/icedtea-6610896.patch, + patches/security/icedtea-6630639.patch, + patches/security/icedtea-6632886.patch, + patches/security/icedtea-6636360.patch, + patches/security/icedtea-6652463.patch, + patches/security/icedtea-6656633.patch, + patches/security/icedtea-6658158.patch, + patches/security/icedtea-6691246.patch, + patches/security/icedtea-6717680.patch, + patches/security/icedtea-6721651.patch, + patches/security/icedtea-6737315.patch, + patches/security/icedtea-6792554.patch, + patches/security/icedtea-6804996.patch, + patches/security/icedtea-6804997.patch, + patches/security/icedtea-6804998.patch: Removed. + 2009-04-16 Omair Majid * patches/hotspot/default/icedtea-ignore-unrecognized-options.patch: New diff -r 147eb19a7637 -r 7e38108fb278 HACKING --- a/HACKING Thu Apr 16 10:55:27 2009 -0400 +++ b/HACKING Thu Apr 16 11:26:48 2009 -0400 @@ -32,8 +32,7 @@ The following patches are currently appl * icedtea-javac-debuginfo.patch: Ensure debugging information is generated for all class files. * icedtea-javafiles.patch: Add missing Java files to list. * icedtea-jpegclasses.patch: Add com.sun.image.codec.jpeg support. -* icedtea-lcms-leak.patch: Fix LCMS memory leak. -* icedtea-LCMS-setTagData.patch: Add support for setTagData to LCMS peer. +* icedtea-lcms: Updates lcms to 1.18 and applies other security patches. * icedtea-lib64.patch: Add support for building on platforms with /usr/lib64. * icedtea-libraries.patch: Use system JPEG and zlib libraries. * icedtea-linker-options.patch: Add -Xlinker option when linking. @@ -69,13 +68,11 @@ The following patches are currently appl * icedtea-f2i-overflow.patch: Replaces the code used by [fd]2[il] bytecodes to correctly handle overflows. (PR244, S6779290) * icedtea-6761856-freetypescaler.patch: Fix IcedTea bug #227, OpenJDK bug #6761856, swing TextLayout.getBounds() returns shifted bounds. -* icedtea-display-mode-changer.patch: Add extra test class. * icedtea-testenv.patch: Provide public reachable machines for net/nio tests. * icedtea-samejvm-safe.patch: Add samejvmsafe dirs to TEST.ROOT. * icedtea-6728542-epoll.patch: Make EPoll work on non-x86 platforms. (PR265) * icedtea-fortify-source.patch: Fix build failures with -D_FORTIFY_SOURCE=2. * icedtea-format-warnings.patch: Fix build failures with -Wformat=1. -* icedtea-io_util-overflow.patch: Replace some code to correctly handle overflows. (S6788196) * icedtea-cc-interp-jvmti.patch: Disable some JVMTI capabilities which are unsupported or do not work with the C++ interpreter. * icedtea-demo-swingapplet.patch: Add missing html file needed to run the demo. * icedtea-6791168.patch: Fix build failure with GCC-4.4 (PR 38725) and compiler warnings. diff -r 147eb19a7637 -r 7e38108fb278 Makefile.am --- a/Makefile.am Thu Apr 16 10:55:27 2009 -0400 +++ b/Makefile.am Thu Apr 16 11:26:48 2009 -0400 @@ -1,6 +1,6 @@ OPENJDK_DATE = 25_nov_2008 -OPENJDK_DATE = 25_nov_2008 -OPENJDK_MD5SUM = 9f9773a822156dd3d576d83d794364ce -OPENJDK_VERSION = b14 +OPENJDK_DATE = 13_apr_2009 +OPENJDK_MD5SUM = d395b4d4ac8b2aff70730b953f9e2736 +OPENJDK_VERSION = b16 CACAO_VERSION = 0.99.3 CACAO_MD5SUM = 80de3ad344c1a20c086ec5f1390bd1b8 @@ -106,8 +106,8 @@ EXTRA_DIST = rt generated \ # OpenJDK build environment. OS_DIR = $(BUILD_OS_DIR)-$(BUILD_ARCH_DIR) -BUILD_OUTPUT_DIR = openjdk/control/build/$(OS_DIR) -ECJ_BUILD_OUTPUT_DIR = openjdk-ecj/control/build/$(OS_DIR) +BUILD_OUTPUT_DIR = openjdk/build/$(OS_DIR) +ECJ_BUILD_OUTPUT_DIR = openjdk-ecj/build/$(OS_DIR) ICEDTEA_BUILD_DIR = \ $(abs_top_builddir)/$(BUILD_OUTPUT_DIR) ICEDTEA_RT = \ @@ -544,23 +544,7 @@ ICEDTEA_PATCHES = \ patches/icedtea-javafiles.patch \ patches/icedtea-core-build.patch \ patches/icedtea-jvmtiEnv.patch \ - patches/icedtea-lcms.patch \ - patches/security/icedtea-6536193.patch \ - patches/security/icedtea-6610888.patch \ - patches/security/icedtea-6610896.patch \ - patches/security/icedtea-6630639.patch \ - patches/security/icedtea-6632886.patch \ - patches/security/icedtea-6652463.patch \ - patches/security/icedtea-6656633.patch \ - patches/security/icedtea-6658158.patch \ - patches/security/icedtea-6691246.patch \ - patches/security/icedtea-6717680.patch \ - patches/security/icedtea-6721651.patch \ - patches/security/icedtea-6737315.patch \ - patches/security/icedtea-6792554.patch \ - patches/security/icedtea-6804996.patch \ - patches/security/icedtea-6804997.patch \ - patches/security/icedtea-6804998.patch + patches/icedtea-lcms.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ @@ -615,11 +599,9 @@ ICEDTEA_PATCHES += \ patches/icedtea-linker-libs-order.patch \ patches/icedtea-f2i-overflow.patch \ patches/icedtea-6761856-freetypescaler.patch \ - patches/icedtea-display-mode-changer.patch \ patches/icedtea-testenv.patch \ patches/icedtea-samejvm-safe.patch \ patches/icedtea-6728542-epoll.patch \ - patches/icedtea-io_util-overflow.patch \ patches/icedtea-cc-interp-jvmti.patch \ patches/icedtea-pr261.patch \ patches/icedtea-doc-headers.patch \ @@ -1130,7 +1112,7 @@ stamps/icedtea.stamp: stamps/bootstrap-d stamps/pulse-java.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV) \ - -C openjdk/control/make/ \ + -C openjdk \ $(ICEDTEA_BUILD_TARGET) mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) mkdir -p $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) @@ -1197,7 +1179,7 @@ stamps/icedtea-debug.stamp: stamps/boots stamps/pulse-java.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV) \ - -C openjdk/control/make \ + -C openjdk \ $(ICEDTEA_DEBUG_BUILD_TARGET) mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) @@ -1260,7 +1242,7 @@ clean-icedtea: stamps/extract.stamp clean-icedtea: stamps/extract.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV) \ - -C openjdk/control/make clobber + -C openjdk clobber rm -f stamps/icedtea.stamp stamps/icedtea-debug.stamp icedtea-against-icedtea: \ @@ -1287,7 +1269,7 @@ stamps/icedtea-ecj.stamp: stamps/bootstr stamps/ports-ecj.stamp stamps/patch-ecj.stamp stamps/cacao.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV_ECJ) \ - -C openjdk-ecj/control/make \ + -C openjdk-ecj/make \ $(ICEDTEA_BUILD_TARGET) @echo "ecj-poured IcedTea is served:" \ $(ECJ_BUILD_OUTPUT_DIR) @@ -1309,13 +1291,13 @@ hotspot-helper: stamps/bootstrap-directo stamps/ports-ecj.stamp stamps/patch-ecj.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV_ECJ) \ - -C openjdk-ecj/control/make hotspot + -C openjdk-ecj/make hotspot clean-icedtea-ecj: stamps/extract-ecj.stamp rm -f stamps/icedtea-ecj.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV_ECJ) \ - -C openjdk-ecj/control/make clobber + -C openjdk-ecj/make clobber stamps/icedtea-against-ecj.stamp: \ stamps/bootstrap-directory-symlink-ecj.stamp \ diff -r 147eb19a7637 -r 7e38108fb278 patches/ecj/icedtea.patch --- a/patches/ecj/icedtea.patch Thu Apr 16 10:55:27 2009 -0400 +++ b/patches/ecj/icedtea.patch Thu Apr 16 11:26:48 2009 -0400 @@ -1,6 +1,6 @@ diff -Nru openjdk-ecj.orig/control/make/ diff -Nru openjdk-ecj.orig/control/make/make/jdk-rules.gmk openjdk-ecj/control/make/make/jdk-rules.gmk --- openjdk-ecj.orig/control/make/make/jdk-rules.gmk 2008-10-20 18:45:00.000000000 +0100 -+++ openjdk-ecj/control/make/make/jdk-rules.gmk 2008-10-20 18:50:20.000000000 +0100 ++++ openjdk-ecj/make/jdk-rules.gmk 2008-10-20 18:50:20.000000000 +0100 @@ -58,7 +58,7 @@ endif diff -r 147eb19a7637 -r 7e38108fb278 patches/icedtea-bytebuffer-compact.patch --- a/patches/icedtea-bytebuffer-compact.patch Thu Apr 16 10:55:27 2009 -0400 +++ b/patches/icedtea-bytebuffer-compact.patch Thu Apr 16 11:26:48 2009 -0400 @@ -60,23 +60,3 @@ + } + } ---- ../openjdkb23/openjdk.old/jdk/src/share/classes/java/nio/Direct-X-Buffer.java 2007-10-30 04:36:08.000000000 -0400 -+++ openjdk/jdk/src/share/classes/java/nio/Direct-X-Buffer.java 2007-11-13 13:34:14.000000000 -0500 -@@ -354,6 +354,7 @@ - unsafe.copyMemory(ix(pos), ix(0), rem << $LG_BYTES_PER_VALUE$); - position(rem); - limit(capacity()); -+ clearMark(); - return this; - #else[rw] - throw new ReadOnlyBufferException(); ---- ../openjdkb23/openjdk.old/jdk/src/share/classes/java/nio/Heap-X-Buffer.java 2007-10-30 04:36:08.000000000 -0400 -+++ openjdk/jdk/src/share/classes/java/nio/Heap-X-Buffer.java 2007-11-13 13:34:27.000000000 -0500 -@@ -222,6 +222,7 @@ - System.arraycopy(hb, ix(position()), hb, ix(0), remaining()); - position(remaining()); - limit(capacity()); -+ clearMark(); - return this; - #else[rw] - throw new ReadOnlyBufferException(); diff -r 147eb19a7637 -r 7e38108fb278 patches/icedtea-core-build.patch --- a/patches/icedtea-core-build.patch Thu Apr 16 10:55:27 2009 -0400 +++ b/patches/icedtea-core-build.patch Thu Apr 16 11:26:48 2009 -0400 @@ -1,6 +1,6 @@ diff -ru openjdk.orig/control/make/make/ diff -ru openjdk.orig/control/make/make/hotspot-rules.gmk openjdk/control/make/hotspot-rules.gmk --- openjdk.orig/control/make/make/hotspot-rules.gmk 2007-10-12 08:45:09.000000000 +0100 -+++ openjdk/control/make/make/hotspot-rules.gmk 2007-11-08 09:40:57.000000000 +0000 ++++ openjdk/make/hotspot-rules.gmk 2007-11-08 09:40:57.000000000 +0000 @@ -72,6 +72,10 @@ HOTSPOT_TARGET = all_fastdebug endif diff -r 147eb19a7637 -r 7e38108fb278 patches/icedtea-display-mode-changer.patch --- a/patches/icedtea-display-mode-changer.patch Thu Apr 16 10:55:27 2009 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -6733718: test /java/awt/FullScreen/UninitializedDisplayModeChangeTest/ fails -Reviewed-by: igor - ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/jdk/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/DisplayModeChanger.java Tue Aug 05 09:37:03 2008 -0700 -@@ -0,0 +1,93 @@ -+/* -+ * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+import java.awt.DisplayMode; -+import java.awt.EventQueue; -+import java.awt.Frame; -+import java.awt.GraphicsDevice; -+import java.awt.GraphicsEnvironment; -+import java.lang.reflect.InvocationTargetException; -+ -+/** -+ * Used by the UninitializedDisplayModeChangeTest to change the -+ * display mode. -+ */ -+public class DisplayModeChanger { -+ -+ public static void main(String[] args) -+ throws InterruptedException, InvocationTargetException -+ { -+ final GraphicsDevice gd = -+ GraphicsEnvironment.getLocalGraphicsEnvironment(). -+ getDefaultScreenDevice(); -+ -+ EventQueue.invokeAndWait(new Runnable() { -+ public void run() { -+ Frame f = null; -+ if (gd.isFullScreenSupported()) { -+ try { -+ f = new Frame("DisplayChanger Frame"); -+ gd.setFullScreenWindow(f); -+ if (gd.isDisplayChangeSupported()) { -+ DisplayMode dm = findDisplayMode(gd); -+ if (gd != null) { -+ gd.setDisplayMode(dm); -+ } -+ } -+ try { -+ Thread.sleep(1000); -+ } catch (InterruptedException ex) { -+ ex.printStackTrace(); -+ } -+ gd.setFullScreenWindow(null); -+ } finally { -+ if (f != null) { -+ f.dispose(); -+ } -+ } -+ } -+ } -+ }); -+ } -+ -+ /** -+ * Finds a display mode that is different from the current display -+ * mode and is likely to cause a display change event. -+ */ -+ private static DisplayMode findDisplayMode(GraphicsDevice gd) { -+ DisplayMode dms[] = gd.getDisplayModes(); -+ DisplayMode currentDM = gd.getDisplayMode(); -+ for (DisplayMode dm : dms) { -+ if (!dm.equals(currentDM) && -+ dm.getRefreshRate() == currentDM.getRefreshRate()) -+ { -+ // different from the current dm and refresh rate is the same -+ // means that something else is different => more likely to -+ // cause a DM change event -+ return dm; -+ } -+ } -+ return null; -+ } -+ -+} - diff -r 147eb19a7637 -r 7e38108fb278 patches/icedtea-io_util-overflow.patch --- a/patches/icedtea-io_util-overflow.patch Thu Apr 16 10:55:27 2009 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -diff -r 201a75db9b35 openjdk/jdk/src/share/native/java/io/io_util.c ---- openjdk/jdk/src/share/native/java/io/io_util.c Mon Dec 22 12:32:44 2008 +0000 -+++ openjdk/jdk/src/share/native/java/io/io_util.c Mon Dec 22 12:48:49 2008 +0000 -@@ -25,6 +25,7 @@ - - #include - #include -+#include - - #include "jni.h" - #include "jni_util.h" -@@ -73,9 +74,10 @@ - return -1; - } - datalen = (*env)->GetArrayLength(env, bytes); -+ assert(datalen >= 0); - -- if ((off < 0) || (off > datalen) || -- (len < 0) || ((off + len) > datalen) || ((off + len) < 0)) { -+ if ((off < 0) || (len < 0) || -+ (((uint32_t) off + (uint32_t) len) > (uint32_t) datalen)) { - JNU_ThrowByName(env, "java/lang/IndexOutOfBoundsException", 0); - return -1; - } -@@ -146,9 +148,10 @@ - return; - } - datalen = (*env)->GetArrayLength(env, bytes); -+ assert(datalen >= 0); - -- if ((off < 0) || (off > datalen) || -- (len < 0) || ((off + len) > datalen) || ((off + len) < 0)) { -+ if ((off < 0) || (len < 0) || -+ (((uint32_t) off + (uint32_t) len) > (uint32_t) datalen)) { - JNU_ThrowByName(env, "java/lang/IndexOutOfBoundsException", 0); - return; - } diff -r 147eb19a7637 -r 7e38108fb278 patches/icedtea-jdk-docs-target.patch --- a/patches/icedtea-jdk-docs-target.patch Thu Apr 16 10:55:27 2009 -0400 +++ b/patches/icedtea-jdk-docs-target.patch Thu Apr 16 11:26:48 2009 -0400 @@ -1,5 +1,5 @@ --- openjdk/control/make/make/jdk-rules.gmk 2008-06-29 10:09:47.002591764 +0000 -+++ openjdk/control/make/make/jdk-rules.gmk 2008-06-29 15:04:01.228901751 +0000 ++++ openjdk/make/jdk-rules.gmk 2008-06-29 15:04:01.228901751 +0000 @@ -36,12 +36,7 @@ IMAGES_TARGET = images endif diff -r 147eb19a7637 -r 7e38108fb278 patches/icedtea-shark-build.patch --- a/patches/icedtea-shark-build.patch Thu Apr 16 10:55:27 2009 -0400 +++ b/patches/icedtea-shark-build.patch Thu Apr 16 11:26:48 2009 -0400 @@ -1,6 +1,6 @@ diff -r 8e41d25d7665 openjdk/control/mak diff -r 8e41d25d7665 openjdk/control/make/make/hotspot-rules.gmk --- openjdk/control/make/make/hotspot-rules.gmk Fri Jun 20 13:26:10 2008 +0100 -+++ openjdk/control/make/make/hotspot-rules.gmk Fri Jun 20 13:26:20 2008 +0100 ++++ openjdk/make/hotspot-rules.gmk Fri Jun 20 13:26:20 2008 +0100 @@ -75,6 +75,9 @@ ifdef ICEDTEA_CORE_BUILD ifdef ICEDTEA_CORE_BUILD HOTSPOT_TARGET := $(HOTSPOT_TARGET)core diff -r 147eb19a7637 -r 7e38108fb278 patches/icedtea-version.patch --- a/patches/icedtea-version.patch Thu Apr 16 10:55:27 2009 -0400 +++ b/patches/icedtea-version.patch Thu Apr 16 11:26:48 2009 -0400 @@ -1,18 +1,4 @@ ---- openjdk/langtools/make/Makefile.orig -+++ openjdk/langtools/make/Makefile -@@ -82,7 +82,11 @@ - endif - - ifdef MILESTONE -+ifneq ($(MILESTONE),fcs) - ANT_OPTIONS += -Dmilestone=$(MILESTONE) -+else -+ ANT_OPTIONS += -Drelease=$(JDK_VERSION) -+endif - endif - - ifdef BUILD_NUMBER ---- ../openjdk6/jdk/make/common/shared/Defs.gmk 2008-08-28 04:10:47.000000000 -0400 +--- 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 @@ -194,7 +194,7 @@ diff -r 147eb19a7637 -r 7e38108fb278 patches/security/icedtea-6536193.patch --- a/patches/security/icedtea-6536193.patch Thu Apr 16 10:55:27 2009 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ ---- old/src/share/classes/com/sun/xml/internal/bind/v2/runtime/output/UTF8XmlOutput.java Tue Mar 3 11:34:51 2009 -+++ openjdk/jaxws/src/share/classes/com/sun/xml/internal/bind/v2/runtime/output/UTF8XmlOutput.java Tue Mar 3 11:34:50 2009 -@@ -1,27 +1,3 @@ --/* -- * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -- * -- * This code is free software; you can redistribute it and/or modify it -- * under the terms of the GNU General Public License version 2 only, as -- * published by the Free Software Foundation. Sun designates this -- * particular file as subject to the "Classpath" exception as provided -- * by Sun in the LICENSE file that accompanied this code. -- * -- * 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. -- */ - package com.sun.xml.internal.bind.v2.runtime.output; - - import java.io.IOException; -@@ -32,6 +8,7 @@ - import com.sun.xml.internal.bind.DatatypeConverterImpl; - import com.sun.xml.internal.bind.v2.runtime.Name; - import com.sun.xml.internal.bind.v2.runtime.XMLSerializer; -+import com.sun.xml.internal.bind.v2.runtime.MarshallerImpl; - - import org.xml.sax.SAXException; - -@@ -81,6 +58,11 @@ - protected boolean closeStartTagPending = false; - - /** -+ * @see MarshallerImpl#header -+ */ -+ private String header; -+ -+ /** - * - * @param localNames - * local names encoded in UTF-8. -@@ -92,6 +74,10 @@ - prefixes[i] = new Encoded(); - } - -+ public void setHeader(String header) { -+ this.header = header; -+ } -+ - @Override - public void startDocument(XMLSerializer serializer, boolean fragment, int[] nsUriIndex2prefixIndex, NamespaceContextImpl nsContext) throws IOException, SAXException, XMLStreamException { - super.startDocument(serializer, fragment,nsUriIndex2prefixIndex,nsContext); -@@ -100,6 +86,10 @@ - if(!fragment) { - write(XML_DECL); - } -+ if(header!=null) { -+ textBuffer.set(header); -+ textBuffer.write(this); -+ } - } - - public void endDocument(boolean fragment) throws IOException, SAXException, XMLStreamException { -@@ -383,11 +373,23 @@ - return buf; - } - -- private static final byte[] XMLNS_EQUALS = toBytes(" xmlns=\""); -- private static final byte[] XMLNS_COLON = toBytes(" xmlns:"); From langel at redhat.com Thu Apr 16 08:31:27 2009 From: langel at redhat.com (Lillian Angel) Date: Thu, 16 Apr 2009 11:31:27 -0400 Subject: Updated to b16 Message-ID: <49E74F4F.1030106@redhat.com> Hi, I updated IcedTea6 to the new OpenJDK b16 bundle released today. Please let me know if there are any problems. Thanks, Lillian From Joe.Darcy at Sun.COM Thu Apr 16 21:20:40 2009 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Thu, 16 Apr 2009 21:20:40 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <49DE0442.6060802@sun.com> <17c6771e0904091055w7c14a9adg982e0ff37a55e0a4@mail.gmail.com> Message-ID: <49E80398.6090601@sun.com> Catching up on email, Andrew John Hughes wrote: > 2009/4/9 Alan Bateman : > >> Andrew Haley wrote: >> [snip] >> I'm not very familiar with IcedTea but I cloned the repository to see what >> these patches are about. Here are a few comments: >> >> icedtea-6728542-epoll.patch seems to be a change-set I pushed to jdk7 last >> year. It seems very reasonable to push this into jdk6/jdk6/jdk. Go for it! >> >> > > Yes, I've referenced the bug on the wiki now. Joe, can we commit this to 6? > Yes! -Joe From bugzilla-daemon at icedtea.classpath.org Thu Apr 16 21:29:08 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 17 Apr 2009 04:29:08 +0000 Subject: [Bug 300] shark fails to build Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=300 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xerxes at zafena.se ------- Comment #19 from xerxes at zafena.se 2009-04-17 04:29 ------- (In reply to comment #11) > Is this patch *all* that is necesasry to have Shark build and run correctly > with LLVM 2.5? > For X86 and PPC yes! (builds and runs) ARM builds ok but does not run correctly. -- 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 Apr 16 21:36:49 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 17 Apr 2009 04:36:49 +0000 Subject: [Bug 300] shark fails to build Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=300 ------- Comment #20 from xerxes at zafena.se 2009-04-17 04:36 ------- Created an attachment (id=205) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=205&action=view) implement missing methods for llvm pre 2.6 svn trunk I have extended Roberts patch and added two more methods to shark memory manager inorder to be able to build Shark using the pre 2.6 LLVM svn trunk. I am using this to track the incoming flood of LLVM ARM target fixes. The current state of the ARM backend can be followed in this LLVM-dev mailinglist thread: http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-April/021404.html -- 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 Fri Apr 17 02:39:24 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 17 Apr 2009 09:39:24 +0000 Subject: [Bug 300] shark fails to build Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=300 ------- Comment #21 from aph at redhat.com 2009-04-17 09:39 ------- Is there some way you can write this so that Shark will build on 2.4, 2.5, and 2.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 Apr 17 06:56:38 2009 From: langel at redhat.com (Lillian Angel) Date: Fri, 17 Apr 2009 13:56:38 +0000 Subject: changeset in /hg/icedtea6: 2009-04-17 Lillian Angel changeset 7408dba85141 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7408dba85141 description: 2009-04-17 Lillian Angel * Makefile.am (icedtea-ecj.stamp): Fixed makefile path. diffstat: 2 files changed, 8 insertions(+), 3 deletions(-) ChangeLog | 5 +++++ Makefile.am | 6 +++--- diffs (40 lines): diff -r 7e38108fb278 -r 7408dba85141 ChangeLog --- a/ChangeLog Thu Apr 16 11:26:48 2009 -0400 +++ b/ChangeLog Fri Apr 17 09:57:01 2009 -0400 @@ -1,3 +1,8 @@ 2009-04-16 Lillian Angel + + * Makefile.am + (icedtea-ecj.stamp): Fixed makefile path. + 2009-04-16 Lillian Angel * HACKING: Updated. diff -r 7e38108fb278 -r 7408dba85141 Makefile.am --- a/Makefile.am Thu Apr 16 11:26:48 2009 -0400 +++ b/Makefile.am Fri Apr 17 09:57:01 2009 -0400 @@ -1269,7 +1269,7 @@ stamps/icedtea-ecj.stamp: stamps/bootstr stamps/ports-ecj.stamp stamps/patch-ecj.stamp stamps/cacao.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV_ECJ) \ - -C openjdk-ecj/make \ + -C openjdk-ecj/ \ $(ICEDTEA_BUILD_TARGET) @echo "ecj-poured IcedTea is served:" \ $(ECJ_BUILD_OUTPUT_DIR) @@ -1291,13 +1291,13 @@ hotspot-helper: stamps/bootstrap-directo stamps/ports-ecj.stamp stamps/patch-ecj.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV_ECJ) \ - -C openjdk-ecj/make hotspot + -C openjdk-ecj/ hotspot clean-icedtea-ecj: stamps/extract-ecj.stamp rm -f stamps/icedtea-ecj.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV_ECJ) \ - -C openjdk-ecj/make clobber + -C openjdk-ecj/ clobber stamps/icedtea-against-ecj.stamp: \ stamps/bootstrap-directory-symlink-ecj.stamp \ From bugzilla-daemon at icedtea.classpath.org Fri Apr 17 08:06:04 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 17 Apr 2009 15:06:04 +0000 Subject: [Bug 320] New: daylight savings time status not reported correctly Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=320 Summary: daylight savings time status not reported correctly Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: jbezanson at interactivesupercomputing.com The Date, Calendar, and TimeZone classes say we are not in daylight savings time, which disagrees with my system setting. This causes Date to report the time as one hour ago. The following code: import java.lang.*; import java.util.*; import java.text.*; public class TimeZoneTest { public static void main(String[] args) { Date now = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy_MM_dd_HHmm_ss_zzzz"); System.out.println(df.format(now)); System.out.println("DST? = "+ ((TimeZone.getDefault().inDaylightTime(now)) ? "yes":"no")); } } gives this output: 2009_04_17_0948_57_GMT-05:00 DST? = no while the date command says: $ date -R Fri, 17 Apr 2009 10:49:01 -0400 [jbezanson ~/src/scratch]$ java -version java version "1.6.0_0" IcedTea6 1.4 (fedora-7.b12.fc10-i386) Runtime Environment (build 1.6.0_0-b12) OpenJDK Server VM (build 10.0-b19, mixed mode) On another system, with a different JRE: 2009_04_17_1050_35_Eastern Daylight Time DST? = yes [jbezanson at megaro ~]$ java -version java version "1.6.0_05" Java(TM) SE Runtime Environment (build 1.6.0_05-b13) Java HotSpot(TM) 64-Bit Server VM (build 10.0-b19, mixed mode) To be fair, this is a different system so a hardware difference could be involved too. But the disagreement with "date" on the same system seems wrong. -- 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 omajid at redhat.com Fri Apr 17 08:24:53 2009 From: omajid at redhat.com (Omair Majid) Date: Fri, 17 Apr 2009 11:24:53 -0400 Subject: [RFC] Fix StackOverflowError with TreePaths Message-ID: <49E89F45.5010500@redhat.com> Hi Trying to encode a TreePath as XML can cause a StackOverflowError. The attached case SimpleTreePathTest.java is a simple reproducer. The issue appears to be that when using the TreePath as a java bean, the wrong constructor is picked. The TreePath in the example uses the constructor TreePath(Object []) but the constructor picked by the bean reflection mechanism is TreePath(Object). So instead of ["Path1", "Path2"] we get [["Path1", "Path2"]]. TreePaths are immutable and so one cant be converted into another. XMLEncoder then recursively tries to create a new TreePath to match the original, but cant, until it hits a StackOverflowError. The fix is to somehow ensure that the right constructor gets picked for creating a TreePath. The attached patch tries to pick a constructor with more array arugment matches. JDK7 uses another technique to solve this problem: the bean (in this case TreePath) uses annotation to indicate the constructor to use when creating the bean. There were no regressions in any of the jtreg XMLEncoder tests after applying this patch. I am not sure about the performance impact of this change though. Any objections/suggestions? Cheers, Omair -------------- next part -------------- A non-text attachment was scrubbed... Name: SimpleTreePathTest.java Type: text/x-java Size: 466 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090417/48fa1c54/SimpleTreePathTest.java -------------- next part -------------- A non-text attachment was scrubbed... Name: treepath-stackoverflow.patch Type: text/x-patch Size: 4343 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090417/48fa1c54/treepath-stackoverflow.patch From bugzilla-daemon at icedtea.classpath.org Fri Apr 17 08:27:04 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 17 Apr 2009 15:27:04 +0000 Subject: [Bug 320] daylight savings time status not reported correctly Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=320 ------- Comment #1 from matthew.flaschen at gatech.edu 2009-04-17 15:27 ------- It's only supposed to use system settings to determine which Time Zone you're in. After that, the JRE can determine whether you're in DST any way it pleases, as long as it's right. What time zone is your machine set to? You can usually get this with: ls -l /etc/localtime Then, to see if Java agrees do: System.out.println(TimeZone.getDefault()); -- 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 Fri Apr 17 10:30:55 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 17 Apr 2009 17:30:55 +0000 Subject: [Bug 320] daylight savings time status not reported correctly Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=320 ------- Comment #2 from jbezanson at interactivesupercomputing.com 2009-04-17 17:30 ------- Thanks for the super-fast reply. TimeZone.getDefault() gives: sun.util.calendar.ZoneInfo[id="GMT-05:00",offset=-18000000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null] /etc/localime is not a link on my system, but the time zone is set to America/New_York and I confirmed that /etc/localtime is identical to /usr/share/zoneinfo/America/New_York. -- 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 martinrb at google.com Fri Apr 17 12:55:33 2009 From: martinrb at google.com (Martin Buchholz) Date: Fri, 17 Apr 2009 12:55:33 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49DDF4C6.1070602@redhat.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> Message-ID: <1ccfd1c10904171255u7063d007ra14860e535e5c7b8@mail.gmail.com> On Thu, Apr 9, 2009 at 06:14, Andrew Haley wrote: > Andrew Haley wrote: >> We at Red Hat have noticed that the list of IcedTea local patches has >> been getting large, with some local patches that should have been >> pushed upstream. ?Also, some IcedTea patches have been committed to >> OpenJDK 7 but not OpenJDK 6. >> >> So, we're going to have a serious attempt to minimize the number of >> IcedTea patches. ?We'll create a Wiki page at icedtea.classpath.org >> that is a list of the patches, and for every one we're going to >> discuss whether it should stay IcedTea local, be pushed upstream to >> OpenJDK, or be deleted altogether. ?Then we will create OpenJDK >> bugzilla entries for the patches that we think should be integrated >> upstream and work with Sun engineers to get that done. > > The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches > These are the patches in icedtea/patches and icedtea/patches/hotspot. IcedTea folk and especially Andrew, thank you very much for this effort. Here at Google, we also have some local patches and we have a similar effort to push changes upstream. It is probably a common experience that patches are developed in a hurry to meet some release date, and the upstream push effort is deferred to post-release. This may result in a delay before the rest of the openjdk community shares the patch, but has the advantage that the patch is much more likely to be correct, since it will already have had real users. It occurs to me that there is a new reason to maintain a "buffer" forest that contains patches on their way into Sun's master forest, namely the periodic stabilization for jdk7 milestone releases. It may make sense for Google (i.e. me) to push changes into the icedtea upstream-directed forest if openjdk forests are in quiescent mode. Martin From bugzilla-daemon at icedtea.classpath.org Fri Apr 17 19:52:45 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 18 Apr 2009 02:52:45 +0000 Subject: [Bug 321] New: SIGSEGV (0xb) at pc=0x00a3dcab with Java VM: OpenJDK Server VM (1.6.0-b09 mixed mode linux-x86) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=321 Summary: SIGSEGV (0xb) at pc=0x00a3dcab with Java VM: OpenJDK Server VM (1.6.0-b09 mixed mode linux-x86) Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: leemgs at gmail.com # # An unexpected error has been detected by Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00a3dcab, pid=4681, tid=24157072 # # Java VM: OpenJDK Server VM (1.6.0-b09 mixed mode linux-x86) # Problematic frame: # V [libjvm.so+0xefcab] # # An error report file with more information is saved as: # /home/invain/bin/mydroid-x86/hs_err_pid4681.log # # If you would like to submit a bug report, please visit: # http://icedtea.classpath.org/bugzilla # make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.dex] ??? make: *** ??? ?? ??? ???? ????.... [invain at fedora9 mydroid-x86]$ ------------------------------------------------------ # # An unexpected error has been detected by Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00a3dcab, pid=4681, tid=24157072 # # Java VM: OpenJDK Server VM (1.6.0-b09 mixed mode linux-x86) # Problematic frame: # V [libjvm.so+0xefcab] # # If you would like to submit a bug report, please visit: # http://icedtea.classpath.org/bugzilla # --------------- T H R E A D --------------- Current thread (0x0948dc00): VMThread [stack: 0x01689000,0x0170a000] [id=4696] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0xacbbff58 Registers: EAX=0xacbbff58, EBX=0x00f19838, ECX=0x01708ff8, EDX=0xacbbff58 ESP=0x01708e94, EBP=0x01708ea8, ESI=0x0948e128, EDI=0x0948e110 EIP=0x00a3dcab, CR2=0xacbbff58, EFLAGS=0x00210212 Top of Stack: (sp=0x01708e94) 0x01708e94: 01000000 0025bd96 00a3dc9a 00f19838 0x01708ea4: 0948e128 01708ec8 00a3ddff acbbff58 0x01708eb4: 00000000 01708ed8 00a3ddea 00f19838 0x01708ec4: 01708ff8 01708ef8 00beaa0d 0948e128 0x01708ed4: 00000000 01708ef8 00bea9ee 0fc680e0 0x01708ee4: 00000000 01708f08 00f19838 01708fb4 0x01708ef4: 01708fb4 01709048 00db6bc3 01708ff8 0x01708f04: 00f1b06c 01709048 00db6ee5 00f19838 Instructions: (pc=0x00a3dcab) 0x00a3dc9b: 81 c3 9e bb 4d 00 8b 45 08 85 c0 74 14 83 ec 0c 0x00a3dcab: 8b 30 50 e8 cd fe ff ff 83 c4 10 89 f0 85 f6 75 Stack: [0x01689000,0x0170a000], sp=0x01708e94, free space=511k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0xefcab] V [libjvm.so+0xefdff] V [libjvm.so+0x29ca0d] V [libjvm.so+0x468bc3] V [libjvm.so+0x4753a2] V [libjvm.so+0x441038] V [libjvm.so+0x528cd7] V [libjvm.so+0x52e7d1] V [libjvm.so+0x52d37a] V [libjvm.so+0x52d961] V [libjvm.so+0x52dd25] V [libjvm.so+0x42ed99] C [libpthread.so.0+0x632f] VM_Operation (0x0015fd3c): ParallelGCFailedAllocation, mode: safepoint, requested by thread 0x09404000 --------------- P R O C E S S --------------- Java Threads: ( => current thread ) 0x094b3c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4702, stack(0x0185d000,0x018ae000)] 0x094b2000 JavaThread "CompilerThread1" daemon [_thread_blocked, id=4701, stack(0x017dc000,0x0185d000)] 0x094af800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=4700, stack(0x0175b000,0x017dc000)] 0x094ae400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=4699, stack(0x0170a000,0x0175b000)] 0x09495400 JavaThread "Finalizer" daemon [_thread_blocked, id=4698, stack(0x008e2000,0x00933000)] 0x09490c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=4697, stack(0x003ea000,0x0043b000)] 0x09404000 JavaThread "main" [_thread_blocked, id=4693, stack(0x00110000,0x00161000)] Other Threads: =>0x0948dc00 VMThread [stack: 0x01689000,0x0170a000] [id=4696] 0x094b5400 WatcherThread [stack: 0x089b2000,0x08a33000] [id=4703] VM state:at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) [0x09401fc0/0x09401fe8] Threads_lock - owner thread: 0x0948dc00 [0x09402610/0x09402628] Heap_lock - owner thread: 0x09404000 Heap PSYoungGen total 116480K, used 9522K [0xad460000, 0xb7f00000, 0xb7f00000) eden space 58240K, 16% used [0xad460000,0xaddaca68,0xb0d40000) from space 58240K, 0% used [0xb4620000,0xb4620000,0xb7f00000) to space 58240K, 0% used [0xb0d40000,0xb0d40000,0xb4620000) PSOldGen total 343104K, used 343103K [0x57f00000, 0x6ce10000, 0xad460000) object space 343104K, 99% used [0x57f00000,0x6ce0fff8,0x6ce10000) PSPermGen total 16384K, used 8740K [0x4ff00000, 0x50f00000, 0x57f00000) object space 16384K, 53% used [0x4ff00000,0x50789258,0x50f00000) Dynamic libraries: 00110000-00113000 ---p 00110000 00:00 0 00113000-00161000 rwxp 00113000 00:00 0 00161000-00177000 r-xp 00000000 08:05 20824 /lib/libnsl-2.8.so 00177000-00178000 r--p 00015000 08:05 20824 /lib/libnsl-2.8.so 00178000-00179000 rw-p 00016000 08:05 20824 /lib/libnsl-2.8.so 00179000-0017b000 rw-p 00179000 00:00 0 0017b000-0019d000 r-xp 00000000 08:05 763992 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjava.so 0019d000-0019f000 rw-p 00022000 08:05 763992 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjava.so 0019f000-001a5000 r-xp 00000000 08:05 764012 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libzip.so 001a5000-001a6000 rw-p 00006000 08:05 764012 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libzip.so 001b2000-001ce000 r-xp 00000000 08:05 16414 /lib/ld-2.8.so 001ce000-001cf000 r--p 0001c000 08:05 16414 /lib/ld-2.8.so 001cf000-001d0000 rw-p 0001d000 08:05 16414 /lib/ld-2.8.so 001d2000-00335000 r-xp 00000000 08:05 16417 /lib/libc-2.8.so 00335000-00337000 r--p 00163000 08:05 16417 /lib/libc-2.8.so 00337000-00338000 rw-p 00165000 08:05 16417 /lib/libc-2.8.so 00338000-0033b000 rw-p 00338000 00:00 0 0033d000-00340000 r-xp 00000000 08:05 16438 /lib/libdl-2.8.so 00340000-00341000 r--p 00002000 08:05 16438 /lib/libdl-2.8.so 00341000-00342000 rw-p 00003000 08:05 16438 /lib/libdl-2.8.so 00344000-0036b000 r-xp 00000000 08:05 16437 /lib/libm-2.8.so 0036b000-0036c000 r--p 00026000 08:05 16437 /lib/libm-2.8.so 0036c000-0036d000 rw-p 00027000 08:05 16437 /lib/libm-2.8.so 0036f000-00384000 r-xp 00000000 08:05 20821 /lib/libpthread-2.8.so 00384000-00385000 r--p 00014000 08:05 20821 /lib/libpthread-2.8.so 00385000-00386000 rw-p 00015000 08:05 20821 /lib/libpthread-2.8.so 00386000-00388000 rw-p 00386000 00:00 0 003a9000-003aa000 r-xp 003a9000 00:00 0 [vdso] 003aa000-003b2000 rwxp 003aa000 00:00 0 003b2000-003ea000 rwxp 003b2000 00:00 0 003ea000-003ed000 ---p 003ea000 00:00 0 003ed000-0043b000 rwxp 003ed000 00:00 0 0045e000-00464000 r-xp 00000000 08:05 764013 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/native_threads/libhpi.so 00464000-00465000 rw-p 00006000 08:05 764013 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/native_threads/libhpi.so 0046e000-00481000 r-xp 00000000 08:05 17382 /lib/libz.so.1.2.3 00481000-00482000 rw-p 00012000 08:05 17382 /lib/libz.so.1.2.3 00484000-0048c000 r-xp 00000000 08:05 20822 /lib/librt-2.8.so 0048c000-0048d000 r--p 00007000 08:05 20822 /lib/librt-2.8.so 0048d000-0048e000 rw-p 00008000 08:05 20822 /lib/librt-2.8.so 0048e000-0048f000 ---p 0048e000 00:00 0 0048f000-0050f000 rwxp 0048f000 00:00 0 00518000-00522000 r-xp 00000000 08:05 20646 /lib/libnss_files-2.8.so 00522000-00523000 r--p 0000a000 08:05 20646 /lib/libnss_files-2.8.so 00523000-00524000 rw-p 0000b000 08:05 20646 /lib/libnss_files-2.8.so 00524000-00532000 rwxp 00524000 00:00 0 00532000-005e4000 rwxp 00532000 00:00 0 0062a000-00636000 r-xp 00000000 08:05 764011 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libverify.so 00636000-00637000 rw-p 0000b000 08:05 764011 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libverify.so 00637000-006df000 rwxp 00637000 00:00 0 006df000-008e2000 rwxp 006df000 00:00 0 008e2000-008e5000 ---p 008e2000 00:00 0 008e5000-00933000 rwxp 008e5000 00:00 0 0094a000-0094d000 r-xp 00000000 08:05 763978 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/jli/libjli.so 0094d000-0094e000 rw-p 00003000 08:05 763978 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/jli/libjli.so 0094e000-00edd000 r-xp 00000000 08:05 764018 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server/libjvm.so 00edd000-00f27000 rw-p 0058e000 08:05 764018 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server/libjvm.so 00f27000-01348000 rw-p 00f27000 00:00 0 01348000-01350000 rwxp 01348000 00:00 0 01350000-01388000 rwxp 01350000 00:00 0 01388000-01430000 rwxp 01388000 00:00 0 01430000-01632000 rwxp 01430000 00:00 0 01632000-01688000 rwxp 01632000 00:00 0 01688000-01689000 rwxp 01688000 00:00 0 01689000-0168a000 ---p 01689000 00:00 0 0168a000-0170a000 rwxp 0168a000 00:00 0 0170a000-0170d000 ---p 0170a000 00:00 0 0170d000-0175b000 rwxp 0170d000 00:00 0 0175b000-0175e000 ---p 0175b000 00:00 0 0175e000-017dc000 rwxp 0175e000 00:00 0 017dc000-017df000 ---p 017dc000 00:00 0 017df000-0185d000 rwxp 017df000 00:00 0 0185d000-01860000 ---p 0185d000 00:00 0 01860000-018ae000 rwxp 01860000 00:00 0 03607000-03987000 rwxp 03607000 00:00 0 03987000-06607000 rwxp 03987000 00:00 0 077df000-077e0000 ---p 077df000 00:00 0 077e0000-07860000 rwxp 077e0000 00:00 0 08048000-08050000 r-xp 00000000 08:05 757516 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/java 08050000-08051000 rw-p 00007000 08:05 757516 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/java 089b2000-089b3000 ---p 089b2000 00:00 0 089b3000-08a33000 rwxp 089b3000 00:00 0 093fe000-0a5f8000 rw-p 093fe000 00:00 0 [heap] 4f200000-4f300000 rw-p 4f200000 00:00 0 4f400000-4f4d6000 rw-p 4f400000 00:00 0 4f4d6000-4f500000 ---p 4f4d6000 00:00 0 4f500000-4f5ff000 rw-p 4f500000 00:00 0 4f5ff000-4f600000 ---p 4f5ff000 00:00 0 4f600000-4f6f9000 rw-p 4f600000 00:00 0 4f6f9000-4f700000 ---p 4f6f9000 00:00 0 4f700000-4f7fc000 rw-p 4f700000 00:00 0 4f7fc000-4f800000 ---p 4f7fc000 00:00 0 4f800000-4f8fc000 rw-p 4f800000 00:00 0 4f8fc000-4f900000 ---p 4f8fc000 00:00 0 4f9f4000-4f9f8000 r--s 00079000 08:05 763980 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jsse.jar 4f9f8000-4fa01000 r--s 00065000 08:05 763957 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext/gnome-java-bridge.jar 4fa01000-4fa0c000 r--s 000ac000 08:05 1769727 /home/invain/bin/mydroid-x86/out/host/linux-x86/framework/dx.jar 4fa0c000-4fb3d000 r--p 0374c000 08:05 614403 /usr/lib/locale/locale-archive 4fb3d000-4fd3d000 r--p 00000000 08:05 614403 /usr/lib/locale/locale-archive 4fd3d000-4fd70000 rw-p 4fd3d000 00:00 0 4fd70000-4ff00000 r--s 033f8000 08:05 764050 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/rt.jar 4ff00000-50f00000 rwxp 4ff00000 00:00 0 50f00000-57f00000 rwxp 50f00000 00:00 0 57f00000-6ce10000 rwxp 57f00000 00:00 0 ad460000-b7f00000 rwxp ad460000 00:00 0 b7f0f000-b7f11000 rw-p b7f0f000 00:00 0 b7f23000-b7f2b000 rw-s 00000000 08:05 388743 /tmp/hsperfdata_invain/4681 b7f2b000-b7f2c000 rwxp b7f2b000 00:00 0 b7f2c000-b7f2d000 ---p b7f2c000 00:00 0 b7f2d000-b7f2e000 rw-p b7f2d000 00:00 0 bf8f8000-bf92d000 rwxp bffca000 00:00 0 [stack] bf92d000-bf92e000 rw-p bffff000 00:00 0 VM Arguments: jvm_args: -Xms16M -Xmx1536M java_command: /home/invain/bin/mydroid-x86/out/host/linux-x86/framework/dx.jar --dex --output=out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.dex --core-library out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar Launcher Type: SUN_STANDARD Environment Variables: PATH=/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/home/invain/bin:/usr/sbin:/sbin USERNAME=invain LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386 SHELL=/bin/bash DISPLAY=:0.0 Signal Handlers: SIGSEGV: [libjvm.so+0x528130], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGBUS: [libjvm.so+0x528130], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGFPE: [libjvm.so+0x42bcb0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGPIPE: [libjvm.so+0x42bcb0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGXFSZ: [libjvm.so+0x42bcb0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGILL: [libjvm.so+0x42bcb0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000 SIGUSR2: [libjvm.so+0x42b660], sa_mask[0]=0x00000000, sa_flags=0x10000004 SIGHUP: [libjvm.so+0x42d820], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGINT: [libjvm.so+0x42d820], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGTERM: [libjvm.so+0x42d820], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGQUIT: [libjvm.so+0x42d820], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 --------------- S Y S T E M --------------- OS:Fedora release 9 (Sulphur) uname:Linux 2.6.27.21-78.2.41.fc9.i686 #1 SMP Mon Mar 23 23:45:58 EDT 2009 i686 libc:glibc 2.8 NPTL 2.8 rlimit: STACK 10240k, CORE 0k, NPROC 1024, NOFILE 1024, AS infinity load average:9.96 6.52 4.50 CPU:total 2 (1 cores per cpu, 2 threads per core) family 6 model 12 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, ht Memory: 4k page, physical 2066344k(51620k free), swap 0k(0k free) vm_info: OpenJDK Server VM (1.6.0-b09) for linux-x86 JRE (1.6.0-b09), built on Apr 6 2009 10:24:08 by "mockbuild" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8) [error occurred during error reporting (printing date and time), id 0xb] -- 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 aph at redhat.com Sat Apr 18 02:50:08 2009 From: aph at redhat.com (Andrew Haley) Date: Sat, 18 Apr 2009 10:50:08 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <1ccfd1c10904171255u7063d007ra14860e535e5c7b8@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <1ccfd1c10904171255u7063d007ra14860e535e5c7b8@mail.gmail.com> Message-ID: <49E9A250.1080605@redhat.com> Martin Buchholz wrote: > On Thu, Apr 9, 2009 at 06:14, Andrew Haley wrote: >> Andrew Haley wrote: >>> We at Red Hat have noticed that the list of IcedTea local patches has >>> been getting large, with some local patches that should have been >>> pushed upstream. Also, some IcedTea patches have been committed to >>> OpenJDK 7 but not OpenJDK 6. >>> >>> So, we're going to have a serious attempt to minimize the number of >>> IcedTea patches. We'll create a Wiki page at icedtea.classpath.org >>> that is a list of the patches, and for every one we're going to >>> discuss whether it should stay IcedTea local, be pushed upstream to >>> OpenJDK, or be deleted altogether. Then we will create OpenJDK >>> bugzilla entries for the patches that we think should be integrated >>> upstream and work with Sun engineers to get that done. >> The page is at http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches >> These are the patches in icedtea/patches and icedtea/patches/hotspot. > > IcedTea folk and especially Andrew, thank you very much for this effort. > > Here at Google, we also have some local patches and we have a similar > effort to push changes upstream. It is probably a common experience > that patches are developed in a hurry to meet some release date, > and the upstream push effort is deferred to post-release. This may result > in a delay before the rest of the openjdk community shares the patch, > but has the advantage that the patch is much more likely to be correct, > since it will already have had real users. > > It occurs to me that there is a new reason to maintain a "buffer" forest > that contains patches on their way into Sun's master forest, namely > the periodic stabilization for jdk7 milestone releases. It may make sense > for Google (i.e. me) to push changes > into the icedtea upstream-directed forest > if openjdk forests are in quiescent mode. Well, maintaining this "buffer" forest is, more or less, what IcedTea does. I'm not sure that we need another one. Check out the IcedTea project at http://openjdk.java.net/projects/icedtea/. Isn't that where our patches should go? Andrew. From martinrb at google.com Sat Apr 18 14:30:41 2009 From: martinrb at google.com (Martin Buchholz) Date: Sat, 18 Apr 2009 14:30:41 -0700 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <49E9A250.1080605@redhat.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <1ccfd1c10904171255u7063d007ra14860e535e5c7b8@mail.gmail.com> <49E9A250.1080605@redhat.com> Message-ID: <1ccfd1c10904181430w5477c238w8094a511cc8eb548@mail.gmail.com> On Sat, Apr 18, 2009 at 02:50, Andrew Haley wrote: > Martin Buchholz wrote: > Well, maintaining this "buffer" forest is, more or less, what IcedTea does. > I'm not sure that we need another one. I wasn't suggesting we start a new buffer forest. I was suggesting we (Google + IcedTea) consider sharing the forest at http://openjdk.java.net/projects/icedtea/. even though Google's patches didn't originate in IcedTea proper. Martin From aph at redhat.com Sat Apr 18 16:00:34 2009 From: aph at redhat.com (Andrew Haley) Date: Sun, 19 Apr 2009 00:00:34 +0100 Subject: New project: getting rid of IcedTea local patches In-Reply-To: <1ccfd1c10904181430w5477c238w8094a511cc8eb548@mail.gmail.com> References: <49D3917B.2010907@redhat.com> <49DDF4C6.1070602@redhat.com> <1ccfd1c10904171255u7063d007ra14860e535e5c7b8@mail.gmail.com> <49E9A250.1080605@redhat.com> <1ccfd1c10904181430w5477c238w8094a511cc8eb548@mail.gmail.com> Message-ID: <49EA5B92.2090700@redhat.com> Martin Buchholz wrote: > On Sat, Apr 18, 2009 at 02:50, Andrew Haley wrote: >> Martin Buchholz wrote: >> Well, maintaining this "buffer" forest is, more or less, what IcedTea does. >> I'm not sure that we need another one. > > I wasn't suggesting we start a new buffer forest. > I was suggesting we (Google + IcedTea) > consider sharing the forest at http://openjdk.java.net/projects/icedtea/. > even though Google's patches didn't originate in IcedTea proper. That's an excellent plan. Andrew. From dbhole at redhat.com Tue Apr 21 11:34:42 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Tue, 21 Apr 2009 14:34:42 -0400 Subject: RFC: Patch to handle nested jars with the plugin Message-ID: <20090421183442.GA32359@redhat.com> Hi, Attached patch adds handling for nested jars (including signed nested jars). Applets with nested jars are used in various places on the Government of Canada websites e.g.: https://blrscr3.egs-seg.gc.ca/cic/mycic/prod/public/portal/start?lang=e (After the check applet completes, hitting "Continue" on the following page without the attached patch will cause the plugin to hang). The patch also makes a small, but important fix that fixes security policy enforcement which was previously causing denied permissions when it shouldn't have. Patch is not 80-char wrapped to make it look neat along with the rest of the files. ChangeLog: * rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Handle nested jars. * rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java: Use site address when checking for policy against CodeSource. * rt/net/sourceforge/jnlp/tools/JarSigner.java: Handle nested jars. Deepak -------------- next part -------------- diff -r 7408dba85141 rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Fri Apr 17 09:57:01 2009 -0400 +++ b/rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Tue Apr 21 14:05:59 2009 -0400 @@ -20,6 +20,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; @@ -344,24 +345,7 @@ //user does not trust this publisher if (!js.getAlreadyTrustPublisher()) { - if (!js.getRootInCacerts()) { //root cert is not in cacerts - boolean b = SecurityWarningDialog.showCertWarningDialog( - SecurityWarningDialog.AccessType.UNVERIFIED, file, js); - if (!b) - throw new LaunchException(null, null, R("LSFatal"), - R("LCLaunching"), R("LNotVerified"), ""); - } else if (js.getRootInCacerts()) { //root cert is in cacerts - boolean b = false; - if (js.noSigningIssues()) - b = SecurityWarningDialog.showCertWarningDialog( - SecurityWarningDialog.AccessType.VERIFIED, file, js); - else if (!js.noSigningIssues()) - b = SecurityWarningDialog.showCertWarningDialog( - SecurityWarningDialog.AccessType.SIGNING_ERROR, file, js); - if (!b) - throw new LaunchException(null, null, R("LSFatal"), - R("LCLaunching"), R("LCancelOnUserRequest"), ""); - } + checkTrustWithUser(js); } else { /** * If the user trusts this publisher (i.e. the publisher's certificate @@ -377,6 +361,27 @@ } activateJars(initialJars); + } + + private void checkTrustWithUser(JarSigner js) throws LaunchException { + if (!js.getRootInCacerts()) { //root cert is not in cacerts + boolean b = SecurityWarningDialog.showCertWarningDialog( + SecurityWarningDialog.AccessType.UNVERIFIED, file, js); + if (!b) + throw new LaunchException(null, null, R("LSFatal"), + R("LCLaunching"), R("LNotVerified"), ""); + } else if (js.getRootInCacerts()) { //root cert is in cacerts + boolean b = false; + if (js.noSigningIssues()) + b = SecurityWarningDialog.showCertWarningDialog( + SecurityWarningDialog.AccessType.VERIFIED, file, js); + else if (!js.noSigningIssues()) + b = SecurityWarningDialog.showCertWarningDialog( + SecurityWarningDialog.AccessType.SIGNING_ERROR, file, js); + if (!b) + throw new LaunchException(null, null, R("LSFatal"), + R("LCLaunching"), R("LCancelOnUserRequest"), ""); + } } /** @@ -505,8 +510,49 @@ JarFile jarFile = new JarFile(localFile); Enumeration e = jarFile.entries(); - while (e.hasMoreElements()) - jarEntries.add(((JarEntry) e.nextElement()).getName()); + while (e.hasMoreElements()) { + + JarEntry je = (JarEntry) e.nextElement(); + + // another jar in my jar? it is more likely than you think + if (je.getName().endsWith(".jar")) { + // We need to extract that jar so that it can be loaded + // (inline loading with "jar:..!/..." path will not work + // with standard classloader methods) + + String extractedJarLocation = localFile.getParent() + "/" + je.getName(); + FileOutputStream extractedJar = new FileOutputStream(extractedJarLocation); + InputStream is = jarFile.getInputStream(je); + + byte[] bytes = new byte[1024]; + int read = is.read(bytes); + while (read > 0) { + extractedJar.write(bytes, 0, read); + read = is.read(bytes); + } + + is.close(); + extractedJar.close(); + + JarSigner signer = new JarSigner(); + signer.verifyJar(extractedJarLocation); + + if (signer.anyJarsSigned() && !signer.getAlreadyTrustPublisher()) { + checkTrustWithUser(signer); + } + + try { + addURL(new URL("file://" + extractedJarLocation)); + } catch (MalformedURLException mfue) { + if (JNLPRuntime.isDebug()) + System.err.println("Unable to add extracted nested jar to classpath"); + + mfue.printStackTrace(); + } + } + + jarEntries.add(je.getName()); + } } diff -r 7408dba85141 rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java --- a/rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java Fri Apr 17 09:57:01 2009 -0400 +++ b/rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java Tue Apr 21 14:05:59 2009 -0400 @@ -65,7 +65,8 @@ PermissionCollection clPermissions = cl.getPermissions(source); // systempolicy permissions need to be accounted for as well - Enumeration e = systemPolicy.getPermissions(source).elements(); + CodeSource appletCS = new CodeSource(JNLPRuntime.getApplication().getJNLPFile().getSourceLocation(), (java.security.cert.Certificate[]) null); + Enumeration e = systemPolicy.getPermissions(appletCS).elements(); while (e.hasMoreElements()) clPermissions.add((Permission) e.nextElement()); diff -r 7408dba85141 rt/net/sourceforge/jnlp/tools/JarSigner.java --- a/rt/net/sourceforge/jnlp/tools/JarSigner.java Fri Apr 17 09:57:01 2009 -0400 +++ b/rt/net/sourceforge/jnlp/tools/JarSigner.java Tue Apr 21 14:05:59 2009 -0400 @@ -218,7 +218,6 @@ String localFile = jarFile.getAbsolutePath(); boolean result = verifyJar(localFile); - checkTrustedCerts(); if (!result) { //allVerified is true until we encounter a problem @@ -241,6 +240,10 @@ boolean hasUnsignedEntry = false; JarInputStream jis = null; + // certs could be uninitialized if one calls this method directly + if (certs == null) + certs = new ArrayList(); + try { jis = new JarInputStream(new FileInputStream(jarName), true); Vector entriesVec = new Vector(); @@ -352,6 +355,9 @@ } } + // check if the certs added above are in the trusted path + checkTrustedCerts(); + //anySigned does not guarantee that all files were signed. return anySigned && !(hasUnsignedEntry || hasExpiredCert || badKeyUsage || badExtendedKeyUsage || badNetscapeCertType From bugzilla-daemon at icedtea.classpath.org Tue Apr 21 19:40:16 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 22 Apr 2009 02:40:16 +0000 Subject: [Bug 322] New: Thread#GetContextClassLoader() throws in IcedTeaPlugin Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=322 Summary: Thread#GetContextClassLoader() throws in IcedTeaPlugin Product: IcedTea Version: unspecified Platform: All URL: http://people.apache.org/~tvolkert/bugreports/getContext ClassLoader/test.html OS/Version: All Status: NEW Severity: critical Priority: P1 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: tvolkert at gmail.com public class Test extends java.applet.Applet { private static final long serialVersionUID = 0; private java.awt.Label label = new java.awt.Label("Loading..."); public void init() { setLayout(new java.awt.BorderLayout()); add(label); } public void start() { try { label.setText(Thread.currentThread().getContextClassLoader().toString()); } catch (Throwable t) { t.printStackTrace(); label.setText(t.toString()); } } } Load this applet into an html page, and it will throw a SecurityException when loaded via the IcedTeaPlugin (see attached URL) . This exception is unique to IcedTea and is unexpected. The SecurityManager that's installed in the plugin should allow the "getClassLoader" runtime permission. I'm filing this as critical because there's no workaround, and it prevents all my applets from even starting up in IcedTea. -- 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 Tue Apr 21 19:42:28 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 22 Apr 2009 02:42:28 +0000 Subject: [Bug 322] Thread#GetContextClassLoader() throws in IcedTeaPlugin Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=322 ------- Comment #1 from tvolkert at gmail.com 2009-04-22 02:42 ------- Forgot the stack trace that I get: java.security.AccessControlException: access denied (java.lang.RuntimePermission getClassLoader) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:342) at java.security.AccessController.checkPermission(AccessController.java:553) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at net.sourceforge.jnlp.runtime.JNLPSecurityManager.checkPermission(JNLPSecurityManager.java:280) at java.lang.Thread.getContextClassLoader(Thread.java:1338) at Test.start(Test.java:13) at sun.applet.AppletPanel.run(AppletPanel.java:476) at java.lang.Thread.run(Thread.java:636) -- 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 Wed Apr 22 05:09:21 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 22 Apr 2009 12:09:21 +0000 Subject: [Bug 323] New: Shark java -Xcheck:jni error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=323 Summary: Shark java -Xcheck:jni error Product: IcedTea Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Expected result: (icedtea6 on ia32): xerxes at labbserver:/usr/src/openembedded/overo$ /usr/lib/jvm/java-6-openjdk.debian/bin/java -Xcheck:jni -version java version "1.6.0_0" OpenJDK Runtime Environment (build 1.6.0_0-b11) OpenJDK Server VM (build 1.6.0_0-b11, mixed mode) xerxes at labbserver:/usr/src/openembedded/overo$ Actual result: (shark on ia32): xerxes at labbserver:/usr/src/openembedded/overo$ java -Xcheck:jni -version FATAL ERROR in native method: Bad global or local ref passed to JNI at java.io.FileInputStream.initIDs(Native Method) at java.io.FileInputStream.(FileInputStream.java:376) at java.lang.System.initializeSystemClass(System.java:1091) Current thread is 3067526032 Dumping core ... Avbruten (SIGABRT) xerxes at labbserver:/usr/src/openembedded/overo$ java -version java version "1.6.0_0" OpenJDK Runtime Environment (IcedTea6 1.5pre-r97ad7002bc2e) (build 1.6.0_0-b14) OpenJDK Shark VM (build 14.0-b10-product, mixed mode) xerxes at labbserver:/usr/src/openembedded/overo$ -- 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 Wed Apr 22 05:50:10 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 22 Apr 2009 12:50:10 +0000 Subject: [Bug 323] Shark java -Xcheck:jni error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=323 gbenson at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|gbenson at redhat.com |.org | -- 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. You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed Apr 22 06:29:09 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 22 Apr 2009 13:29:09 +0000 Subject: [Bug 322] Thread#GetContextClassLoader() throws in IcedTeaPlugin Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=322 ------- Comment #2 from tvolkert at gmail.com 2009-04-22 13:29 ------- I managed to get the debug output in AccessControlContext.checkPermission: access: domain that failed ProtectionDomain (http://people.apache.org/~tvolkert/bugreports/getContextClassLoader/ ) net.sourceforge.jnlp.runtime.JNLPClassLoader at d2368df java.security.Permissions at 359b46dc ( (java.net.SocketPermission localhost:1024- listen,resolve) (java.net.SocketPermission people.apache.org connect,accept,resolve) (java.net.SocketPermission localhost:1024- listen,resolve) (java.net.SocketPermission localhost:1024- listen,resolve) (java.net.SocketPermission people.apache.org connect,accept,resolve) (java.lang.RuntimePermission stopThread) (java.lang.RuntimePermission exitVM) (java.awt.AWTPermission showWindowWithoutWarningBanner) (java.util.PropertyPermission line.separator read) (java.util.PropertyPermission java.vm.version read) (java.util.PropertyPermission java.vm.specification.version read) (java.util.PropertyPermission java.vendor.url read) (java.util.PropertyPermission java.vm.specification.vendor read) (java.util.PropertyPermission java.vm.name read) (java.util.PropertyPermission os.name read) (java.util.PropertyPermission java.vm.vendor read) (java.util.PropertyPermission path.separator read) (java.util.PropertyPermission os.version read) (java.util.PropertyPermission java.specification.name read) (java.util.PropertyPermission os.arch read) (java.util.PropertyPermission java.version read) (java.util.PropertyPermission java.class.version read) (java.util.PropertyPermission java.vendor read) (java.util.PropertyPermission file.separator read) (java.util.PropertyPermission java.vm.specification.name read) (java.util.PropertyPermission java.specification.version read) (java.util.PropertyPermission java.specification.vendor read) ) -- 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 Wed Apr 22 09:56:25 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 22 Apr 2009 16:56:25 +0000 Subject: [Bug 322] Thread#GetContextClassLoader() throws in IcedTeaPlugin Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=322 ------- Comment #3 from tvolkert at gmail.com 2009-04-22 16:56 ------- Actually, it occurs to me that it's likely not a problem with the SecurityManager (specifically, net.sourceforge.jnlp.SecurityDesc) at all, but with the fact that Thread.currentThread().getContextClassLoader() isn't returning the same class loader that loaded the applet itself. Per the specification: "First, if there is a security manager, and the caller's class loader is not null and the caller's class loader is not the same as or an ancestor of the context class loader for the thread whose context class loader is being requested, then the security manager's checkPermission method is called with a RuntimePermission("getClassLoader") permission to see if it's ok to get the context ClassLoader.. " If they were the same class loader or if the applet's class loader were an ancestor of the context class loader, then the security manager wouldn't even be consulted. I checked, and on the Sun plugin, this is indeed the case. So this bug becomes a question of "why are two different class loaders in play here?" -- 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 Wed Apr 22 10:14:15 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 22 Apr 2009 17:14:15 +0000 Subject: [Bug 322] Thread#GetContextClassLoader() throws in IcedTeaPlugin Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=322 ------- Comment #4 from tvolkert at gmail.com 2009-04-22 17:14 ------- My previous comment has been confirmed: I updated the source of my test case (see http://people.apache.org/~tvolkert/bugreports/getContextClassLoader/Test.java). The output when run on the Sun plugin is as follows: Class loader for Test is: sun.plugin2.applet.Applet2ClassLoader at 4413ee Context class loader for current thread is: sun.plugin2.applet.Applet2ClassLoader at 4413ee -- 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 Wed Apr 22 15:36:20 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 22 Apr 2009 22:36:20 +0000 Subject: [Bug 322] Thread#GetContextClassLoader() throws in IcedTeaPlugin Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=322 ------- Comment #5 from dbhole at redhat.com 2009-04-22 22:36 ------- The plugin uses NetX for its classloading. NetX defines its own classloader with customized overridden methods for finding classes, resources, initializing them from the web, processing INDEX.LIST files, etc. As for why they are different: The thread is started from a Launcher class that is loaded by the original loader (sun.misc.Launcher...) The applet class itself on the other hand, is loaded from inside the JNLPClassLoader which is instantiated via the Launcher. The result therefore is expected. AFAIK, there is no Java Plugin standard that specifies which classloader loads which class. In your case, you should be able to provide a RuntimePermission via the java.policy file to make it work. If there are other users for the applet, you also have the option to signing the applet to make it trusted, after which it will have the necessary permissions. I tried it on my end by adding a RuntimePermission for getClassLoader, and was able to see the output on STDOUT: Class loader for Test is: net.sourceforge.jnlp.runtime.JNLPClassLoader at f6a882 Context class loader for current thread is: sun.misc.Launcher$AppClassLoader at 93dee9 -- 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 xerxes at zafena.se Thu Apr 23 02:42:01 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 23 Apr 2009 11:42:01 +0200 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero (new ARM specific patch) In-Reply-To: <20090407095101.GB3204@redhat.com> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> <49DA10EB.9080704@gatech.edu> <20090407095101.GB3204@redhat.com> Message-ID: <49F037E9.2040806@zafena.se> Gary Benson skrev: > Ok, so there's no way around this. > > I'm thinking is that ARM is a special case here: you could implement > SharkBuilder::CreateCmpxchg* on ARM by inlining arm_compare_and_swap > from atomic_linux_zero.inline.hpp. That wouldn't require any LLVM > modifications, and it wouldn't be any slower than a "real" > implementation of llvm.atomic.cmp.swap.i32 because either way the > atomic part is handled by the call to __kernel_cmpxchg so the > generated code would be the same. > > Obviously it would be preferable for this code to be in LLVM rather > than in Shark, but I know that implementing it in LLVM won't be quick > or easy so I can live with a bit of clutter in Shark for this. > > What I'm not happy with is the idea of a generic solution that would > perform a function call on platforms that don't require one, because > that _would_ be slower than an implementation of llvm.atomic.cmp.swap. > For platforms that have instructions to do this I'm going to insist > people bite the bullet and implement the intrinsic. > > Cheers, > Gary > > Hi Gary i have attached a reworked patch which only apply for ARM with appropriate comments so that new developers will know whats going on and also know what can be removed once the LLVM implementation are in place. Cheers, Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6_sharkBuilder_arm_atomic.patch Type: text/x-patch Size: 2526 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090423/3d041a4d/icedtea6_sharkBuilder_arm_atomic.patch From xerxes at zafena.se Thu Apr 23 02:47:24 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 23 Apr 2009 11:47:24 +0200 Subject: [patch] Zero and Shark improved ARM memory barrier implementation Message-ID: <49F0392C.2020900@zafena.se> I have attached a improved version of the memory barrier functionality for the ARM arch used in Zero and Shark that makes use of the ARM kernel memory barrier helper. Cheers, and have a great day! Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6_sharkBuilder_arm_memory_barrier.patch Type: text/x-patch Size: 1224 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090423/8c34765e/icedtea6_sharkBuilder_arm_memory_barrier.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6_zero_arm_memory_barrier.patch Type: text/x-patch Size: 1448 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090423/8c34765e/icedtea6_zero_arm_memory_barrier.patch From gbenson at redhat.com Thu Apr 23 03:39:50 2009 From: gbenson at redhat.com (Gary Benson) Date: Thu, 23 Apr 2009 11:39:50 +0100 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero (new ARM specific patch) In-Reply-To: <49F037E9.2040806@zafena.se> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> <49DA10EB.9080704@gatech.edu> <20090407095101.GB3204@redhat.com> <49F037E9.2040806@zafena.se> Message-ID: <20090423103949.GB3221@redhat.com> Xerxes R?nby wrote: > Hi Gary i have attached a reworked patch which only apply for ARM > with appropriate comments so that new developers will know whats > going on and also know what can be removed once the LLVM > implementation are in place. Looks good. Do you have commit access? Cheers, Gary -- http://gbenson.net/ From xerxes at zafena.se Thu Apr 23 03:43:23 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 23 Apr 2009 12:43:23 +0200 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero (new ARM specific patch) In-Reply-To: <20090423103949.GB3221@redhat.com> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> <49DA10EB.9080704@gatech.edu> <20090407095101.GB3204@redhat.com> <49F037E9.2040806@zafena.se> <20090423103949.GB3221@redhat.com> Message-ID: <49F0464B.8050104@zafena.se> Gary Benson skrev: > Xerxes R?nby wrote: > >> Hi Gary i have attached a reworked patch which only apply for ARM >> with appropriate comments so that new developers will know whats >> going on and also know what can be removed once the LLVM >> implementation are in place. >> > > Looks good. Do you have commit access? > > Cheers, > Gary > > No, I do not have commit access to the icedtea repositorys. Could this be arranged? Xerxes From gbenson at redhat.com Thu Apr 23 03:43:57 2009 From: gbenson at redhat.com (Gary Benson) Date: Thu, 23 Apr 2009 11:43:57 +0100 Subject: [patch] Zero and Shark improved ARM memory barrier implementation In-Reply-To: <49F0392C.2020900@zafena.se> References: <49F0392C.2020900@zafena.se> Message-ID: <20090423104357.GC3221@redhat.com> Xerxes R?nby wrote: > +#ifdef ARM > + make_function( > + 0xffff0fa0, > + type, > + "__kernel_dmb")); > +#else Can you add a little "// __kernel_dmb" after the 0xffff0fa0? > inline void OrderAccess::acquire() > { > +#ifdef ARM > + __kernel_dmb(); > +#else > READ_MEM_BARRIER; > +#endif // ARM > } > > inline void OrderAccess::release() > { > +#ifdef ARM > + __kernel_dmb(); > +#else > WRITE_MEM_BARRIER; > +#endif // ARM > } For these two I'd prefer if you did something like: #ifdef ARM #define READ_MEM_BARRIER __kernel_dmb() #define WRITE_MEM_BARRIER __kernel_dmb() #else ... PPC, etc > inline void OrderAccess::fence() > { > +#ifdef ARM > + __kernel_dmb(); > +#else > __sync_synchronize(); > +#endif // ARM > } For this one, can we do it like acquire() and release()? Define FULL_MEM_BARRIER as either __kernel_dmb() or __sync_synchronize() in the same block that defines the other barrier macros? Cheers, Gary -- http://gbenson.net/ From gbenson at redhat.com Thu Apr 23 04:00:05 2009 From: gbenson at redhat.com (Gary Benson) Date: Thu, 23 Apr 2009 12:00:05 +0100 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero (new ARM specific patch) In-Reply-To: <49F0464B.8050104@zafena.se> References: <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> <49DA10EB.9080704@gatech.edu> <20090407095101.GB3204@redhat.com> <49F037E9.2040806@zafena.se> <20090423103949.GB3221@redhat.com> <49F0464B.8050104@zafena.se> Message-ID: <20090423110005.GE3221@redhat.com> Xerxes R?nby wrote: > Gary Benson skrev: > > Xerxes R?nby wrote: > > > Hi Gary i have attached a reworked patch which only apply for > > > ARM with appropriate comments so that new developers will know > > > whats going on and also know what can be removed once the LLVM > > > implementation are in place. > > > > Looks good. Do you have commit access? > > No, I do not have commit access to the icedtea repositorys. > Could this be arranged? I certainly wouldn't have a problem with it :) Mark Wielaard is the man to sort you out if nobody else objects. By the way, what's your SCA status these days? Cheers, Gary -- http://gbenson.net/ From xerxes at zafena.se Thu Apr 23 04:16:19 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 23 Apr 2009 13:16:19 +0200 Subject: [patch] Zero and Shark improved ARM memory barrier implementation In-Reply-To: <20090423104357.GC3221@redhat.com> References: <49F0392C.2020900@zafena.se> <20090423104357.GC3221@redhat.com> Message-ID: <49F04E03.8000401@zafena.se> Gary Benson skrev: > Xerxes R?nby wrote: > >> +#ifdef ARM >> + make_function( >> + 0xffff0fa0, >> + type, >> + "__kernel_dmb")); >> +#else >> > > Can you add a little "// __kernel_dmb" after the 0xffff0fa0? > > >> inline void OrderAccess::acquire() >> { >> +#ifdef ARM >> + __kernel_dmb(); >> +#else >> READ_MEM_BARRIER; >> +#endif // ARM >> } >> >> inline void OrderAccess::release() >> { >> +#ifdef ARM >> + __kernel_dmb(); >> +#else >> WRITE_MEM_BARRIER; >> +#endif // ARM >> } >> > > For these two I'd prefer if you did something like: > > #ifdef ARM > #define READ_MEM_BARRIER __kernel_dmb() > #define WRITE_MEM_BARRIER __kernel_dmb() > #else > ... PPC, etc > > >> inline void OrderAccess::fence() >> { >> +#ifdef ARM >> + __kernel_dmb(); >> +#else >> __sync_synchronize(); >> +#endif // ARM >> } >> > > For this one, can we do it like acquire() and release()? Define > FULL_MEM_BARRIER as either __kernel_dmb() or __sync_synchronize() > in the same block that defines the other barrier macros? > > Cheers, > Gary > > Thank you gary for the review. I have updated the two patches accordingly. Cheers, Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6_sharkBuilder_arm_memory_barrier.patch Type: text/x-patch Size: 1240 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090423/fdf4ad12/icedtea6_sharkBuilder_arm_memory_barrier.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6_zero_arm_memory_barrier.patch Type: text/x-patch Size: 1461 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090423/fdf4ad12/icedtea6_zero_arm_memory_barrier.patch From gbenson at redhat.com Thu Apr 23 04:47:18 2009 From: gbenson at redhat.com (Gary Benson) Date: Thu, 23 Apr 2009 12:47:18 +0100 Subject: [patch] Zero and Shark improved ARM memory barrier implementation In-Reply-To: <49F04E03.8000401@zafena.se> References: <49F0392C.2020900@zafena.se> <20090423104357.GC3221@redhat.com> <49F04E03.8000401@zafena.se> Message-ID: <20090423114718.GG3221@redhat.com> Xerxes R?nby wrote: > Thank you gary for the review. > I have updated the two patches accordingly. I'll look forward to seeing you commit them :) Cheers, Gary -- http://gbenson.net/ From xerxes at zafena.se Thu Apr 23 07:57:14 2009 From: xerxes at zafena.se (Xerxes R?nby) Date: Thu, 23 Apr 2009 14:57:14 +0000 Subject: changeset in /hg/icedtea6: 2009-04-23 Xerxes R?nby changeset 7c7835fceadc in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7c7835fceadc description: 2009-04-23 Xerxes R?nby * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp (SharkBuilder::init_external_functions): Use memory address to kernel helper __kernel_dmb on arm for memory barrier. * ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp (__kernel_dmb_t): New type. (__kernel_dmb): New macro. (FULL_MEM_BARRIER): New macro that uses __kernel_dmb on arm and __sync_synchronize on all other architectures. (READ_MEM_BARRIER): Updated to use __kernel_dmb on arm. (WRITE_MEM_BARRIER): Likewise. (OrderAccess::fence): Updated to use FULL_MEM_BARRIER. diffstat: 3 files changed, 49 insertions(+), 1 deletion(-) ChangeLog | 14 ++++++ ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp | 22 +++++++++- ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 14 ++++++ diffs (97 lines): diff -r c1db7ce41839 -r 7c7835fceadc ChangeLog --- a/ChangeLog Thu Apr 23 16:57:41 2009 +0200 +++ b/ChangeLog Thu Apr 23 16:59:47 2009 +0200 @@ -1,3 +1,17 @@ 2009-04-23 Xerxes R??nby + + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp + (SharkBuilder::init_external_functions): Use memory address to + kernel helper __kernel_dmb on arm for memory barrier. + * ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp + (__kernel_dmb_t): New type. + (__kernel_dmb): New macro. + (FULL_MEM_BARRIER): New macro that uses __kernel_dmb on arm + and __sync_synchronize on all other architectures. + (READ_MEM_BARRIER): Updated to use __kernel_dmb on arm. + (WRITE_MEM_BARRIER): Likewise. + (OrderAccess::fence): Updated to use FULL_MEM_BARRIER. + 2009-04-23 Xerxes R??nby * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp diff -r c1db7ce41839 -r 7c7835fceadc ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp Thu Apr 23 16:57:41 2009 +0200 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp Thu Apr 23 16:59:47 2009 +0200 @@ -23,6 +23,25 @@ * */ +#ifdef ARM + +/* + * ARM Kernel helper for memory barrier. + * Using __asm __volatile ("":::"memory") does not work reliable on ARM + * and gcc __sync_synchronize(); implementation does not use the kernel + * helper for all gcc versions so it is unreliable to use as well. + */ +typedef void (__kernel_dmb_t) (void); +#define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0) + +#define FULL_MEM_BARRIER __kernel_dmb() +#define READ_MEM_BARRIER __kernel_dmb() +#define WRITE_MEM_BARRIER __kernel_dmb() + +#else // ARM + +#define FULL_MEM_BARRIER __sync_synchronize() + #ifdef PPC #define READ_MEM_BARRIER __asm __volatile ("isync":::"memory") @@ -39,6 +58,7 @@ #endif // PPC +#endif // ARM inline void OrderAccess::loadload() { acquire(); } @@ -58,7 +78,7 @@ inline void OrderAccess::release() inline void OrderAccess::fence() { - __sync_synchronize(); + FULL_MEM_BARRIER; } inline jbyte OrderAccess::load_acquire(volatile jbyte* p) { jbyte data = *p; acquire(); return data; } diff -r c1db7ce41839 -r 7c7835fceadc ports/hotspot/src/share/vm/shark/sharkBuilder.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Thu Apr 23 16:57:41 2009 +0200 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Thu Apr 23 16:59:47 2009 +0200 @@ -138,12 +138,26 @@ void SharkBuilder::init_external_functio "llvm.atomic.cmp.swap.i" LP64_ONLY("64") NOT_LP64("32"), type)); #endif + /* + * The five booleans passed to llvm.memory.barrier are used like this: + * The first four arguments enables a specific barrier in this order: + * load-load, load-store, store-load and store-store. + * The fith argument specifies that the barrier applies to io or device + * or uncached memory. + */ params.clear(); for (int i = 0; i < 5; i++) params.push_back(Type::Int1Ty); type = FunctionType::get(Type::VoidTy, params, false); set_llvm_memory_barrier_fn( +#ifdef ARM + make_function( + 0xffff0fa0, // __kernel_dmb + type, + "__kernel_dmb")); +#else module()->getOrInsertFunction("llvm.memory.barrier", type)); +#endif params.clear(); params.push_back(SharkType::jdouble_type()); From xerxes at zafena.se Thu Apr 23 07:57:14 2009 From: xerxes at zafena.se (Xerxes R?nby) Date: Thu, 23 Apr 2009 14:57:14 +0000 Subject: changeset in /hg/icedtea6: 2009-04-23 Xerxes R?nby changeset c1db7ce41839 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c1db7ce41839 description: 2009-04-23 Xerxes R?nby * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp (zero_cmpxchg_int_fn): New function. (zero_cmpxchg_ptr_fn): Likewise. (SharkBuilder::init_external_functions): Use the above on arm. diffstat: 2 files changed, 53 insertions(+) ChangeLog | 7 +++ ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 46 +++++++++++++++++++++ diffs (87 lines): diff -r 7408dba85141 -r c1db7ce41839 ChangeLog --- a/ChangeLog Fri Apr 17 09:57:01 2009 -0400 +++ b/ChangeLog Thu Apr 23 16:57:41 2009 +0200 @@ -1,3 +1,10 @@ 2009-04-17 Lillian Angel + + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp + (zero_cmpxchg_int_fn): New function. + (zero_cmpxchg_ptr_fn): Likewise. + (SharkBuilder::init_external_functions): Use the above on arm. + 2009-04-17 Lillian Angel * Makefile.am diff -r 7408dba85141 -r c1db7ce41839 ports/hotspot/src/share/vm/shark/sharkBuilder.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri Apr 17 09:57:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Thu Apr 23 16:57:41 2009 +0200 @@ -28,6 +28,38 @@ using namespace llvm; +#ifdef ARM +/* + * ARM lacks atomic operation implementation in LLVM + * http://llvm.org/bugs/show_bug.cgi?id=3877 + * + * These two functions zero_cmpxchg_int_fn and zero_cmpxchg_ptr_fn + * are defined so that they can be inserted into llvm as a workaround to + * make shark reroute all atomic calls back to the implementation in zero. + * The actual insertion are done in SharkBuilder::init_external_functions(). + */ + +extern "C" { + jint zero_cmpxchg_int_fn(volatile jint *ptr, + jint *oldval, + jint *newval) + { + return Atomic::cmpxchg(*newval, + ptr, + *oldval); + } + + intptr_t* zero_cmpxchg_ptr_fn(volatile void* ptr, + intptr_t* oldval, + intptr_t* newval) + { + return (intptr_t *) Atomic::cmpxchg_ptr((void *) newval, + ptr, + (void *) oldval); + } +}; +#endif + SharkBuilder::SharkBuilder(SharkCompiler* compiler) : IRBuilder<>(), _compiler(compiler) @@ -81,7 +113,14 @@ void SharkBuilder::init_external_functio params.push_back(SharkType::jint_type()); type = FunctionType::get(SharkType::jint_type(), params, false); set_llvm_cmpxchg_int_fn( +#ifdef ARM + make_function( + (intptr_t) zero_cmpxchg_int_fn, + type, + "zero_cmpxchg_int_fn")); +#else module()->getOrInsertFunction("llvm.atomic.cmp.swap.i32", type)); +#endif params.clear(); params.push_back(PointerType::getUnqual(SharkType::intptr_type())); @@ -89,8 +128,15 @@ void SharkBuilder::init_external_functio params.push_back(SharkType::intptr_type()); type = FunctionType::get(SharkType::intptr_type(), params, false); set_llvm_cmpxchg_ptr_fn( +#ifdef ARM + make_function( + (intptr_t) zero_cmpxchg_ptr_fn, + type, + "zero_cmpxchg_ptr_fn")); +#else module()->getOrInsertFunction( "llvm.atomic.cmp.swap.i" LP64_ONLY("64") NOT_LP64("32"), type)); +#endif params.clear(); for (int i = 0; i < 5; i++) From xerxes at zafena.se Thu Apr 23 08:06:50 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 23 Apr 2009 17:06:50 +0200 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero (new ARM specific patch) In-Reply-To: <49F0464B.8050104@zafena.se> References: <49CE9FD0.6030202@zafena.se> <49CEACD7.8040203@gmx.net> <49CFA59F.4030509@redhat.com> <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> <49DA10EB.9080704@gatech.edu> <20090407095101.GB3204@redhat.com> <49F037E9.2040806@zafena.se> <20090423103949.GB3221@redhat.com> <49F0464B.8050104@zafena.se> Message-ID: <49F0840A.70308@zafena.se> Xerxes R?nby skrev: > Gary Benson skrev: >> Xerxes R?nby wrote: >> >>> Hi Gary i have attached a reworked patch which only apply for ARM >>> with appropriate comments so that new developers will know whats >>> going on and also know what can be removed once the LLVM >>> implementation are in place. >>> >> >> Looks good. Do you have commit access? >> >> Cheers, >> Gary >> >> > No, I do not have commit access to the icedtea repositorys. > Could this be arranged? > > Xerxes Commited! http://icedtea.classpath.org/hg/icedtea6/rev/c1db7ce41839 Cheers Xerxes From xerxes at zafena.se Thu Apr 23 08:07:45 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 23 Apr 2009 17:07:45 +0200 Subject: [patch] Zero and Shark improved ARM memory barrier implementation In-Reply-To: <20090423114718.GG3221@redhat.com> References: <49F0392C.2020900@zafena.se> <20090423104357.GC3221@redhat.com> <49F04E03.8000401@zafena.se> <20090423114718.GG3221@redhat.com> Message-ID: <49F08441.1010600@zafena.se> Gary Benson skrev: > Xerxes R?nby wrote: > >> Thank you gary for the review. >> I have updated the two patches accordingly. >> > > I'll look forward to seeing you commit them :) > > Cheers, > Gary > > http://icedtea.classpath.org/hg/icedtea6/rev/7c7835fceadc Enjoy! Xerxes From gbenson at redhat.com Thu Apr 23 08:17:24 2009 From: gbenson at redhat.com (Gary Benson) Date: Thu, 23 Apr 2009 16:17:24 +0100 Subject: [patch] Shark reroute LLVM atomic intrinsics to Zero (new ARM specific patch) In-Reply-To: <49F0840A.70308@zafena.se> References: <49D01DB8.9050007@zafena.se> <49D08F90.8020904@redhat.com> <49D09E0F.40802@zafena.se> <20090406125837.GF3260@redhat.com> <49DA10EB.9080704@gatech.edu> <20090407095101.GB3204@redhat.com> <49F037E9.2040806@zafena.se> <20090423103949.GB3221@redhat.com> <49F0464B.8050104@zafena.se> <49F0840A.70308@zafena.se> Message-ID: <20090423151724.GH3221@redhat.com> Xerxes R?nby wrote: > Xerxes R?nby skrev: > > Gary Benson skrev: > > > Xerxes R?nby wrote: > > > > Hi Gary i have attached a reworked patch which only apply for > > > > ARM with appropriate comments so that new developers will know > > > > whats going on and also know what can be removed once the LLVM > > > > implementation are in place. > > > > > > Looks good. Do you have commit access? > > > No, I do not have commit access to the icedtea repositorys. > > Could this be arranged? > > Commited! > http://icedtea.classpath.org/hg/icedtea6/rev/c1db7ce41839 Sweet :D Cheers, Gary -- http://gbenson.net/ From dbhole at redhat.com Thu Apr 23 11:34:03 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 23 Apr 2009 18:34:03 +0000 Subject: changeset in /hg/icedtea6: - Handle nested archive jars. Message-ID: changeset 46128f71ec57 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=46128f71ec57 description: - Handle nested archive jars. - Use site address when checking for policy against CodeSource. diffstat: 4 files changed, 84 insertions(+), 22 deletions(-) ChangeLog | 9 + rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 86 +++++++++++++----- rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java | 3 rt/net/sourceforge/jnlp/tools/JarSigner.java | 8 + diffs (178 lines): diff -r 7c7835fceadc -r 46128f71ec57 ChangeLog --- a/ChangeLog Thu Apr 23 16:59:47 2009 +0200 +++ b/ChangeLog Thu Apr 23 14:35:50 2009 -0400 @@ -1,3 +1,12 @@ 2009-04-23 Xerxes R??nby + + * rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Handle nested + jars. + * rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java: Use site address when + checking for policy against CodeSource. + * rt/net/sourceforge/jnlp/tools/JarSigner.java: Handle nested + jars. + 2009-04-23 Xerxes R??nby * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp diff -r 7c7835fceadc -r 46128f71ec57 rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Apr 23 16:59:47 2009 +0200 +++ b/rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Apr 23 14:35:50 2009 -0400 @@ -20,6 +20,7 @@ import java.io.File; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; @@ -344,24 +345,7 @@ public class JNLPClassLoader extends URL //user does not trust this publisher if (!js.getAlreadyTrustPublisher()) { - if (!js.getRootInCacerts()) { //root cert is not in cacerts - boolean b = SecurityWarningDialog.showCertWarningDialog( - SecurityWarningDialog.AccessType.UNVERIFIED, file, js); - if (!b) - throw new LaunchException(null, null, R("LSFatal"), - R("LCLaunching"), R("LNotVerified"), ""); - } else if (js.getRootInCacerts()) { //root cert is in cacerts - boolean b = false; - if (js.noSigningIssues()) - b = SecurityWarningDialog.showCertWarningDialog( - SecurityWarningDialog.AccessType.VERIFIED, file, js); - else if (!js.noSigningIssues()) - b = SecurityWarningDialog.showCertWarningDialog( - SecurityWarningDialog.AccessType.SIGNING_ERROR, file, js); - if (!b) - throw new LaunchException(null, null, R("LSFatal"), - R("LCLaunching"), R("LCancelOnUserRequest"), ""); - } + checkTrustWithUser(js); } else { /** * If the user trusts this publisher (i.e. the publisher's certificate @@ -377,6 +361,27 @@ public class JNLPClassLoader extends URL } activateJars(initialJars); + } + + private void checkTrustWithUser(JarSigner js) throws LaunchException { + if (!js.getRootInCacerts()) { //root cert is not in cacerts + boolean b = SecurityWarningDialog.showCertWarningDialog( + SecurityWarningDialog.AccessType.UNVERIFIED, file, js); + if (!b) + throw new LaunchException(null, null, R("LSFatal"), + R("LCLaunching"), R("LNotVerified"), ""); + } else if (js.getRootInCacerts()) { //root cert is in cacerts + boolean b = false; + if (js.noSigningIssues()) + b = SecurityWarningDialog.showCertWarningDialog( + SecurityWarningDialog.AccessType.VERIFIED, file, js); + else if (!js.noSigningIssues()) + b = SecurityWarningDialog.showCertWarningDialog( + SecurityWarningDialog.AccessType.SIGNING_ERROR, file, js); + if (!b) + throw new LaunchException(null, null, R("LSFatal"), + R("LCLaunching"), R("LCancelOnUserRequest"), ""); + } } /** @@ -505,8 +510,49 @@ public class JNLPClassLoader extends URL JarFile jarFile = new JarFile(localFile); Enumeration e = jarFile.entries(); - while (e.hasMoreElements()) - jarEntries.add(((JarEntry) e.nextElement()).getName()); + while (e.hasMoreElements()) { + + JarEntry je = (JarEntry) e.nextElement(); + + // another jar in my jar? it is more likely than you think + if (je.getName().endsWith(".jar")) { + // We need to extract that jar so that it can be loaded + // (inline loading with "jar:..!/..." path will not work + // with standard classloader methods) + + String extractedJarLocation = localFile.getParent() + "/" + je.getName(); + FileOutputStream extractedJar = new FileOutputStream(extractedJarLocation); + InputStream is = jarFile.getInputStream(je); + + byte[] bytes = new byte[1024]; + int read = is.read(bytes); + while (read > 0) { + extractedJar.write(bytes, 0, read); + read = is.read(bytes); + } + + is.close(); + extractedJar.close(); + + JarSigner signer = new JarSigner(); + signer.verifyJar(extractedJarLocation); + + if (signer.anyJarsSigned() && !signer.getAlreadyTrustPublisher()) { + checkTrustWithUser(signer); + } + + try { + addURL(new URL("file://" + extractedJarLocation)); + } catch (MalformedURLException mfue) { + if (JNLPRuntime.isDebug()) + System.err.println("Unable to add extracted nested jar to classpath"); + + mfue.printStackTrace(); + } + } + + jarEntries.add(je.getName()); + } } diff -r 7c7835fceadc -r 46128f71ec57 rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java --- a/rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java Thu Apr 23 16:59:47 2009 +0200 +++ b/rt/net/sourceforge/jnlp/runtime/JNLPPolicy.java Thu Apr 23 14:35:50 2009 -0400 @@ -65,7 +65,8 @@ public class JNLPPolicy extends Policy { PermissionCollection clPermissions = cl.getPermissions(source); // systempolicy permissions need to be accounted for as well - Enumeration e = systemPolicy.getPermissions(source).elements(); + CodeSource appletCS = new CodeSource(JNLPRuntime.getApplication().getJNLPFile().getSourceLocation(), (java.security.cert.Certificate[]) null); + Enumeration e = systemPolicy.getPermissions(appletCS).elements(); while (e.hasMoreElements()) clPermissions.add((Permission) e.nextElement()); diff -r 7c7835fceadc -r 46128f71ec57 rt/net/sourceforge/jnlp/tools/JarSigner.java --- a/rt/net/sourceforge/jnlp/tools/JarSigner.java Thu Apr 23 16:59:47 2009 +0200 +++ b/rt/net/sourceforge/jnlp/tools/JarSigner.java Thu Apr 23 14:35:50 2009 -0400 @@ -218,7 +218,6 @@ public class JarSigner implements CertVe String localFile = jarFile.getAbsolutePath(); boolean result = verifyJar(localFile); - checkTrustedCerts(); if (!result) { //allVerified is true until we encounter a problem @@ -241,6 +240,10 @@ public class JarSigner implements CertVe boolean hasUnsignedEntry = false; JarInputStream jis = null; + // certs could be uninitialized if one calls this method directly + if (certs == null) + certs = new ArrayList(); + try { jis = new JarInputStream(new FileInputStream(jarName), true); Vector entriesVec = new Vector(); @@ -352,6 +355,9 @@ public class JarSigner implements CertVe } } + // check if the certs added above are in the trusted path + checkTrustedCerts(); + //anySigned does not guarantee that all files were signed. return anySigned && !(hasUnsignedEntry || hasExpiredCert || badKeyUsage || badExtendedKeyUsage || badNetscapeCertType From dbhole at redhat.com Thu Apr 23 14:01:16 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 23 Apr 2009 17:01:16 -0400 Subject: 2 more plugin fixes Message-ID: <20090423210116.GA29992@redhat.com> Attached patch fixes two more issues from rhbz: 480075 - javaws not working with ssl properly 483095 - Applet not loading correctly ChangeLog entry: * plugin/icedtea/sun/applet/PluginAppletViewer.java: Unescape " * rt/net/sourceforge/jnlp/runtime/Boot.java: Use custom authenticator for javaws, so that it can handle SSL sites correctly Deepak -------------- next part -------------- diff -r 46128f71ec57 plugin/icedtea/sun/applet/PluginAppletViewer.java --- a/plugin/icedtea/sun/applet/PluginAppletViewer.java Thu Apr 23 14:35:50 2009 -0400 +++ b/plugin/icedtea/sun/applet/PluginAppletViewer.java Thu Apr 23 15:26:07 2009 -0400 @@ -1635,12 +1635,14 @@ att = att.replace("&", "&"); att = att.replace(" ", "\n"); att = att.replace(" ", "\r"); + att = att.replace(""", "\""); val = val.replace(">", ">"); val = val.replace("<", "<"); val = val.replace("&", "&"); val = val.replace(" ", "\n"); val = val.replace(" ", "\r"); + val = val.replace(""", "\""); PluginDebug.debug("PUT " + att + " = " + val); atts.put(att.toLowerCase(), val); } else { @@ -1720,13 +1722,6 @@ if (atts.get("java_type") != null) { atts.put("type", ((String) atts.get("java_type"))); } - - // The attribute codebase isn't what - // we want when not dealing with jars. If its - // defined, remove it in that case. - if(atts.get("archive") == null && atts.get("codebase") != null) { - atts.remove("codebase"); - } if (atts.get("width") == null || !isInt(atts.get("width"))) { atts.put("width", "1000"); diff -r 46128f71ec57 rt/net/sourceforge/jnlp/runtime/Boot.java --- a/rt/net/sourceforge/jnlp/runtime/Boot.java Thu Apr 23 14:35:50 2009 -0400 +++ b/rt/net/sourceforge/jnlp/runtime/Boot.java Thu Apr 23 15:26:07 2009 -0400 @@ -17,17 +17,32 @@ package net.sourceforge.jnlp.runtime; -import java.util.*; -import java.io.*; -import java.net.*; -import java.security.*; +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.ArrayList; +import java.util.List; -import net.sourceforge.jnlp.*; -import net.sourceforge.jnlp.cache.*; -import net.sourceforge.jnlp.runtime.*; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; + +import net.sourceforge.jnlp.AppletDesc; +import net.sourceforge.jnlp.ApplicationDesc; +import net.sourceforge.jnlp.JNLPFile; +import net.sourceforge.jnlp.LaunchException; +import net.sourceforge.jnlp.Launcher; +import net.sourceforge.jnlp.ParseException; +import net.sourceforge.jnlp.PropertyDesc; +import net.sourceforge.jnlp.ResourcesDesc; +import net.sourceforge.jnlp.cache.UpdatePolicy; +import net.sourceforge.jnlp.security.VariableX509TrustManager; import net.sourceforge.jnlp.security.viewer.CertificateViewer; -import net.sourceforge.jnlp.services.*; -import net.sourceforge.jnlp.util.*; +import net.sourceforge.jnlp.services.ServiceUtil; /** * This is the main entry point for the JNLP client. The main @@ -153,6 +168,20 @@ if (null != getOption("-noupdate")) JNLPRuntime.setDefaultUpdatePolicy(UpdatePolicy.NEVER); + + // wire in custom authenticator + try { + SSLSocketFactory sslSocketFactory; + SSLContext context = SSLContext.getInstance("SSL"); + TrustManager[] trust = new TrustManager[] { VariableX509TrustManager.getInstance() }; + context.init(null, trust, null); + sslSocketFactory = context.getSocketFactory(); + + HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory); + } catch (Exception e) { + System.err.println("Unable to set SSLSocketfactory (may _prevent_ access to sites that should be trusted)! Continuing anyway..."); + e.printStackTrace(); + } // do in a privileged action to clear the security context of // the Boot13 class, which doesn't have any privileges in From bugzilla-daemon at icedtea.classpath.org Fri Apr 24 06:21:06 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 24 Apr 2009 13:21:06 +0000 Subject: [Bug 324] New: Shark assert(is_jarray(), "should be") during Java2Demo demos.Mix.JavaMedia Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=324 Summary: Shark assert(is_jarray(),"should be") during Java2Demo demos.Mix.JavaMedia Product: IcedTea Version: unspecified Platform: PC URL: http://java.sun.com/products/java- media/2D/samples/java2demo/Java2Demo.html OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se testcase: appletviewer http://java.sun.com/products/java-media/2D/samples/java2demo/Java2Demo.html or java -cp Java2Demo.jar demos.Mix.JavaMedia make sure the demo access the media diectory with the audio samples, the bug only hits when the demo can load media/trippygaia1.mid result: # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/sharkValue.cpp:223 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/home/xerxes/icedtea6/openjdk-ecj/hotspot/src/share/vm/shark/sharkValue.cpp:223), pid=29873, tid=2401766288 # Error: assert(is_jarray(),"should be") # # JRE version: 6.0-b16 # Java VM: OpenJDK Shark VM (14.0-b10-product mixed mode linux-i386 ) # An error report file with more information is saved as: # /home/xerxes/24apr/j2sdk-image/bin/hs_err_pid29873.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # Current thread is 2401766288 Dumping core ... Avbruten (SIGABRT) Sources and mediafiles for Java2Demo are obtainable from: http://java.sun.com/products/java-media/2D/samples/ -- 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 Fri Apr 24 06:22:41 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 24 Apr 2009 13:22:41 +0000 Subject: [Bug 324] Shark assert(is_jarray(), "should be") during Java2Demo demos.Mix.JavaMedia Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=324 ------- Comment #1 from xerxes at zafena.se 2009-04-24 13:22 ------- Created an attachment (id=206) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=206&action=view) hs_err_pid29873.log -- 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 xerxes at zafena.se Fri Apr 24 06:35:30 2009 From: xerxes at zafena.se (Xerxes R?nby) Date: Fri, 24 Apr 2009 13:35:30 +0000 Subject: changeset in /hg/icedtea6: 2009-04-24 Xerxes R?nby changeset 03f65b9f0411 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=03f65b9f0411 description: 2009-04-24 Xerxes R?nby * patches/icedtea-jpegclasses.patch (openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java setJPEGEncodeParam): New function. diffstat: 2 files changed, 11 insertions(+), 1 deletion(-) ChangeLog | 6 ++++++ patches/icedtea-jpegclasses.patch | 6 +++++- diffs (36 lines): diff -r 46128f71ec57 -r 03f65b9f0411 ChangeLog --- a/ChangeLog Thu Apr 23 14:35:50 2009 -0400 +++ b/ChangeLog Fri Apr 24 15:37:48 2009 +0200 @@ -1,3 +1,9 @@ 2009-04-23 Deepak Bhole + + * patches/icedtea-jpegclasses.patch + (openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java + setJPEGEncodeParam): New function. + 2009-04-23 Deepak Bhole * rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Handle nested diff -r 46128f71ec57 -r 03f65b9f0411 patches/icedtea-jpegclasses.patch --- a/patches/icedtea-jpegclasses.patch Thu Apr 23 14:35:50 2009 -0400 +++ b/patches/icedtea-jpegclasses.patch Fri Apr 24 15:37:48 2009 +0200 @@ -467,7 +467,7 @@ diff -ruN openjdkold/jdk/src/share/class diff -ruN openjdkold/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java --- openjdkold/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java 1969-12-31 19:00:00.000000000 -0500 +++ openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java 2008-03-31 18:04:57.000000000 -0400 -@@ -0,0 +1,67 @@ +@@ -0,0 +1,71 @@ +/* JPEGImageEncoder.java -- + Copyright (C) 2007 Free Software Foundation, Inc. + @@ -520,6 +520,10 @@ diff -ruN openjdkold/jdk/src/share/class + public JPEGEncodeParam getDefaultJPEGEncodeParam(BufferedImage bi) + { + return null; ++ } ++ ++ public void setJPEGEncodeParam(JPEGEncodeParam p) ++ { + } + + public void encode(BufferedImage bi, JPEGEncodeParam p) From bugzilla-daemon at icedtea.classpath.org Fri Apr 24 06:38:41 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 24 Apr 2009 13:38:41 +0000 Subject: [Bug 325] New: signed applets not requesting confirmation Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=325 Summary: signed applets not requesting confirmation Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: Wizard at live.co.uk I cannot run signed applets, as there is no confirmation dialogue box to allow (or deny) them to run. I've tried clearing the cache and restarting my machine, to no avail. OS: ubuntu-9.04-desktop-amd64 IcedTea: 6b14-1.4.1-0ubuntu7 Browser: Firefox 3.0.9 -- 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 Fri Apr 24 06:56:06 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 24 Apr 2009 13:56:06 +0000 Subject: [Bug 325] signed applets not requesting confirmation Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=325 dbhole at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|dbhole at redhat.com |.org | ------- Comment #1 from dbhole at redhat.com 2009-04-24 13:56 ------- Do you have a URL where this is reproducible? I see you are using an older version of IcedTea, but even back then, it should have still asked for confirmation.. -- 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. You are the assignee for the bug, or are watching the assignee. From gnu_andrew at member.fsf.org Fri Apr 24 08:39:53 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Fri, 24 Apr 2009 16:39:53 +0100 Subject: changeset in /hg/icedtea6: 2009-04-24 Xerxes R?nby References: Message-ID: <17c6771e0904240839h3fcb80e8mb001d3ca8a2d93fb@mail.gmail.com> 2009/4/24 Xerxes R?nby : > changeset 03f65b9f0411 in /hg/icedtea6 > details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=03f65b9f0411 > description: > ? ? ? ?2009-04-24 Xerxes R?nby > > ? ? ? ? ? ? ? ?* patches/icedtea-jpegclasses.patch > ? ? ? ? ? ? ? ?(openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java > ? ? ? ? ? ? ? ?setJPEGEncodeParam): New function. > > diffstat: > > 2 files changed, 11 insertions(+), 1 deletion(-) > ChangeLog ? ? ? ? ? ? ? ? ? ? ? ? | ? ?6 ++++++ > patches/icedtea-jpegclasses.patch | ? ?6 +++++- > > diffs (36 lines): > > diff -r 46128f71ec57 -r 03f65b9f0411 ChangeLog > --- a/ChangeLog Thu Apr 23 14:35:50 2009 -0400 > +++ b/ChangeLog Fri Apr 24 15:37:48 2009 +0200 > @@ -1,3 +1,9 @@ 2009-04-23 Deepak Bhole +2009-04-24 Xerxes R?nby > + > + ? ? ? ?* patches/icedtea-jpegclasses.patch > + ? ? ? ?(openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java > + ? ? ? ?setJPEGEncodeParam): New function. > + > ?2009-04-23 Deepak Bhole > > ? ? ? ?* rt/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Handle nested > diff -r 46128f71ec57 -r 03f65b9f0411 patches/icedtea-jpegclasses.patch > --- a/patches/icedtea-jpegclasses.patch Thu Apr 23 14:35:50 2009 -0400 > +++ b/patches/icedtea-jpegclasses.patch Fri Apr 24 15:37:48 2009 +0200 > @@ -467,7 +467,7 @@ diff -ruN openjdkold/jdk/src/share/class > ?diff -ruN openjdkold/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java > ?--- openjdkold/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java ? ?1969-12-31 19:00:00.000000000 -0500 > ?+++ openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java ? ? ? 2008-03-31 18:04:57.000000000 -0400 > -@@ -0,0 +1,67 @@ > +@@ -0,0 +1,71 @@ > ?+/* JPEGImageEncoder.java -- > ?+ ? Copyright (C) 2007 Free Software Foundation, Inc. > ?+ > @@ -520,6 +520,10 @@ diff -ruN openjdkold/jdk/src/share/class > ?+ ? ? ?public JPEGEncodeParam getDefaultJPEGEncodeParam(BufferedImage bi) > ?+ ? ? ?{ > ?+ ? ? ? ? ? ? ?return null; > ++ ? ? ?} > ++ > ++ ? ? ?public void setJPEGEncodeParam(JPEGEncodeParam p) > ++ ? ? ?{ > ?+ ? ? ?} > ?+ > ?+ ? ? ?public void encode(BufferedImage bi, JPEGEncodeParam p) > We shouldn't be adding such stubs; that's just asking for more trouble. The program in question should be updated to use javax.imageio. -- 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 redhat.com Fri Apr 24 11:08:49 2009 From: langel at redhat.com (Lillian Angel) Date: Fri, 24 Apr 2009 18:08:49 +0000 Subject: changeset in /hg/icedtea6: 2009-04-24 Lillian Angel changeset ac377bd5008f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ac377bd5008f description: 2009-04-24 Lillian Angel Fixes #497191 * Makefile.am (NETBEANS_PROFILER_MD5SUM): Updated. (stamps/nbplatform.stamp): Fixed to build on amd64 properly. diffstat: 2 files changed, 16 insertions(+), 7 deletions(-) ChangeLog | 13 ++++++++++--- Makefile.am | 10 ++++++---- diffs (58 lines): diff -r 03f65b9f0411 -r ac377bd5008f ChangeLog --- a/ChangeLog Fri Apr 24 15:37:48 2009 +0200 +++ b/ChangeLog Fri Apr 24 14:09:22 2009 -0400 @@ -1,8 +1,15 @@ 2009-04-24 Xerxes R??nby + + Fixes #497191 + * Makefile.am + (NETBEANS_PROFILER_MD5SUM): Updated. + (stamps/nbplatform.stamp): Fixed to build on amd64 properly. + 2009-04-24 Xerxes R??nby - * patches/icedtea-jpegclasses.patch - (openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java - setJPEGEncodeParam): New function. + * patches/icedtea-jpegclasses.patch + (openjdk/jdk/src/share/classes/com/sun/image/codec/jpeg/JPEGImageEncoder.java + setJPEGEncodeParam): New function. 2009-04-23 Deepak Bhole diff -r 03f65b9f0411 -r ac377bd5008f Makefile.am --- a/Makefile.am Fri Apr 24 15:37:48 2009 +0200 +++ b/Makefile.am Fri Apr 24 14:09:22 2009 -0400 @@ -5,7 +5,7 @@ CACAO_VERSION = 0.99.3 CACAO_VERSION = 0.99.3 CACAO_MD5SUM = 80de3ad344c1a20c086ec5f1390bd1b8 -NETBEANS_PROFILER_MD5SUM = 786ab31817cbd902a7211cd6a6161750 +NETBEANS_PROFILER_MD5SUM = a6756a62291ebea5c0e2431389b31380 VISUALVM_MD5SUM = a289739f4a5bcdb9a2c642cfcc1e83fe if ENABLE_GCJWEBPLUGIN @@ -1821,18 +1821,20 @@ if WITH_VISUALVM if WITH_VISUALVM cd netbeans ; \ rm nbbuild/external/binaries-list ; \ - mkdir -p lib.profiler/release/lib/deployed/jdk15/linux ; \ - mkdir -p lib.profiler/release/lib/deployed/jdk16/linux ; \ mkdir -p ./nbbuild/netbeans_visualvm/ ; \ ln -s $(SYSTEM_NETBEANS_DIR)/platform9/ ./nbbuild/netbeans_visualvm/platform9 ; \ ln -s $(SYSTEM_NETBEANS_DIR)/apisupport1/ ./nbbuild/netbeans_visualvm/apisupport1 ; \ ln -s $(SYSTEM_NETBEANS_DIR)/harness/ ./nbbuild/netbeans_visualvm/harness ; \ - cd lib.profiler/native/build ; \ if ! (uname -a | grep x86_64) ; then \ + mkdir -p lib.profiler/release/lib/deployed/jdk15/linux ; \ + mkdir -p lib.profiler/release/lib/deployed/jdk16/linux ; \ buildscript=./buildnative-linux-15.sh ; \ else \ + mkdir -p lib.profiler/release/lib/deployed/jdk15/linux-amd64 ; \ + mkdir -p lib.profiler/release/lib/deployed/jdk16/linux-amd64 ; \ buildscript=./buildnative-linux64-15.sh ; \ fi ; \ + cd lib.profiler/native/build ; \ JAVA_HOME_15=$(ICEDTEA_HOME) JAVA_HOME_16=$(ICEDTEA_HOME) \ $$buildscript ; \ cd ../../.. ; \ From reddy_8026 at yahoo.com Sat Apr 25 07:46:48 2009 From: reddy_8026 at yahoo.com (pradeep reddy) Date: Sat, 25 Apr 2009 20:16:48 +0530 (IST) Subject: IcedTea Support on MIPS Message-ID: <972119.13749.qm@web94804.mail.in2.yahoo.com> Hello, Has anyone successfully built IcedTea for MIPS arch and tested the fucntionality? ? -Thanks and Regards, Reddy From Chandigarh to Chennai - find friends all over India. Go to http://in.promos.yahoo.com/groups/citygroups/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090425/c7096003/attachment.html From gbenson at redhat.com Mon Apr 27 02:38:25 2009 From: gbenson at redhat.com (Gary Benson) Date: Mon, 27 Apr 2009 09:38:25 +0000 Subject: changeset in /hg/icedtea6: 2009-04-27 Gary Benson changeset db61663b8232 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=db61663b8232 description: 2009-04-27 Gary Benson * ports/hotspot/src/share/vm/shark/sharkState.hpp (SharkState::SharkState): Add explicit block argument. (SharkState::copy): Pass block to constructor. * ports/hotspot/src/share/vm/shark/sharkState.cpp (SharkState::SharkState): Add explicit block argument. * ports/hotspot/src/share/vm/shark/sharkBlock.cpp (SharkBlock::initial_current_state): Pass block to SharkState constructor. diffstat: 4 files changed, 16 insertions(+), 5 deletions(-) ChangeLog | 11 +++++++++++ ports/hotspot/src/share/vm/shark/sharkBlock.cpp | 2 +- ports/hotspot/src/share/vm/shark/sharkState.cpp | 4 ++-- ports/hotspot/src/share/vm/shark/sharkState.hpp | 4 ++-- diffs (65 lines): diff -r ac377bd5008f -r db61663b8232 ChangeLog --- a/ChangeLog Fri Apr 24 14:09:22 2009 -0400 +++ b/ChangeLog Mon Apr 27 05:35:03 2009 -0400 @@ -1,3 +1,14 @@ 2009-04-24 Lillian Angel + + * ports/hotspot/src/share/vm/shark/sharkState.hpp + (SharkState::SharkState): Add explicit block argument. + (SharkState::copy): Pass block to constructor. + * ports/hotspot/src/share/vm/shark/sharkState.cpp + (SharkState::SharkState): Add explicit block argument. + * ports/hotspot/src/share/vm/shark/sharkBlock.cpp + (SharkBlock::initial_current_state): Pass block to + SharkState constructor. + 2009-04-24 Lillian Angel Fixes #497191 diff -r ac377bd5008f -r db61663b8232 ports/hotspot/src/share/vm/shark/sharkBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Fri Apr 24 14:09:22 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Mon Apr 27 05:35:03 2009 -0400 @@ -853,7 +853,7 @@ void SharkBlock::parse_bytecode(int star SharkState* SharkBlock::initial_current_state() { - return new SharkState(entry_state()); + return new SharkState(this, entry_state()); } int SharkBlock::switch_default_dest() diff -r ac377bd5008f -r db61663b8232 ports/hotspot/src/share/vm/shark/sharkState.cpp --- a/ports/hotspot/src/share/vm/shark/sharkState.cpp Fri Apr 24 14:09:22 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkState.cpp Mon Apr 27 05:35:03 2009 -0400 @@ -38,8 +38,8 @@ SharkState::SharkState(SharkBlock* bl initialize(NULL); } -SharkState::SharkState(const SharkState* state) - : _block(state->block()), +SharkState::SharkState(SharkBlock* block, const SharkState* state) + : _block(block), _function(state->function()), _method(state->method()) { diff -r ac377bd5008f -r db61663b8232 ports/hotspot/src/share/vm/shark/sharkState.hpp --- a/ports/hotspot/src/share/vm/shark/sharkState.hpp Fri Apr 24 14:09:22 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkState.hpp Mon Apr 27 05:35:03 2009 -0400 @@ -32,7 +32,7 @@ class SharkState : public ResourceObj { SharkState(SharkBlock* block, SharkFunction* function = NULL, llvm::Value* method = NULL); - SharkState(const SharkState* state); + SharkState(SharkBlock* block, const SharkState* state); private: void initialize(const SharkState* state); @@ -137,7 +137,7 @@ class SharkState : public ResourceObj { public: SharkState* copy() const { - return new SharkState(this); + return new SharkState(block(), this); } void merge(SharkState* other, llvm::BasicBlock* other_block, From gbenson at redhat.com Mon Apr 27 02:48:43 2009 From: gbenson at redhat.com (Gary Benson) Date: Mon, 27 Apr 2009 10:48:43 +0100 Subject: Shark bugfix Message-ID: <20090427094843.GA3196@redhat.com> Hi all, This patch fixes a bug in Shark where the blocks associated with states were not the same as the blocks the states were associated with. I can't figure out how it worked like this, but t wasn't causing any problems, just confusing me, so I fixed it. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r ac377bd5008f -r db61663b8232 ChangeLog --- a/ChangeLog Fri Apr 24 14:09:22 2009 -0400 +++ b/ChangeLog Mon Apr 27 05:35:03 2009 -0400 @@ -1,3 +1,14 @@ +2009-04-27 Gary Benson + + * ports/hotspot/src/share/vm/shark/sharkState.hpp + (SharkState::SharkState): Add explicit block argument. + (SharkState::copy): Pass block to constructor. + * ports/hotspot/src/share/vm/shark/sharkState.cpp + (SharkState::SharkState): Add explicit block argument. + * ports/hotspot/src/share/vm/shark/sharkBlock.cpp + (SharkBlock::initial_current_state): Pass block to + SharkState constructor. + 2009-04-24 Lillian Angel Fixes #497191 diff -r ac377bd5008f -r db61663b8232 ports/hotspot/src/share/vm/shark/sharkBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Fri Apr 24 14:09:22 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Mon Apr 27 05:35:03 2009 -0400 @@ -853,7 +853,7 @@ SharkState* SharkBlock::initial_current_state() { - return new SharkState(entry_state()); + return new SharkState(this, entry_state()); } int SharkBlock::switch_default_dest() diff -r ac377bd5008f -r db61663b8232 ports/hotspot/src/share/vm/shark/sharkState.cpp --- a/ports/hotspot/src/share/vm/shark/sharkState.cpp Fri Apr 24 14:09:22 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkState.cpp Mon Apr 27 05:35:03 2009 -0400 @@ -38,8 +38,8 @@ initialize(NULL); } -SharkState::SharkState(const SharkState* state) - : _block(state->block()), +SharkState::SharkState(SharkBlock* block, const SharkState* state) + : _block(block), _function(state->function()), _method(state->method()) { diff -r ac377bd5008f -r db61663b8232 ports/hotspot/src/share/vm/shark/sharkState.hpp --- a/ports/hotspot/src/share/vm/shark/sharkState.hpp Fri Apr 24 14:09:22 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkState.hpp Mon Apr 27 05:35:03 2009 -0400 @@ -32,7 +32,7 @@ SharkState(SharkBlock* block, SharkFunction* function = NULL, llvm::Value* method = NULL); - SharkState(const SharkState* state); + SharkState(SharkBlock* block, const SharkState* state); private: void initialize(const SharkState* state); @@ -137,7 +137,7 @@ public: SharkState* copy() const { - return new SharkState(this); + return new SharkState(block(), this); } void merge(SharkState* other, llvm::BasicBlock* other_block, From xerxes at zafena.se Mon Apr 27 04:00:56 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Mon, 27 Apr 2009 13:00:56 +0200 Subject: Some improvements needed on icedtea Java2D renderers. Message-ID: <49F59068.1030107@zafena.se> Hello, during bug testing of icedtea6 on various embedded and stationary hardware i have stumbled across some rendering issues of java2d when running under icedtea6. Testcase: http://java.sun.com/products/java-media/2D/samples/java2demo/Java2Demo.html Sourcecode available from: http://java.sun.com/products/java-media/2D/samples/java2demo/Java2D.zip The attached picture displays my rendering error findings: 1. When the window are refreshed, the component borders gets redrawn with a mix of soft and sharp borders. 2. The rendering of the black box have been requested to be rendererd using a dotted CAP_ROUND BasicStroke: it should be dotted! BasicStroke dotted = new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 0, new float[]{0,6,0,6}, 0); g2.setStroke(dotted); g2.drawRect(3,3,w-6,h-6); 3. The six dotted lines should start with displaying a fill instead of a gap especially since phase are set to 0.0f. float j = 1.1f; for (int i = 0; i < bs.length; i++, j += 1.0f) { float dash[] = { j }; BasicStroke b = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f); g2.setStroke(b); g2.drawLine(20, y, w-20, y); 4. The panel are not resized properly to fit the slider component. 5. and 6. The last two issues are related. the specified joinType are not applyed to lines that gets inserted using closePath. public void drawDemo(int w, int h, Graphics2D g2) { BasicStroke bs = new BasicStroke(bswidth, BasicStroke.CAP_BUTT, joinType); GeneralPath p = new GeneralPath(); p.moveTo(- w / 4.0f, - h / 12.0f); p.lineTo(+ w / 4.0f, - h / 12.0f); p.lineTo(- w / 6.0f, + h / 4.0f); p.lineTo(+ 0.0f, - h / 4.0f); p.lineTo(+ w / 6.0f, + h / 4.0f); p.closePath(); // <----- issue 6: this should have create a correct join. instead a round join are allways used. p.closePath(); // <----- issue 5: this should have create a correct join. the rendering of the start line should // have been updated when the second closepath was instructed. g2.translate(w/2, h/2); g2.setColor(Color.black); g2.draw(bs.createStrokedShape(p)); } The second attached picture without pink markings displays how the testcase looks using Sun's properitary java2d for reference. Cheers. Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: icedtea6_Java2Demo.png Type: image/png Size: 73247 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090427/cb447eb2/icedtea6_Java2Demo.png -------------- next part -------------- A non-text attachment was scrubbed... Name: Sun6_Java2Demo.png Type: image/png Size: 71944 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090427/cb447eb2/Sun6_Java2Demo.png From gbenson at redhat.com Mon Apr 27 04:16:28 2009 From: gbenson at redhat.com (Gary Benson) Date: Mon, 27 Apr 2009 11:16:28 +0000 Subject: changeset in /hg/icedtea6: 2009-04-27 Gary Benson changeset 010cb02d0958 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=010cb02d0958 description: 2009-04-27 Gary Benson * ports/hotspot/src/share/vm/shark/sharkBlock.hpp (SharkBlock::has_trap): New method. (SharkBlock::trap_request): Likewise. (SharkBlock::trap_bci): Likewise. (SharkBlock::do_trap): Likewise. * ports/hotspot/src/share/vm/shark/sharkBlock.cpp (SharkBlock::has_trap): New method. (SharkBlock::trap_request): Likewise. (SharkBlock::trap_bci): Likewise. (SharkBlock::do_trap): Likewise. (SharkBlock::parse_bytecode): Handle traps. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp (SharkTopLevelBlock::_has_trap): New field. (SharkTopLevelBlock::_trap_bci): Likewise. (SharkTopLevelBlock::has-trap): Updated. (SharkTopLevelBlock::trap_request): Likewise. (SharkTopLevelBlock::set_trap): New method. (SharkTopLevelBlock::trap_bci): Likewise. (SharkTopLevelBlock::do_trap): Likewise. (SharkTopLevelBlock::scan_for_traps): New prototype. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp (SharkTopLevelBlock::scan_for_traps): Store trap_bci along with trap_request, and don't assume that traps found by typeflow are the first traps in the block. (SharkTopLevelBlock::enter): Scan for traps, and always enter exception sucessors. (SharkTopLevelBlock::emit_IR): Remove old trap handling. (SharkTopLevelBlock::do_trap): New method. diffstat: 5 files changed, 141 insertions(+), 56 deletions(-) ChangeLog | 31 +++++ ports/hotspot/src/share/vm/shark/sharkBlock.cpp | 25 ++++ ports/hotspot/src/share/vm/shark/sharkBlock.hpp | 7 + ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 86 ++++++++------- ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp | 48 +++++--- diffs (325 lines): diff -r db61663b8232 -r 010cb02d0958 ChangeLog --- a/ChangeLog Mon Apr 27 05:35:03 2009 -0400 +++ b/ChangeLog Mon Apr 27 07:13:07 2009 -0400 @@ -1,3 +1,34 @@ 2009-04-27 Gary Benson + + * ports/hotspot/src/share/vm/shark/sharkBlock.hpp + (SharkBlock::has_trap): New method. + (SharkBlock::trap_request): Likewise. + (SharkBlock::trap_bci): Likewise. + (SharkBlock::do_trap): Likewise. + * ports/hotspot/src/share/vm/shark/sharkBlock.cpp + (SharkBlock::has_trap): New method. + (SharkBlock::trap_request): Likewise. + (SharkBlock::trap_bci): Likewise. + (SharkBlock::do_trap): Likewise. + (SharkBlock::parse_bytecode): Handle traps. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp + (SharkTopLevelBlock::_has_trap): New field. + (SharkTopLevelBlock::_trap_bci): Likewise. + (SharkTopLevelBlock::has-trap): Updated. + (SharkTopLevelBlock::trap_request): Likewise. + (SharkTopLevelBlock::set_trap): New method. + (SharkTopLevelBlock::trap_bci): Likewise. + (SharkTopLevelBlock::do_trap): Likewise. + (SharkTopLevelBlock::scan_for_traps): New prototype. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::scan_for_traps): Store trap_bci along + with trap_request, and don't assume that traps found by + typeflow are the first traps in the block. + (SharkTopLevelBlock::enter): Scan for traps, and always + enter exception sucessors. + (SharkTopLevelBlock::emit_IR): Remove old trap handling. + (SharkTopLevelBlock::do_trap): New method. + 2009-04-27 Gary Benson * ports/hotspot/src/share/vm/shark/sharkState.hpp diff -r db61663b8232 -r 010cb02d0958 ports/hotspot/src/share/vm/shark/sharkBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Mon Apr 27 05:35:03 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Mon Apr 27 07:13:07 2009 -0400 @@ -46,6 +46,11 @@ void SharkBlock::parse_bytecode(int star if (SharkTraceBytecodes) tty->print_cr("%4d: %s", bci(), Bytecodes::name(bc())); + if (has_trap() && trap_bci() == bci()) { + do_trap(trap_request()); + return; + } + if (UseLoopSafepoints) { // XXX if a lcmp is followed by an if_?? then C2 maybe-inserts // the safepoint before the lcmp rather than before the if. @@ -1138,6 +1143,26 @@ void SharkBlock::add_safepoint() ShouldNotCallThis(); } +bool SharkBlock::has_trap() +{ + return false; +} + +int SharkBlock::trap_request() +{ + ShouldNotCallThis(); +} + +int SharkBlock::trap_bci() +{ + ShouldNotCallThis(); +} + +void SharkBlock::do_trap(int trap_request) +{ + ShouldNotCallThis(); +} + Value* SharkBlock::lookup_for_ldc() { ShouldNotCallThis(); diff -r db61663b8232 -r 010cb02d0958 ports/hotspot/src/share/vm/shark/sharkBlock.hpp --- a/ports/hotspot/src/share/vm/shark/sharkBlock.hpp Mon Apr 27 05:35:03 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBlock.hpp Mon Apr 27 07:13:07 2009 -0400 @@ -233,6 +233,13 @@ class SharkBlock : public ResourceObj { protected: virtual void add_safepoint(); + // Traps + protected: + virtual bool has_trap(); + virtual int trap_request(); + virtual int trap_bci(); + virtual void do_trap(int trap_request); + // ldc* private: void do_ldc() diff -r db61663b8232 -r 010cb02d0958 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Mon Apr 27 05:35:03 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Mon Apr 27 07:13:07 2009 -0400 @@ -28,19 +28,14 @@ using namespace llvm; -int SharkTopLevelBlock::scan_for_traps() -{ - // If typeflow got one then we're already done - if (ciblock()->has_trap()) { - return Deoptimization::make_trap_request( - Deoptimization::Reason_unloaded, - Deoptimization::Action_reinterpret, - ciblock()->trap_index()); - } - - // Scan the bytecode +void SharkTopLevelBlock::scan_for_traps() +{ + // If typeflow found a trap then don't scan past it + int limit_bci = ciblock()->has_trap() ? ciblock()->trap_bci() : limit(); + + // Scan the bytecode for traps that are always hit iter()->reset_to_bci(start()); - while (iter()->next_bci() < limit()) { + while (iter()->next_bci() < limit_bci) { iter()->next(); ciField *field; @@ -62,9 +57,11 @@ int SharkTopLevelBlock::scan_for_traps() // If the bytecode does not match the field then bail out to // the interpreter to throw an IncompatibleClassChangeError if (is_field == field->is_static()) { - return Deoptimization::make_trap_request( - Deoptimization::Reason_unhandled, - Deoptimization::Action_none); + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_unhandled, + Deoptimization::Action_none), bci()); + return; } // If this is a getfield or putfield then there won't be a @@ -96,9 +93,11 @@ int SharkTopLevelBlock::scan_for_traps() // set up otherwise. if (bc() == Bytecodes::_invokevirtual && !method->is_final_method()) { if (!method->holder()->is_linked()) { - return Deoptimization::make_trap_request( - Deoptimization::Reason_uninitialized, - Deoptimization::Action_reinterpret); + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret), bci()); + return; } break; } @@ -112,13 +111,24 @@ int SharkTopLevelBlock::scan_for_traps() if (index != -1) { if (!target()->holder()->is_cache_entry_resolved( Bytes::swap_u2(index), bc())) { - return Deoptimization::make_trap_request( - Deoptimization::Reason_uninitialized, - Deoptimization::Action_reinterpret); + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret), bci()); + return; } } } - return TRAP_NO_TRAPS; + + // Trap if typeflow trapped (and we didn't before) + if (ciblock()->has_trap()) { + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_unloaded, + Deoptimization::Action_reinterpret, + ciblock()->trap_index()), ciblock()->trap_bci()); + return; + } } SharkState* SharkTopLevelBlock::entry_state() @@ -163,13 +173,14 @@ void SharkTopLevelBlock::enter(SharkTopL if (!entered()) { _entered = true; + scan_for_traps(); if (!has_trap()) { for (int i = 0; i < num_successors(); i++) { successor(i)->enter(this, false); } - for (int i = 0; i < num_exceptions(); i++) { - exception(i)->enter(this, true); - } + } + for (int i = 0; i < num_exceptions(); i++) { + exception(i)->enter(this, true); } } } @@ -215,25 +226,12 @@ void SharkTopLevelBlock::emit_IR() { builder()->SetInsertPoint(entry_block()); - // Handle traps - if (has_trap()) { - iter()->force_bci(start()); - - current_state()->decache_for_trap(); - builder()->CreateCall2( - SharkRuntime::uncommon_trap(), - thread(), - LLVMValue::jint_constant(trap_request())); - builder()->CreateRetVoid(); - return; - } - // Parse the bytecode parse_bytecode(start(), limit()); // If this block falls through to the next then it won't have been // terminated by a bytecode and we have to add the branch ourselves - if (falls_through()) + if (falls_through() && !has_trap()) do_branch(ciTypeFlow::FALL_THROUGH); } @@ -478,6 +476,16 @@ void SharkTopLevelBlock::add_safepoint() current_state()->merge(orig_state, orig_block, safepointed_block); } +void SharkTopLevelBlock::do_trap(int trap_request) +{ + current_state()->decache_for_trap(); + builder()->CreateCall2( + SharkRuntime::uncommon_trap(), + thread(), + LLVMValue::jint_constant(trap_request)); + builder()->CreateRetVoid(); +} + void SharkTopLevelBlock::call_register_finalizer(Value *receiver) { BasicBlock *orig_block = builder()->GetInsertBlock(); diff -r db61663b8232 -r 010cb02d0958 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Mon Apr 27 05:35:03 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Mon Apr 27 07:13:07 2009 -0400 @@ -32,8 +32,8 @@ class SharkTopLevelBlock : public SharkB function->thread()), _function(function), _ciblock(ciblock), - _trap_request(TRAP_UNCHECKED), _entered(false), + _has_trap(false), _needs_phis(false), _entry_state(NULL), _entry_block(NULL) {} @@ -106,26 +106,36 @@ class SharkTopLevelBlock : public SharkB // Traps private: - enum { - TRAP_UNCHECKED = 232323, // > any constant pool index - TRAP_NO_TRAPS - }; - int _trap_request; - - public: + bool _has_trap; + int _trap_request; + int _trap_bci; + + void set_trap(int trap_request, int trap_bci) + { + assert(!has_trap(), "shouldn't have"); + _has_trap = true; + _trap_request = trap_request; + _trap_bci = trap_bci; + } + + private: + bool has_trap() + { + return _has_trap; + } int trap_request() { - if (_trap_request == TRAP_UNCHECKED) - _trap_request = scan_for_traps(); + assert(has_trap(), "should have"); return _trap_request; } - bool has_trap() - { - return trap_request() != TRAP_NO_TRAPS; - } - - private: - int scan_for_traps(); + int trap_bci() + { + assert(has_trap(), "should have"); + return _trap_bci; + } + + private: + void scan_for_traps(); // Entry state private: @@ -292,6 +302,10 @@ class SharkTopLevelBlock : public SharkB // Safepoints private: void add_safepoint(); + + // Traps + private: + void do_trap(int trap_request); // Returns private: From gbenson at redhat.com Mon Apr 27 04:22:39 2009 From: gbenson at redhat.com (Gary Benson) Date: Mon, 27 Apr 2009 12:22:39 +0100 Subject: Deoptimization fix for Shark Message-ID: <20090427112239.GB3196@redhat.com> Hi all, Deoptimization in HotSpot is where you assume you can optimize code in a certain way, inserting a runtime check called a trap which will force the method to be recompiled if the assumption failed. Shark's traps were firing early, meaning that sometimes they were firing when they didn't need to and causing methods to be recompiled endlessly. This commit fixes. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r db61663b8232 -r 010cb02d0958 ChangeLog --- a/ChangeLog Mon Apr 27 05:35:03 2009 -0400 +++ b/ChangeLog Mon Apr 27 07:13:07 2009 -0400 @@ -1,3 +1,34 @@ +2009-04-27 Gary Benson + + * ports/hotspot/src/share/vm/shark/sharkBlock.hpp + (SharkBlock::has_trap): New method. + (SharkBlock::trap_request): Likewise. + (SharkBlock::trap_bci): Likewise. + (SharkBlock::do_trap): Likewise. + * ports/hotspot/src/share/vm/shark/sharkBlock.cpp + (SharkBlock::has_trap): New method. + (SharkBlock::trap_request): Likewise. + (SharkBlock::trap_bci): Likewise. + (SharkBlock::do_trap): Likewise. + (SharkBlock::parse_bytecode): Handle traps. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp + (SharkTopLevelBlock::_has_trap): New field. + (SharkTopLevelBlock::_trap_bci): Likewise. + (SharkTopLevelBlock::has-trap): Updated. + (SharkTopLevelBlock::trap_request): Likewise. + (SharkTopLevelBlock::set_trap): New method. + (SharkTopLevelBlock::trap_bci): Likewise. + (SharkTopLevelBlock::do_trap): Likewise. + (SharkTopLevelBlock::scan_for_traps): New prototype. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::scan_for_traps): Store trap_bci along + with trap_request, and don't assume that traps found by + typeflow are the first traps in the block. + (SharkTopLevelBlock::enter): Scan for traps, and always + enter exception sucessors. + (SharkTopLevelBlock::emit_IR): Remove old trap handling. + (SharkTopLevelBlock::do_trap): New method. + 2009-04-27 Gary Benson * ports/hotspot/src/share/vm/shark/sharkState.hpp diff -r db61663b8232 -r 010cb02d0958 ports/hotspot/src/share/vm/shark/sharkBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Mon Apr 27 05:35:03 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Mon Apr 27 07:13:07 2009 -0400 @@ -46,6 +46,11 @@ if (SharkTraceBytecodes) tty->print_cr("%4d: %s", bci(), Bytecodes::name(bc())); + if (has_trap() && trap_bci() == bci()) { + do_trap(trap_request()); + return; + } + if (UseLoopSafepoints) { // XXX if a lcmp is followed by an if_?? then C2 maybe-inserts // the safepoint before the lcmp rather than before the if. @@ -1138,6 +1143,26 @@ ShouldNotCallThis(); } +bool SharkBlock::has_trap() +{ + return false; +} + +int SharkBlock::trap_request() +{ + ShouldNotCallThis(); +} + +int SharkBlock::trap_bci() +{ + ShouldNotCallThis(); +} + +void SharkBlock::do_trap(int trap_request) +{ + ShouldNotCallThis(); +} + Value* SharkBlock::lookup_for_ldc() { ShouldNotCallThis(); diff -r db61663b8232 -r 010cb02d0958 ports/hotspot/src/share/vm/shark/sharkBlock.hpp --- a/ports/hotspot/src/share/vm/shark/sharkBlock.hpp Mon Apr 27 05:35:03 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBlock.hpp Mon Apr 27 07:13:07 2009 -0400 @@ -233,6 +233,13 @@ protected: virtual void add_safepoint(); + // Traps + protected: + virtual bool has_trap(); + virtual int trap_request(); + virtual int trap_bci(); + virtual void do_trap(int trap_request); + // ldc* private: void do_ldc() diff -r db61663b8232 -r 010cb02d0958 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Mon Apr 27 05:35:03 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Mon Apr 27 07:13:07 2009 -0400 @@ -28,19 +28,14 @@ using namespace llvm; -int SharkTopLevelBlock::scan_for_traps() +void SharkTopLevelBlock::scan_for_traps() { - // If typeflow got one then we're already done - if (ciblock()->has_trap()) { - return Deoptimization::make_trap_request( - Deoptimization::Reason_unloaded, - Deoptimization::Action_reinterpret, - ciblock()->trap_index()); - } + // If typeflow found a trap then don't scan past it + int limit_bci = ciblock()->has_trap() ? ciblock()->trap_bci() : limit(); - // Scan the bytecode + // Scan the bytecode for traps that are always hit iter()->reset_to_bci(start()); - while (iter()->next_bci() < limit()) { + while (iter()->next_bci() < limit_bci) { iter()->next(); ciField *field; @@ -62,9 +57,11 @@ // If the bytecode does not match the field then bail out to // the interpreter to throw an IncompatibleClassChangeError if (is_field == field->is_static()) { - return Deoptimization::make_trap_request( - Deoptimization::Reason_unhandled, - Deoptimization::Action_none); + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_unhandled, + Deoptimization::Action_none), bci()); + return; } // If this is a getfield or putfield then there won't be a @@ -96,9 +93,11 @@ // set up otherwise. if (bc() == Bytecodes::_invokevirtual && !method->is_final_method()) { if (!method->holder()->is_linked()) { - return Deoptimization::make_trap_request( - Deoptimization::Reason_uninitialized, - Deoptimization::Action_reinterpret); + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret), bci()); + return; } break; } @@ -112,13 +111,24 @@ if (index != -1) { if (!target()->holder()->is_cache_entry_resolved( Bytes::swap_u2(index), bc())) { - return Deoptimization::make_trap_request( - Deoptimization::Reason_uninitialized, - Deoptimization::Action_reinterpret); + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret), bci()); + return; } } } - return TRAP_NO_TRAPS; + + // Trap if typeflow trapped (and we didn't before) + if (ciblock()->has_trap()) { + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_unloaded, + Deoptimization::Action_reinterpret, + ciblock()->trap_index()), ciblock()->trap_bci()); + return; + } } SharkState* SharkTopLevelBlock::entry_state() @@ -163,13 +173,14 @@ if (!entered()) { _entered = true; + scan_for_traps(); if (!has_trap()) { for (int i = 0; i < num_successors(); i++) { successor(i)->enter(this, false); } - for (int i = 0; i < num_exceptions(); i++) { - exception(i)->enter(this, true); - } + } + for (int i = 0; i < num_exceptions(); i++) { + exception(i)->enter(this, true); } } } @@ -215,25 +226,12 @@ { builder()->SetInsertPoint(entry_block()); - // Handle traps - if (has_trap()) { - iter()->force_bci(start()); - - current_state()->decache_for_trap(); - builder()->CreateCall2( - SharkRuntime::uncommon_trap(), - thread(), - LLVMValue::jint_constant(trap_request())); - builder()->CreateRetVoid(); - return; - } - // Parse the bytecode parse_bytecode(start(), limit()); // If this block falls through to the next then it won't have been // terminated by a bytecode and we have to add the branch ourselves - if (falls_through()) + if (falls_through() && !has_trap()) do_branch(ciTypeFlow::FALL_THROUGH); } @@ -476,6 +474,16 @@ builder()->SetInsertPoint(safepointed); current_state()->merge(orig_state, orig_block, safepointed_block); +} + +void SharkTopLevelBlock::do_trap(int trap_request) +{ + current_state()->decache_for_trap(); + builder()->CreateCall2( + SharkRuntime::uncommon_trap(), + thread(), + LLVMValue::jint_constant(trap_request)); + builder()->CreateRetVoid(); } void SharkTopLevelBlock::call_register_finalizer(Value *receiver) diff -r db61663b8232 -r 010cb02d0958 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Mon Apr 27 05:35:03 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Mon Apr 27 07:13:07 2009 -0400 @@ -32,8 +32,8 @@ function->thread()), _function(function), _ciblock(ciblock), - _trap_request(TRAP_UNCHECKED), _entered(false), + _has_trap(false), _needs_phis(false), _entry_state(NULL), _entry_block(NULL) {} @@ -106,26 +106,36 @@ // Traps private: - enum { - TRAP_UNCHECKED = 232323, // > any constant pool index - TRAP_NO_TRAPS - }; - int _trap_request; + bool _has_trap; + int _trap_request; + int _trap_bci; - public: - int trap_request() + void set_trap(int trap_request, int trap_bci) { - if (_trap_request == TRAP_UNCHECKED) - _trap_request = scan_for_traps(); - return _trap_request; - } - bool has_trap() - { - return trap_request() != TRAP_NO_TRAPS; + assert(!has_trap(), "shouldn't have"); + _has_trap = true; + _trap_request = trap_request; + _trap_bci = trap_bci; } private: - int scan_for_traps(); + bool has_trap() + { + return _has_trap; + } + int trap_request() + { + assert(has_trap(), "should have"); + return _trap_request; + } + int trap_bci() + { + assert(has_trap(), "should have"); + return _trap_bci; + } + + private: + void scan_for_traps(); // Entry state private: @@ -293,6 +303,10 @@ private: void add_safepoint(); + // Traps + private: + void do_trap(int trap_request); + // Returns private: void call_register_finalizer(llvm::Value* receiver); From omajid at redhat.com Mon Apr 27 07:44:11 2009 From: omajid at redhat.com (Omair Majid) Date: Mon, 27 Apr 2009 10:44:11 -0400 Subject: Some improvements needed on icedtea Java2D renderers. In-Reply-To: <49F59068.1030107@zafena.se> References: <49F59068.1030107@zafena.se> Message-ID: <49F5C4BB.40901@redhat.com> Hi Xerxes, Xerxes R?nby wrote: > Hello, during bug testing of icedtea6 on various embedded and stationary > hardware i have stumbled across some rendering issues of java2d when > running under icedtea6. What version of icedtea6 are you using? > > Testcase: > http://java.sun.com/products/java-media/2D/samples/java2demo/Java2Demo.html > > Sourcecode available from: > http://java.sun.com/products/java-media/2D/samples/java2demo/Java2D.zip > > The attached picture displays my rendering error findings: > > 1. When the window are refreshed, the component borders gets redrawn > with a mix of soft and sharp borders. > > 2. The rendering of the black box have been requested to be rendererd > using a dotted CAP_ROUND BasicStroke: it should be dotted! > BasicStroke dotted = new BasicStroke(3, BasicStroke.CAP_ROUND, > BasicStroke.JOIN_ROUND, 0, new float[]{0,6,0,6}, 0); > g2.setStroke(dotted); > g2.drawRect(3,3,w-6,h-6); This appears to be one of the issues pointed out in icedtea bug 197[1]. Java2d was starting the drawing process by considering the first element of the dash array to be length of the space rather than length of the dash. It was fixed in rev 0641929711bf [2]. Unfortunately, this fix didnt make it into icedtea6-1.4.1. The other issue is the difference in how a length of 0 is treated by the jdk. The comment in icedtea6/openjdk/jdk/src/share/classes/sun/java2d/pisces/Dasher.java line 34 points out the issue: * *

Issues: in J2Se, a zero length dash segment as drawn as a very * short dash, whereas Pisces does not draw anything. The PostScript * semantics are unclear. * So the above code in JSE would draw a dashed border but icedtea6 would draw a blank border. "new float[]{0.01,6,0.01,6}" should work. > > 3. The six dotted lines should start with displaying a fill instead of a > gap especially since phase are set to 0.0f. > float j = 1.1f; > for (int i = 0; i < bs.length; i++, j += 1.0f) { > float dash[] = { j }; > BasicStroke b = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, > BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f); > g2.setStroke(b); > g2.drawLine(20, y, w-20, y); > Please see the comments above. The first element of the dash array is taken as the space length rather than the dash length. > 4. The panel are not resized properly to fit the slider component. Looks like the components above are taking up too much vertical space. This looks like bug 255 [3]. I have not been able to reproduce this locally. Any help reproducing this is appreciated. > > 5. and 6. The last two issues are related. the specified joinType are > not applyed to lines that gets inserted using closePath. > public void drawDemo(int w, int h, Graphics2D g2) { > BasicStroke bs = new BasicStroke(bswidth, > BasicStroke.CAP_BUTT, joinType); > GeneralPath p = new GeneralPath(); > p.moveTo(- w / 4.0f, - h / 12.0f); > p.lineTo(+ w / 4.0f, - h / 12.0f); > p.lineTo(- w / 6.0f, + h / 4.0f); > p.lineTo(+ 0.0f, - h / 4.0f); > p.lineTo(+ w / 6.0f, + h / 4.0f); > p.closePath(); // > <----- issue 6: this should have create a correct join. instead a round > join are allways used. > p.closePath(); // > <----- issue 5: this should have create a correct join. the rendering > of the start line should > > // have been updated when the second closepath was > instructed. > g2.translate(w/2, h/2); > g2.setColor(Color.black); > g2.draw(bs.createStrokedShape(p)); > } > > The second attached picture without pink markings displays how the > testcase looks using Sun's properitary java2d for reference. > > Cheers. > Xerxes > Cheers, Omair [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=197 [2] http://icedtea.classpath.org/hg/icedtea6/rev/0641929711bf [3] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=255 From dbhole at redhat.com Mon Apr 27 08:13:02 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 27 Apr 2009 15:13:02 +0000 Subject: changeset in /hg/icedtea6: - Unescape " (rhbz: 483095) Message-ID: changeset 9b0b945113de in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=9b0b945113de description: - Unescape " (rhbz: 483095) - Use custom authenticator so that javaws can handle unknown ssl certs (rhbz: 480075) diffstat: 3 files changed, 47 insertions(+), 17 deletions(-) ChangeLog | 6 ++ plugin/icedtea/sun/applet/PluginAppletViewer.java | 9 --- rt/net/sourceforge/jnlp/runtime/Boot.java | 49 ++++++++++++++++----- diffs (112 lines): diff -r 010cb02d0958 -r 9b0b945113de ChangeLog --- a/ChangeLog Mon Apr 27 07:13:07 2009 -0400 +++ b/ChangeLog Mon Apr 27 11:15:01 2009 -0400 @@ -1,3 +1,9 @@ 2009-04-27 Gary Benson + + * plugin/icedtea/sun/applet/PluginAppletViewer.java: Unescape " + * rt/net/sourceforge/jnlp/runtime/Boot.java: Use custom authenticator for + javaws, so that it can handle SSL sites correctly + 2009-04-27 Gary Benson * ports/hotspot/src/share/vm/shark/sharkBlock.hpp diff -r 010cb02d0958 -r 9b0b945113de plugin/icedtea/sun/applet/PluginAppletViewer.java --- a/plugin/icedtea/sun/applet/PluginAppletViewer.java Mon Apr 27 07:13:07 2009 -0400 +++ b/plugin/icedtea/sun/applet/PluginAppletViewer.java Mon Apr 27 11:15:01 2009 -0400 @@ -1635,12 +1635,14 @@ import com.sun.jndi.toolkit.url.UrlUtil; att = att.replace("&", "&"); att = att.replace(" ", "\n"); att = att.replace(" ", "\r"); + att = att.replace(""", "\""); val = val.replace(">", ">"); val = val.replace("<", "<"); val = val.replace("&", "&"); val = val.replace(" ", "\n"); val = val.replace(" ", "\r"); + val = val.replace(""", "\""); PluginDebug.debug("PUT " + att + " = " + val); atts.put(att.toLowerCase(), val); } else { @@ -1720,13 +1722,6 @@ import com.sun.jndi.toolkit.url.UrlUtil; if (atts.get("java_type") != null) { atts.put("type", ((String) atts.get("java_type"))); } - - // The attribute codebase isn't what - // we want when not dealing with jars. If its - // defined, remove it in that case. - if(atts.get("archive") == null && atts.get("codebase") != null) { - atts.remove("codebase"); - } if (atts.get("width") == null || !isInt(atts.get("width"))) { atts.put("width", "1000"); diff -r 010cb02d0958 -r 9b0b945113de rt/net/sourceforge/jnlp/runtime/Boot.java --- a/rt/net/sourceforge/jnlp/runtime/Boot.java Mon Apr 27 07:13:07 2009 -0400 +++ b/rt/net/sourceforge/jnlp/runtime/Boot.java Mon Apr 27 11:15:01 2009 -0400 @@ -17,17 +17,32 @@ package net.sourceforge.jnlp.runtime; -import java.util.*; -import java.io.*; -import java.net.*; -import java.security.*; - -import net.sourceforge.jnlp.*; -import net.sourceforge.jnlp.cache.*; -import net.sourceforge.jnlp.runtime.*; +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.ArrayList; +import java.util.List; + +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; + +import net.sourceforge.jnlp.AppletDesc; +import net.sourceforge.jnlp.ApplicationDesc; +import net.sourceforge.jnlp.JNLPFile; +import net.sourceforge.jnlp.LaunchException; +import net.sourceforge.jnlp.Launcher; +import net.sourceforge.jnlp.ParseException; +import net.sourceforge.jnlp.PropertyDesc; +import net.sourceforge.jnlp.ResourcesDesc; +import net.sourceforge.jnlp.cache.UpdatePolicy; +import net.sourceforge.jnlp.security.VariableX509TrustManager; import net.sourceforge.jnlp.security.viewer.CertificateViewer; -import net.sourceforge.jnlp.services.*; -import net.sourceforge.jnlp.util.*; +import net.sourceforge.jnlp.services.ServiceUtil; /** * This is the main entry point for the JNLP client. The main @@ -153,6 +168,20 @@ public final class Boot implements Privi if (null != getOption("-noupdate")) JNLPRuntime.setDefaultUpdatePolicy(UpdatePolicy.NEVER); + + // wire in custom authenticator + try { + SSLSocketFactory sslSocketFactory; + SSLContext context = SSLContext.getInstance("SSL"); + TrustManager[] trust = new TrustManager[] { VariableX509TrustManager.getInstance() }; + context.init(null, trust, null); + sslSocketFactory = context.getSocketFactory(); + + HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory); + } catch (Exception e) { + System.err.println("Unable to set SSLSocketfactory (may _prevent_ access to sites that should be trusted)! Continuing anyway..."); + e.printStackTrace(); + } // do in a privileged action to clear the security context of // the Boot13 class, which doesn't have any privileges in From bugzilla-daemon at icedtea.classpath.org Mon Apr 27 20:28:04 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 28 Apr 2009 03:28:04 +0000 Subject: [Bug 327] New: SIGSEGV (0xb) at pc=0xa5fd779c, pid=6255, tid=2833329040 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=327 Summary: SIGSEGV (0xb) at pc=0xa5fd779c, pid=6255, tid=2833329040 Product: IcedTea Version: unspecified Platform: Other OS/Version: Linux Status: NEW Severity: major Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: skykiss.forever at yahoo.com Vuze-4.2.0.3-crash it i can not even start the program. -- 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 Mon Apr 27 20:30:33 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 28 Apr 2009 03:30:33 +0000 Subject: [Bug 327] SIGSEGV (0xb) at pc=0xa5fd779c, pid=6255, tid=2833329040 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=327 ------- Comment #1 from skykiss.forever at yahoo.com 2009-04-28 03:30 ------- Created an attachment (id=207) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=207&action=view) Azureus Vuze crash it down at start -- 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 redhat.com Tue Apr 28 02:53:26 2009 From: gbenson at redhat.com (Gary Benson) Date: Tue, 28 Apr 2009 09:53:26 +0000 Subject: changeset in /hg/icedtea6: 2009-04-28 Gary Benson changeset 6123e2454ad9 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=6123e2454ad9 description: 2009-04-28 Gary Benson * patches/hotspot/default/icedtea-shark.patch (ciInstanceKlass::constant_pool_tag_at): New method. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp (SharkTopLevelBlock::do_full_instance_check): New method. (SharkTopLevelBlock::do_trapping_instance_check): Likewise. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp (SharkTopLevelBlock::do_instance_check): Split. (SharkTopLevelBlock::do_full_instance_check): New method. (SharkTopLevelBlock::do_trapping_instance_check): Likewise. * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp (SharkRuntime::_resolve_klass): Removed. (SharkRuntime::resolve_klass): Likewise. (SharkRuntime::resolve_klass_C): Likewise. * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp (SharkRuntime::_resolve_klass): Likewise. (SharkRuntime::resolve_klass_C): Likewise. (SharkRuntime::initialize): Removed _resolve_klass init. diffstat: 6 files changed, 100 insertions(+), 86 deletions(-) ChangeLog | 20 ++ patches/hotspot/default/icedtea-shark.patch | 42 +++--- ports/hotspot/src/share/vm/shark/sharkRuntime.cpp | 12 - ports/hotspot/src/share/vm/shark/sharkRuntime.hpp | 6 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 103 +++++++-------- ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp | 3 diffs (317 lines): diff -r 9b0b945113de -r 6123e2454ad9 ChangeLog --- a/ChangeLog Mon Apr 27 11:15:01 2009 -0400 +++ b/ChangeLog Tue Apr 28 05:50:02 2009 -0400 @@ -1,3 +1,23 @@ 2009-04-27 Deepak Bhole + + * patches/hotspot/default/icedtea-shark.patch + (ciInstanceKlass::constant_pool_tag_at): New method. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp + (SharkTopLevelBlock::do_full_instance_check): New method. + (SharkTopLevelBlock::do_trapping_instance_check): Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::do_instance_check): Split. + (SharkTopLevelBlock::do_full_instance_check): New method. + (SharkTopLevelBlock::do_trapping_instance_check): Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp + (SharkRuntime::_resolve_klass): Removed. + (SharkRuntime::resolve_klass): Likewise. + (SharkRuntime::resolve_klass_C): Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp + (SharkRuntime::_resolve_klass): Likewise. + (SharkRuntime::resolve_klass_C): Likewise. + (SharkRuntime::initialize): Removed _resolve_klass init. + 2009-04-27 Deepak Bhole * plugin/icedtea/sun/applet/PluginAppletViewer.java: Unescape " diff -r 9b0b945113de -r 6123e2454ad9 patches/hotspot/default/icedtea-shark.patch --- a/patches/hotspot/default/icedtea-shark.patch Mon Apr 27 11:15:01 2009 -0400 +++ b/patches/hotspot/default/icedtea-shark.patch Tue Apr 28 05:50:02 2009 -0400 @@ -363,28 +363,24 @@ } // ------------------------------------------------------------------ -diff -r 5297ff20101d openjdk-ecj/hotspot/src/share/vm/ci/ciInstanceKlass.hpp ---- openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp Mon Dec 15 15:32:37 2008 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp Thu Mar 05 11:48:56 2009 +0000 -@@ -198,4 +198,9 @@ - // What kind of ciObject is this? - bool is_instance_klass() { return true; } - bool is_java_klass() { return true; } -+ -+#ifdef SHARK -+ // Is this entry in the constant pool cache resolved? -+ bool is_cache_entry_resolved(int index, Bytecodes::Code opcode); -+#endif // SHARK - }; diff -r 5297ff20101d openjdk-ecj/hotspot/src/share/vm/ci/ciInstanceKlass.cpp --- openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp Mon Dec 15 15:32:37 2008 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp Thu Mar 05 11:48:56 2009 +0000 -@@ -548,3 +548,14 @@ ++++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp Tue Apr 21 09:47:27 2009 +0100 +@@ -548,3 +548,23 @@ } return impl; } + +#ifdef SHARK ++// ------------------------------------------------------------------ ++// ciInstanceKlass::constant_pool_tag_at ++// ++// What is in this constant pool slot? ++constantTag ciInstanceKlass::constant_pool_tag_at(int index) { ++ VM_ENTRY_MARK; ++ return get_instanceKlass()->constants()->tag_at(index); ++} ++ +// ------------------------------------------------------------------ +// ciInstanceKlass::is_cache_entry_resolved +// @@ -394,3 +390,19 @@ diff -r 5297ff20101d openjdk-ecj/hotspot + return get_instanceKlass()->constants()->cache()->entry_at(index)->is_resolved(opcode); +} +#endif // SHARK +diff -r 5297ff20101d openjdk-ecj/hotspot/src/share/vm/ci/ciInstanceKlass.hpp +--- openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp Mon Dec 15 15:32:37 2008 +0000 ++++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp Tue Apr 21 09:47:27 2009 +0100 +@@ -198,4 +198,12 @@ + // What kind of ciObject is this? + bool is_instance_klass() { return true; } + bool is_java_klass() { return true; } ++ ++#ifdef SHARK ++ // What is in this constant pool slot? ++ constantTag constant_pool_tag_at(int index); ++ ++ // Is this entry in the constant pool cache resolved? ++ bool is_cache_entry_resolved(int index, Bytecodes::Code opcode); ++#endif // SHARK + }; diff -r 9b0b945113de -r 6123e2454ad9 ports/hotspot/src/share/vm/shark/sharkRuntime.cpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Mon Apr 27 11:15:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Tue Apr 28 05:50:02 2009 -0400 @@ -37,7 +37,6 @@ Constant* SharkRuntime::_anewarray; Constant* SharkRuntime::_anewarray; Constant* SharkRuntime::_multianewarray; Constant* SharkRuntime::_register_finalizer; -Constant* SharkRuntime::_resolve_klass; Constant* SharkRuntime::_safepoint; Constant* SharkRuntime::_throw_ArrayIndexOutOfBoundsException; Constant* SharkRuntime::_throw_NullPointerException; @@ -93,10 +92,6 @@ void SharkRuntime::initialize(SharkBuild (intptr_t) new_instance_C, FunctionType::get(Type::VoidTy, params, false), "SharkRuntime__new_instance"); - _resolve_klass = builder->make_function( - (intptr_t) resolve_klass_C, - FunctionType::get(Type::VoidTy, params, false), - "SharkRuntime__resolve_klass"); params.clear(); params.push_back(SharkType::thread_type()); @@ -372,13 +367,6 @@ JRT_ENTRY(void, SharkRuntime::register_f } JRT_END -JRT_ENTRY(void, SharkRuntime::resolve_klass_C(JavaThread* thread, int index)) -{ - klassOop klass = method(thread)->constants()->klass_at(index, CHECK); - thread->set_vm_result(klass); -} -JRT_END - JRT_ENTRY(void, SharkRuntime::throw_ArrayIndexOutOfBoundsException_C( JavaThread* thread, const char* file, diff -r 9b0b945113de -r 6123e2454ad9 ports/hotspot/src/share/vm/shark/sharkRuntime.hpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.hpp Mon Apr 27 11:15:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.hpp Tue Apr 28 05:50:02 2009 -0400 @@ -37,7 +37,6 @@ class SharkRuntime : public AllStatic { static llvm::Constant* _anewarray; static llvm::Constant* _multianewarray; static llvm::Constant* _register_finalizer; - static llvm::Constant* _resolve_klass; static llvm::Constant* _safepoint; static llvm::Constant* _throw_ArrayIndexOutOfBoundsException; static llvm::Constant* _throw_NullPointerException; @@ -74,10 +73,6 @@ class SharkRuntime : public AllStatic { static llvm::Constant* register_finalizer() { return _register_finalizer; - } - static llvm::Constant* resolve_klass() - { - return _resolve_klass; } static llvm::Constant* safepoint() { @@ -110,7 +105,6 @@ class SharkRuntime : public AllStatic { static void register_finalizer_C(JavaThread* thread, oop object); - static void resolve_klass_C(JavaThread* thread, int index); static void throw_ArrayIndexOutOfBoundsException_C(JavaThread* thread, const char* file, int line, diff -r 9b0b945113de -r 6123e2454ad9 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Mon Apr 27 11:15:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Tue Apr 28 05:50:02 2009 -0400 @@ -1205,24 +1205,24 @@ void SharkTopLevelBlock::do_call() void SharkTopLevelBlock::do_instance_check() { - // Leave the object on the stack until after all the VM calls - assert(xstack(0)->is_jobject(), "should be"); - - ciKlass *klass = NULL; - if (bc() == Bytecodes::_checkcast) { - bool will_link; - klass = iter()->get_klass(will_link); - if (!will_link) { - // XXX why is this not typeflow's responsibility? - NOT_PRODUCT(warning("unresolved checkcast in %s", function()->name())); - klass = (ciKlass *) xstack(0)->type(); - } - } + constantTag tag = + target()->holder()->constant_pool_tag_at(iter()->get_klass_index()); + if (!tag.is_klass()) { + assert(tag.is_unresolved_klass(), "should be"); + do_trapping_instance_check(); + } + else { + do_full_instance_check(); + } +} + +void SharkTopLevelBlock::do_full_instance_check() +{ + bool will_link; + ciKlass *klass = iter()->get_klass(will_link); + assert(will_link, "should do"); BasicBlock *not_null = function()->CreateBlock("not_null"); - BasicBlock *fast_path = function()->CreateBlock("fast_path"); - BasicBlock *slow_path = function()->CreateBlock("slow_path"); - BasicBlock *got_klass = function()->CreateBlock("got_klass"); BasicBlock *subtype_check = function()->CreateBlock("subtype_check"); BasicBlock *is_instance = function()->CreateBlock("is_instance"); BasicBlock *not_instance = function()->CreateBlock("not_instance"); @@ -1235,9 +1235,12 @@ void SharkTopLevelBlock::do_instance_che IC_NOT_INSTANCE, }; + // Pop the object off the stack + Value *object = pop()->jobject_value(); + // Null objects aren't instances of anything builder()->CreateCondBr( - builder()->CreateICmpEQ(xstack(0)->jobject_value(), LLVMValue::null()), + builder()->CreateICmpEQ(object, LLVMValue::null()), merge2, not_null); BasicBlock *null_block = builder()->GetInsertBlock(); SharkState *null_state = current_state()->copy(); @@ -1245,42 +1248,11 @@ void SharkTopLevelBlock::do_instance_che // Get the class we're checking against builder()->SetInsertPoint(not_null); SharkConstantPool constants(this); - Value *tag = constants.tag_at(iter()->get_klass_index()); - builder()->CreateCondBr( - builder()->CreateOr( - builder()->CreateICmpEQ( - tag, LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedClass)), - builder()->CreateICmpEQ( - tag, LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedClassInError))), - slow_path, fast_path); - - // The fast path - builder()->SetInsertPoint(fast_path); - BasicBlock *fast_block = builder()->GetInsertBlock(); - SharkState *fast_state = current_state()->copy(); - Value *fast_klass = constants.object_at(iter()->get_klass_index()); - builder()->CreateBr(got_klass); - - // The slow path - builder()->SetInsertPoint(slow_path); - call_vm( - SharkRuntime::resolve_klass(), - LLVMValue::jint_constant(iter()->get_klass_index())); - Value *slow_klass = function()->CreateGetVMResult(); - BasicBlock *slow_block = builder()->GetInsertBlock(); - builder()->CreateBr(got_klass); - - // We have the class to test against - builder()->SetInsertPoint(got_klass); - current_state()->merge(fast_state, fast_block, slow_block); - PHINode *check_klass = builder()->CreatePHI( - SharkType::jobject_type(), "check_klass"); - check_klass->addIncoming(fast_klass, fast_block); - check_klass->addIncoming(slow_klass, slow_block); + Value *check_klass = constants.object_at(iter()->get_klass_index()); // Get the class of the object being tested Value *object_klass = builder()->CreateValueOfStructEntry( - xstack(0)->jobject_value(), in_ByteSize(oopDesc::klass_offset_in_bytes()), + object, in_ByteSize(oopDesc::klass_offset_in_bytes()), SharkType::jobject_type(), "object_klass"); @@ -1322,9 +1294,6 @@ void SharkTopLevelBlock::do_instance_che result->addIncoming(LLVMValue::jint_constant(IC_IS_NULL), null_block); result->addIncoming(nonnull_result, nonnull_block); - // We can finally pop the object! - Value *object = pop()->jobject_value(); - // Handle the result if (bc() == Bytecodes::_checkcast) { BasicBlock *failure = function()->CreateBlock("failure"); @@ -1349,6 +1318,34 @@ void SharkTopLevelBlock::do_instance_che builder()->CreateICmpEQ( result, LLVMValue::jint_constant(IC_IS_INSTANCE)), SharkType::jint_type(), false), false)); + } +} + +void SharkTopLevelBlock::do_trapping_instance_check() +{ + BasicBlock *not_null = function()->CreateBlock("not_null"); + BasicBlock *is_null = function()->CreateBlock("null"); + + // Leave the object on the stack so it's there if we trap + builder()->CreateCondBr( + builder()->CreateICmpEQ(xstack(0)->jobject_value(), LLVMValue::null()), + is_null, not_null); + SharkState *saved_state = current_state()->copy(); + + // If it's not null then we need to trap + builder()->SetInsertPoint(not_null); + set_current_state(saved_state->copy()); + do_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret)); + + // If it's null then we're ok + builder()->SetInsertPoint(is_null); + set_current_state(saved_state); + if (bc() == Bytecodes::_instanceof) { + pop(); + push(SharkValue::jint_constant(0)); } } diff -r 9b0b945113de -r 6123e2454ad9 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Mon Apr 27 11:15:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Tue Apr 28 05:50:02 2009 -0400 @@ -366,6 +366,9 @@ class SharkTopLevelBlock : public SharkB // checkcast and instanceof private: + void do_full_instance_check(); + void do_trapping_instance_check(); + void do_instance_check(); // new and *newarray From gbenson at redhat.com Tue Apr 28 02:58:34 2009 From: gbenson at redhat.com (Gary Benson) Date: Tue, 28 Apr 2009 10:58:34 +0100 Subject: Improved checkcast and instanceof for Shark Message-ID: <20090428095833.GA5266@redhat.com> Hi all, In Shark, checkcast and instanceof would check if the class they were checking against was loaded, and drop into the runtime if required. This commit moves that check to compile time, deoptimizing if the class isn't loaded. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r 9b0b945113de ChangeLog --- a/ChangeLog Mon Apr 27 11:15:01 2009 -0400 +++ b/ChangeLog Tue Apr 28 05:49:34 2009 -0400 @@ -1,3 +1,23 @@ +2009-04-28 Gary Benson + + * patches/hotspot/default/icedtea-shark.patch + (ciInstanceKlass::constant_pool_tag_at): New method. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp + (SharkTopLevelBlock::do_full_instance_check): New method. + (SharkTopLevelBlock::do_trapping_instance_check): Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::do_instance_check): Split. + (SharkTopLevelBlock::do_full_instance_check): New method. + (SharkTopLevelBlock::do_trapping_instance_check): Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp + (SharkRuntime::_resolve_klass): Removed. + (SharkRuntime::resolve_klass): Likewise. + (SharkRuntime::resolve_klass_C): Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp + (SharkRuntime::_resolve_klass): Likewise. + (SharkRuntime::resolve_klass_C): Likewise. + (SharkRuntime::initialize): Removed _resolve_klass init. + 2009-04-27 Deepak Bhole * plugin/icedtea/sun/applet/PluginAppletViewer.java: Unescape " diff -r 9b0b945113de patches/hotspot/default/icedtea-shark.patch --- a/patches/hotspot/default/icedtea-shark.patch Mon Apr 27 11:15:01 2009 -0400 +++ b/patches/hotspot/default/icedtea-shark.patch Tue Apr 28 05:49:35 2009 -0400 @@ -363,28 +363,24 @@ } // ------------------------------------------------------------------ -diff -r 5297ff20101d openjdk-ecj/hotspot/src/share/vm/ci/ciInstanceKlass.hpp ---- openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp Mon Dec 15 15:32:37 2008 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp Thu Mar 05 11:48:56 2009 +0000 -@@ -198,4 +198,9 @@ - // What kind of ciObject is this? - bool is_instance_klass() { return true; } - bool is_java_klass() { return true; } -+ -+#ifdef SHARK -+ // Is this entry in the constant pool cache resolved? -+ bool is_cache_entry_resolved(int index, Bytecodes::Code opcode); -+#endif // SHARK - }; diff -r 5297ff20101d openjdk-ecj/hotspot/src/share/vm/ci/ciInstanceKlass.cpp --- openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp Mon Dec 15 15:32:37 2008 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp Thu Mar 05 11:48:56 2009 +0000 -@@ -548,3 +548,14 @@ ++++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp Tue Apr 21 09:47:27 2009 +0100 +@@ -548,3 +548,23 @@ } return impl; } + +#ifdef SHARK ++// ------------------------------------------------------------------ ++// ciInstanceKlass::constant_pool_tag_at ++// ++// What is in this constant pool slot? ++constantTag ciInstanceKlass::constant_pool_tag_at(int index) { ++ VM_ENTRY_MARK; ++ return get_instanceKlass()->constants()->tag_at(index); ++} ++ +// ------------------------------------------------------------------ +// ciInstanceKlass::is_cache_entry_resolved +// @@ -394,3 +390,19 @@ + return get_instanceKlass()->constants()->cache()->entry_at(index)->is_resolved(opcode); +} +#endif // SHARK +diff -r 5297ff20101d openjdk-ecj/hotspot/src/share/vm/ci/ciInstanceKlass.hpp +--- openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp Mon Dec 15 15:32:37 2008 +0000 ++++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp Tue Apr 21 09:47:27 2009 +0100 +@@ -198,4 +198,12 @@ + // What kind of ciObject is this? + bool is_instance_klass() { return true; } + bool is_java_klass() { return true; } ++ ++#ifdef SHARK ++ // What is in this constant pool slot? ++ constantTag constant_pool_tag_at(int index); ++ ++ // Is this entry in the constant pool cache resolved? ++ bool is_cache_entry_resolved(int index, Bytecodes::Code opcode); ++#endif // SHARK + }; diff -r 9b0b945113de ports/hotspot/src/share/vm/shark/sharkRuntime.cpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Mon Apr 27 11:15:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Tue Apr 28 05:49:35 2009 -0400 @@ -37,7 +37,6 @@ Constant* SharkRuntime::_anewarray; Constant* SharkRuntime::_multianewarray; Constant* SharkRuntime::_register_finalizer; -Constant* SharkRuntime::_resolve_klass; Constant* SharkRuntime::_safepoint; Constant* SharkRuntime::_throw_ArrayIndexOutOfBoundsException; Constant* SharkRuntime::_throw_NullPointerException; @@ -93,10 +92,6 @@ (intptr_t) new_instance_C, FunctionType::get(Type::VoidTy, params, false), "SharkRuntime__new_instance"); - _resolve_klass = builder->make_function( - (intptr_t) resolve_klass_C, - FunctionType::get(Type::VoidTy, params, false), - "SharkRuntime__resolve_klass"); params.clear(); params.push_back(SharkType::thread_type()); @@ -372,13 +367,6 @@ } JRT_END -JRT_ENTRY(void, SharkRuntime::resolve_klass_C(JavaThread* thread, int index)) -{ - klassOop klass = method(thread)->constants()->klass_at(index, CHECK); - thread->set_vm_result(klass); -} -JRT_END - JRT_ENTRY(void, SharkRuntime::throw_ArrayIndexOutOfBoundsException_C( JavaThread* thread, const char* file, diff -r 9b0b945113de ports/hotspot/src/share/vm/shark/sharkRuntime.hpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.hpp Mon Apr 27 11:15:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.hpp Tue Apr 28 05:49:35 2009 -0400 @@ -37,7 +37,6 @@ static llvm::Constant* _anewarray; static llvm::Constant* _multianewarray; static llvm::Constant* _register_finalizer; - static llvm::Constant* _resolve_klass; static llvm::Constant* _safepoint; static llvm::Constant* _throw_ArrayIndexOutOfBoundsException; static llvm::Constant* _throw_NullPointerException; @@ -75,10 +74,6 @@ { return _register_finalizer; } - static llvm::Constant* resolve_klass() - { - return _resolve_klass; - } static llvm::Constant* safepoint() { return _safepoint; @@ -110,7 +105,6 @@ static void register_finalizer_C(JavaThread* thread, oop object); - static void resolve_klass_C(JavaThread* thread, int index); static void throw_ArrayIndexOutOfBoundsException_C(JavaThread* thread, const char* file, int line, diff -r 9b0b945113de ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Mon Apr 27 11:15:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Tue Apr 28 05:49:35 2009 -0400 @@ -1205,24 +1205,24 @@ void SharkTopLevelBlock::do_instance_check() { - // Leave the object on the stack until after all the VM calls - assert(xstack(0)->is_jobject(), "should be"); - - ciKlass *klass = NULL; - if (bc() == Bytecodes::_checkcast) { - bool will_link; - klass = iter()->get_klass(will_link); - if (!will_link) { - // XXX why is this not typeflow's responsibility? - NOT_PRODUCT(warning("unresolved checkcast in %s", function()->name())); - klass = (ciKlass *) xstack(0)->type(); - } + constantTag tag = + target()->holder()->constant_pool_tag_at(iter()->get_klass_index()); + if (!tag.is_klass()) { + assert(tag.is_unresolved_klass(), "should be"); + do_trapping_instance_check(); } + else { + do_full_instance_check(); + } +} + +void SharkTopLevelBlock::do_full_instance_check() +{ + bool will_link; + ciKlass *klass = iter()->get_klass(will_link); + assert(will_link, "should do"); BasicBlock *not_null = function()->CreateBlock("not_null"); - BasicBlock *fast_path = function()->CreateBlock("fast_path"); - BasicBlock *slow_path = function()->CreateBlock("slow_path"); - BasicBlock *got_klass = function()->CreateBlock("got_klass"); BasicBlock *subtype_check = function()->CreateBlock("subtype_check"); BasicBlock *is_instance = function()->CreateBlock("is_instance"); BasicBlock *not_instance = function()->CreateBlock("not_instance"); @@ -1235,9 +1235,12 @@ IC_NOT_INSTANCE, }; + // Pop the object off the stack + Value *object = pop()->jobject_value(); + // Null objects aren't instances of anything builder()->CreateCondBr( - builder()->CreateICmpEQ(xstack(0)->jobject_value(), LLVMValue::null()), + builder()->CreateICmpEQ(object, LLVMValue::null()), merge2, not_null); BasicBlock *null_block = builder()->GetInsertBlock(); SharkState *null_state = current_state()->copy(); @@ -1245,42 +1248,11 @@ // Get the class we're checking against builder()->SetInsertPoint(not_null); SharkConstantPool constants(this); - Value *tag = constants.tag_at(iter()->get_klass_index()); - builder()->CreateCondBr( - builder()->CreateOr( - builder()->CreateICmpEQ( - tag, LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedClass)), - builder()->CreateICmpEQ( - tag, LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedClassInError))), - slow_path, fast_path); - - // The fast path - builder()->SetInsertPoint(fast_path); - BasicBlock *fast_block = builder()->GetInsertBlock(); - SharkState *fast_state = current_state()->copy(); - Value *fast_klass = constants.object_at(iter()->get_klass_index()); - builder()->CreateBr(got_klass); - - // The slow path - builder()->SetInsertPoint(slow_path); - call_vm( - SharkRuntime::resolve_klass(), - LLVMValue::jint_constant(iter()->get_klass_index())); - Value *slow_klass = function()->CreateGetVMResult(); - BasicBlock *slow_block = builder()->GetInsertBlock(); - builder()->CreateBr(got_klass); - - // We have the class to test against - builder()->SetInsertPoint(got_klass); - current_state()->merge(fast_state, fast_block, slow_block); - PHINode *check_klass = builder()->CreatePHI( - SharkType::jobject_type(), "check_klass"); - check_klass->addIncoming(fast_klass, fast_block); - check_klass->addIncoming(slow_klass, slow_block); + Value *check_klass = constants.object_at(iter()->get_klass_index()); // Get the class of the object being tested Value *object_klass = builder()->CreateValueOfStructEntry( - xstack(0)->jobject_value(), in_ByteSize(oopDesc::klass_offset_in_bytes()), + object, in_ByteSize(oopDesc::klass_offset_in_bytes()), SharkType::jobject_type(), "object_klass"); @@ -1322,9 +1294,6 @@ result->addIncoming(LLVMValue::jint_constant(IC_IS_NULL), null_block); result->addIncoming(nonnull_result, nonnull_block); - // We can finally pop the object! - Value *object = pop()->jobject_value(); - // Handle the result if (bc() == Bytecodes::_checkcast) { BasicBlock *failure = function()->CreateBlock("failure"); @@ -1349,6 +1318,34 @@ builder()->CreateICmpEQ( result, LLVMValue::jint_constant(IC_IS_INSTANCE)), SharkType::jint_type(), false), false)); + } +} + +void SharkTopLevelBlock::do_trapping_instance_check() +{ + BasicBlock *not_null = function()->CreateBlock("not_null"); + BasicBlock *is_null = function()->CreateBlock("null"); + + // Leave the object on the stack so it's there if we trap + builder()->CreateCondBr( + builder()->CreateICmpEQ(xstack(0)->jobject_value(), LLVMValue::null()), + is_null, not_null); + SharkState *saved_state = current_state()->copy(); + + // If it's not null then we need to trap + builder()->SetInsertPoint(not_null); + set_current_state(saved_state->copy()); + do_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret)); + + // If it's null then we're ok + builder()->SetInsertPoint(is_null); + set_current_state(saved_state); + if (bc() == Bytecodes::_instanceof) { + pop(); + push(SharkValue::jint_constant(0)); } } diff -r 9b0b945113de ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Mon Apr 27 11:15:01 2009 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Tue Apr 28 05:49:35 2009 -0400 @@ -366,6 +366,9 @@ // checkcast and instanceof private: + void do_full_instance_check(); + void do_trapping_instance_check(); + void do_instance_check(); // new and *newarray From mark at klomp.org Tue Apr 28 07:53:21 2009 From: mark at klomp.org (Mark Wielaard) Date: Tue, 28 Apr 2009 14:53:21 +0000 Subject: changeset in /hg/icedtea6: * tapset/hotspot.stp.in: New systemta... Message-ID: changeset df5a8e49d157 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=df5a8e49d157 description: * tapset/hotspot.stp.in: New systemtap tapset for hotspot. * configure.ac: Add check for abs-install-dir when --enable-systemtap is given. * Makefile.am (icedtea.stamp): Install tapsets. (icedtea-debug.stamp): Likewise. * .hgignore: Add tapset/hotspot.stp. diffstat: 5 files changed, 466 insertions(+) .hgignore | 1 ChangeLog | 9 + Makefile.am | 10 + configure.ac | 17 + tapset/hotspot.stp.in | 429 +++++++++++++++++++++++++++++++++++++++++++++++++ diffs (truncated from 514 to 500 lines): diff -r 6123e2454ad9 -r df5a8e49d157 .hgignore --- a/.hgignore Tue Apr 28 05:50:02 2009 -0400 +++ b/.hgignore Tue Apr 28 16:53:58 2009 +0200 @@ -33,6 +33,7 @@ platform_zero platform_zero jvm.cfg ergo.c +tapset/hotspot.stp test/hotspot test/jdk test/langtools diff -r 6123e2454ad9 -r df5a8e49d157 ChangeLog --- a/ChangeLog Tue Apr 28 05:50:02 2009 -0400 +++ b/ChangeLog Tue Apr 28 16:53:58 2009 +0200 @@ -1,3 +1,12 @@ 2009-04-28 Gary Benson + + * tapset/hotspot.stp.in: New systemtap tapset for hotspot. + * configure.ac: Add check for abs-install-dir when + --enable-systemtap is given. + * Makefile.am (icedtea.stamp): Install tapsets. + (icedtea-debug.stamp): Likewise. + * .hgignore: Add tapset/hotspot.stp. + 2009-04-28 Gary Benson * patches/hotspot/default/icedtea-shark.patch diff -r 6123e2454ad9 -r df5a8e49d157 Makefile.am --- a/Makefile.am Tue Apr 28 05:50:02 2009 -0400 +++ b/Makefile.am Tue Apr 28 16:53:58 2009 +0200 @@ -1161,6 +1161,11 @@ if WITH_VISUALVM cp -r netbeans/nbbuild/netbeans_visualvm/profiler3 \ $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm endif +if ENABLE_SYSTEMTAP + mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset ; \ + cp $(abs_top_srcdir)/tapset/*.stp \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset +endif cp $(abs_top_srcdir)/rt/net/sourceforge/jnlp/resources/about.jnlp \ extra-lib/about.jar \ $(BUILD_OUTPUT_DIR)/j2re-image/lib ; \ @@ -1227,6 +1232,11 @@ if WITH_VISUALVM $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm ; \ cp -r netbeans/nbbuild/netbeans_visualvm/profiler3 \ $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm +endif +if ENABLE_SYSTEMTAP + mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset ; \ + cp $(abs_top_srcdir)/tapset/*.stp \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset endif cp $(abs_top_srcdir)/rt/net/sourceforge/jnlp/resources/default.jnlp \ extra-lib/about.jar \ diff -r 6123e2454ad9 -r df5a8e49d157 configure.ac --- a/configure.ac Tue Apr 28 05:50:02 2009 -0400 +++ b/configure.ac Tue Apr 28 16:53:58 2009 +0200 @@ -362,6 +362,23 @@ AC_CHECK_HEADER([sys/sdt.h], [SDT_H_FOUN AC_CHECK_HEADER([sys/sdt.h], [SDT_H_FOUND='yes'], [SDT_H_FOUND='no'; AC_MSG_ERROR([systemtap support needs sys/sdt.h header])]) + + AC_MSG_CHECKING([for absolute java home install dir]) + AC_ARG_WITH([abs-install-dir], + [AS_HELP_STRING([--with-abs-install-dir], + [The absolute path where the j2sdk-image dir will be installed])], + [if test "x${withval}" = x; then + ABS_JAVA_HOME_DIR="`pwd`/openjdk/build/${BUILD_OS_DIR}-${BUILD_ARCH_DIR}/j2sdk-image" + else + ABS_JAVA_HOME_DIR="${withval}" + fi], [ABS_JAVA_HOME_DIR="`pwd`/openjdk/build/${BUILD_OS_DIR}-${BUILD_ARCH_DIR}/j2sdk-image"]) + AC_MSG_RESULT([${ABS_JAVA_HOME_DIR}]) + ABS_CLIENT_LIBJVM_SO="${ABS_JAVA_HOME_DIR}/jre/lib/${INSTALL_ARCH_DIR}/client/libjvm.so" + ABS_SERVER_LIBJVM_SO="${ABS_JAVA_HOME_DIR}/jre/lib/${INSTALL_ARCH_DIR}/server/libjvm.so" + AC_SUBST(ABS_JAVA_HOME_DIR) + AC_SUBST(ABS_CLIENT_LIBJVM_SO) + AC_SUBST(ABS_SERVER_LIBJVM_SO) + AC_CONFIG_FILES([tapset/hotspot.stp]) fi dnl Check for libpng headers and libraries. diff -r 6123e2454ad9 -r df5a8e49d157 tapset/hotspot.stp.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tapset/hotspot.stp.in Tue Apr 28 16:53:58 2009 +0200 @@ -0,0 +1,429 @@ +/* hotspot systemtap tapset. + 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. +*/ + +/* + Currently only works with full path in process probes below. + When things don't seem to work look if the correct + jre/lib/[arch]/[client|server]/libjvm.so is used + and exists under @ABS_JAVA_HOME_DIR@/. + This version of hotspot.stp has been configured to instrument the + libjvm.so for arch @INSTALL_ARCH_DIR@ installed at: + @ABS_CLIENT_LIBJVM_SO@ + @ABS_SERVER_LIBJVM_SO@ + + Each probe defines the probe name and a full probestr which consists + of the probe name and between brackets all argument names and values. + */ + +/* hotspot.gc_begin + * Triggeres when a system wide garbage collection begins. + * Sets is_full if this is a full garbage collect. + */ +probe hotspot.gc_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__begin") +{ + name = "gc_begin"; + is_full = $arg1; + probestr = sprintf("%s(is_full=%d)", name, is_full); +} + +/* hotspot.gc_end + Triggers when a system wide garbage collection ends. + Has no arguments. + */ +probe hotspot.gc_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__begin") +{ + name = "gc_end"; + probestr = name; +} + + +/* hotspot.mem_pool_gc_begin + Triggers when a memory pool collection begins. + Sets manager to the manager name that controls this memory pool + (e.g. 'Copy' or 'MarkSweepCompact'), pool to the pool name (e.g. + 'Code Cache', 'Eden Space', 'Survivor Space', 'Tenured Gen', or + 'Perm Gen'), initial to the initial byte size of the pool, used + to the number bytes in use, committed to the number of committed + pages and max to the maximum size of the pool. + */ +probe hotspot.mem_pool_gc_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("mem__pool__gc__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("mem__pool__gc__begin") +{ + name = "mem_pool_gc_begin"; + manager = user_string_n($arg1, $arg2); + pool = user_string_n($arg3, $arg4); + initial = $arg5; + used = $arg6; + committed = $arg7; + max = $arg8; + probestr = sprintf("%s(manager='%s',pool='%s',initial=%d,used=%d,committed=%d,max=%d)", + name, manager, pool, initial, used, committed, max); +} + +/* hotspot.mem_pool_gc_end + Triggers when a memory pool collection ends. + Sets manager to the manager name that controls this memory pool + (e.g. 'Copy' or 'MarkSweepCompact'), pool to the pool name (e.g. + 'Code Cache', 'Eden Space', 'Survivor Space', 'Tenured Gen', or + 'Perm Gen'), initial to the initial byte size of the pool, used + to the number bytes in use, committed to the number of committed + pages and max to the maximum size of the pool. + */ +probe hotspot.mem_pool_gc_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("mem__pool__gc__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("mem__pool__gc__end") +{ + name = "mem_pool_gc_end"; + manager = user_string_n($arg1, $arg2); + pool = user_string_n($arg3, $arg4); + initial = $arg5; + used = $arg6; + committed = $arg7; + max = $arg8; + probestr = sprintf("%s(manager='%s',pool='%s',initial=%d,used=%d,committed=%d,max=%d)", + name, manager, pool, initial, used, committed, max); +} + +/* hotspot.object_alloc (extended probe) + Triggers whenever an object is allocated. + Sets thread_id to the current thread id, class to the class name + of the object allocated, and size to the size of the object. + Needs -XX:+ExtendedDTraceProbes. + */ +probe hotspot.object_alloc = + process("@ABS_CLIENT_LIBJVM_SO@").mark("object__alloc"), + process("@ABS_SERVER_LIBJVM_SO@").mark("object__alloc") +{ + name = "object_alloc"; + thread_id = $arg1; + class = user_string_n($arg2, $arg3); + size = $arg3; + probestr = sprintf("%s(thread_id=%d,class='%s',size=0x%x)", + name, thread_id, class, size); +} + +/* hotspot.vm_init_begin + Triggers at the beginning of the virtual machine initialization. + Has no arguments + */ +probe hotspot.vm_init_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("vm__init__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("vm__init__begin") +{ + name = "vm_init_begin"; + probestr = name; +} + +/* hotspot.vm_init_end + Triggers at the end of the virtual machine initialization. + Has no arguments. + */ +probe hotspot.vm_init_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("vm__init__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("vm__init__end") +{ + name = "vm_init_end"; + probestr = name; +} + +/* hotspot.vm_shutdown + Triggers at the shutdown of the virtual machine initialization. + Has no arguments. + */ +probe hotspot.vm_shutdown = + process("@ABS_CLIENT_LIBJVM_SO@").mark("vm__shutdown"), + process("@ABS_SERVER_LIBJVM_SO@").mark("vm__shutdown") +{ + name = "vm_shutdown"; + probestr = name; +} + +/* hotspot.thread_start + Triggers when a java thread is started. + Sets name to the name of the thread, id to the java thread id, + native_id to the os thread number and is_daemon if the thread + is a daemon thread. + */ +probe hotspot.thread_start = + process("@ABS_CLIENT_LIBJVM_SO@").mark("thread__start"), + process("@ABS_SERVER_LIBJVM_SO@").mark("thread__start") +{ + name = "thread_start"; + thread_name = user_string_n($arg1, $arg2); + id = $arg3; + native_id = $arg4; + is_daemon = $arg5; + probestr = sprintf("%s(thread_name='%s',id=%d,native_id=%d,is_daemon=%d)", + name, thread_name, id, native_id, is_daemon); +} + +/* hotspot.thread_stop + Triggers when a java thread stops. + Sets name to the name of the thread, id to the java thread id, + native_id to the os thread number and is_daemon if the thread + is a daemon thread. + */ +probe hotspot.thread_stop = + process("@ABS_CLIENT_LIBJVM_SO@").mark("thread__stop"), + process("@ABS_SERVER_LIBJVM_SO@").mark("thread__stop") +{ + name = "thread_stop"; + thread_name = user_string_n($arg1, $arg2); + id = $arg3; + native_id = $arg4; + is_daemon = $arg5; + probestr = sprintf("%s(thread_name='%s',id=%d,native_id=%d,is_daemon=%d)", + name, thread_name, id, native_id, is_daemon); +} + +/* hotspot.class_loaded + Triggers when a class is loaded. + Sets name to the loaded class name, classloader_id to the id + of the classloader that loaded this class and is_shared if the + class was loaded from a shared archive. + */ +probe hotspot.class_loaded = + process("@ABS_CLIENT_LIBJVM_SO@").mark("class__loaded"), + process("@ABS_SERVER_LIBJVM_SO@").mark("class__loaded") +{ + name = "class_loaded"; + class = user_string_n($arg1, $arg2); + classloader_id = $arg3; + is_shared = $arg4; + probestr = sprintf("%s(class='%s',classloader_id=0x%x,is_shared=%d)", + name, class, classloader_id, is_shared); +} + +/* hotspot.class_unloaded + Triggers when a class is unloaded. + Sets name to the loaded class name, classloader_id to the id + of the classloader that loaded this class and is_shared if the + class was loaded from a shared archive. + */ +probe hotspot.class_unloaded = + process("@ABS_CLIENT_LIBJVM_SO@").mark("class__unloaded"), + process("@ABS_SERVER_LIBJVM_SO@").mark("class__unloaded") +{ + name = "class_unloaded"; + class = user_string_n($arg1, $arg2); + classloader_id = $arg3; + is_shared = $arg4; + probestr = sprintf("%s(class='%s',classloader_id=0x%x,is_shared=%d)", + name, class, classloader_id, is_shared); +} + +/* hotspot.method_compile_begin + Triggers when a method is being compiled. + Sets compiler to the name of the compiler (e.g. 'C1' or 'C2'), + class to the name of the class, method to the name of the method, + and sig to the signature string of the method. +*/ +probe hotspot.method_compile_begin = + process("@ABS_CLIENT_LIBJVM_SO@").mark("method__compile__begin"), + process("@ABS_SERVER_LIBJVM_SO@").mark("method__compile__begin") +{ + name = "method_compile_begin"; + compiler = user_string_n($arg1, $arg2); + class = user_string_n($arg3, $arg4); + method = user_string_n($arg5, $arg6); + sig = user_string_n($arg7, $arg8); + probestr = name . "(compiler='" . compiler . "',class='" . class + . "',method='" . method . "',sig='" . sig . "')"; +} + +/* hotspot.method_compile_end + Triggers when a method has been compiled. + Sets compiler to the name of the compiler (e.g. 'C1' or 'C2'), + class to the name of the class, method to the name of the method, + and sig to the signature string of the method. +*/ +probe hotspot.method_compile_end = + process("@ABS_CLIENT_LIBJVM_SO@").mark("method__compile__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("method__compile__end") +{ + name = "method_compile_end"; + compiler = user_string_n($arg1, $arg2); + class = user_string_n($arg3, $arg4); + method = user_string_n($arg5, $arg6); + sig = user_string_n($arg7, $arg8); + probestr = name . "(compiler='" . compiler . "',class='" . class + . "',method='" . method . "',sig='" . sig . "')"; +} + +/* hotspot.monitor_wait (extended probe) + Triggers when a thread enters Object.wait(). + Sets thread_id to the current java thread, id to the unique id + for this monitor, class to the class name of the object and + timeout to the number of ms given (or zero for waiting indefinitely). + Needs -XX:+ExtendedDTraceProbes. + */ +probe hotspot.monitor_wait = + process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__wait"), + process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__wait") +{ + name = "monitor_wait"; + thread_id = $arg1; + id = $arg2; + class = user_string_n($arg3, $arg4); + timeout = $arg5; + probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s',timeout=%d)", + name, thread_id, id, class, timeout); +} + +/* hotspot.monitor_waited (extended probe) + Triggers when a thread exits Object.wait(). + Sets thread_id to the current java thread, id to the unique id + for this monitor and class to the class name of the object. + Needs -XX:+ExtendedDTraceProbes. + */ +probe hotspot.monitor_waited = + process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__waited"), + process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__waited") +{ + name = "monitor_waited"; + thread_id = $arg1; + id = $arg2; + class = user_string_n($arg3, $arg4); + probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s')", + name, thread_id, id, class); +} + +/* Doesn't resolve atm. + hotspot.monitor_notify (extended probe) + Triggers when a thread calls Object.notify(). + Sets thread_id to the current java thread, id to the unique id + for this monitor and class to the class name of the object. + Needs -XX:+ExtendedDTraceProbes. +probe hotspot.monitor_notify = + process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__notify"), + process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__notify") +{ + name = "monitor_notify"; + thread_id = $arg1; + id = $arg2; + class = user_string_n($arg3, $arg4); + probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s')", + name, thread_id, id, class); +} + */ + +/* hotspot.monitor_notifyAll (extended probe) + Triggers when a thread calls Object.notifyAll(). + Sets thread_id to the current java thread, id to the unique id + for this monitor and class to the class name of the object. + Needs -XX:+ExtendedDTraceProbes. + */ +probe hotspot.monitor_notifyAll = + process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__notifyAll"), + process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__notifyAll") +{ + name = "monitor_notifyAll"; + thread_id = $arg1; + id = $arg2; + class = user_string_n($arg3, $arg4); + probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s')", + name, thread_id, id, class); +} + +/* hotspot.monitor_contended_enter (extended probe) + Triggers when a thread tries to acquire a monitor (syncronized block) + which is currently held by another thread (that other thread will + exit the monitor triggering hotspot.monitor_contended_exit at a + later time). + Sets thread_id to the current java thread, id to the unique id + for this monitor and class to the class name of the object. + Needs -XX:+ExtendedDTraceProbes. + */ +probe hotspot.monitor_contended_enter = + process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__contended__enter"), + process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__contended__enter") +{ + name = "monitor_contended_enter"; + thread_id = $arg1; + id = $arg2; + class = user_string_n($arg3, $arg4); + probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s')", + name, thread_id, id, class); +} + +/* hotspot.monitor_contended_enter (extended probe) + Triggers when a thread acquires a contended monotor (after + hotspot.monitor_contended_enter has been triggered on this thread, + and the other thread triggered a hotspot.monitor_contended_exit). + Sets thread_id to the current java thread, id to the unique id + for this monitor and class to the class name of the object. + Needs -XX:+ExtendedDTraceProbes. + */ +probe hotspot.monitor_contended_entered = + process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__contended__entered"), + process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__contended__entered") +{ + name = "monitor_contended_entered"; + thread_id = $arg1; + id = $arg2; + class = user_string_n($arg3, $arg4); + probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s')", + name, thread_id, id, class); +} + +/* hotspot.monitor_contended_exit (extended probe) + Triggers when a thread tries to exit a monitor (synchronized block) + that another thread wants to enter (the other thread has triggered + hotspot.monitor_contended_enter). + Sets thread_id to the current java thread, id to the unique id + for this monitor and class to the class name of the object. + Needs -XX:+ExtendedDTraceProbes. + */ +probe hotspot.monitor_contended_exit = + process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__contended__exit"), + process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__contended__exit") +{ + name = "monitor_contended_exit"; + thread_id = $arg1; + id = $arg2; + class = user_string_n($arg3, $arg4); + probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s')", + name, thread_id, id, class); +} + +// Doesn't work yet. +// method__entry +// method__return + From mark at klomp.org Tue Apr 28 08:38:26 2009 From: mark at klomp.org (Mark Wielaard) Date: Tue, 28 Apr 2009 17:38:26 +0200 Subject: Better systemtap java integration - added hotspot tapset Message-ID: <1240933106.2387.43.camel@fedora.wildebeest.org> Hi, IcedTea contained some support for trace markers since a while. But it wasn't very convenient to use with systemtap. Systemtap 0.9.7 contains an important bugfix that makes shared library probeing (libjvm.so) better. I wrote a hotspot.stp tapset that takes advantage of the markers (which are the same as dtrace uses) inside libjvm.so and that exposes the various arguments and some convenient aggregates to make tracing hotspot with systemtap very easy and powerful. 2009-04-28 Mark Wielaard * tapset/hotspot.stp.in: New systemtap tapset for hotspot. * configure.ac: Add check for abs-install-dir when --enable-systemtap is given. * Makefile.am (icedtea.stamp): Install tapsets. (icedtea-debug.stamp): Likewise. * .hgignore: Add tapset/hotspot.stp. When configuring with --enable-systemtap this will now install a tapset/hotspot.stp in the j2sdk-image directory. If you are going to install in some other permanent location, such as distributions, then there is a new --with-abs-install-dir option that can be used (for most distros this should be set to /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/). The probes are placed in both client and server libjvm.so, so you can use either. The tapset makes available the following probes: hotspot.gc_begin hotspot.gc_end hotspot.mem_pool_gc_begin hotspot.mem_pool_gc_end hotspot.object_alloc (*) hotspot.vm_init_begin hotspot.vm_init_end hotspot.vm_shutdown hotspot.thread_start hotspot.thread_stop hotspot.class_loaded hotspot.class_unloaded hotspot.method_compile_begin hotspot.method_compile_end hotspot.monitor_wait (*) hotspot.monitor_waited (*) hotspot.monitor_notify (*) hotspot.monitor_notifyAll (*) hotspot.monitor_contended_enter (*) hotspot.monitor_contended_entered (*) hotspot.monitor_contended_exit (*) The are all documented in the hotspot.stp tapset. Each probe makes at least its name and a full probestr variable available that can be used to quickly get all arguments of each probe. Variables that aren't used are optimized away and will not be evaluated, making the tapset both convenient and efficient. probes marked with a (*) are only triggered when java has been started with -XX:+ExtendedDTraceProbes. Some examples from a trace of HelloWorld (lots of output trimmed): stap -I j2sdk-image/tapset -e 'probe hotspot.* {log(probestr)}' \ -c 'j2sdk-image/bin/java HelloWorld' vm_init_begin class_loaded(class='java/lang/Object',classloader_id=0x0,is_shared=0) class_loaded(class='java/io/Serializable',classloader_id=0x0,is_shared=0) class_loaded(class='java/lang/Comparable',classloader_id=0x0,is_shared=0) class_loaded(class='java/lang/CharSequence',classloader_id=0x0,is_shared=0) class_loaded(class='java/lang/String',classloader_id=0x0,is_shared=0) thread_start(thread_name='Reference Handler',id=2,native_id=22685,is_daemon=1) thread_start(thread_name='Finalizer',id=3,native_id=22686,is_daemon=1) vm_init_end thread_start(thread_name='Signal Dispatcher',id=4,native_id=22687,is_daemon=1) thread_start(thread_name='CompilerThread0',id=5,native_id=22688,is_daemon=1) thread_start(thread_name='Low Memory Detector',id=6,native_id=22689,is_daemon=1) method_compile_begin(compiler='C1',class='java/lang/String',method='hashCode',sig='()I') method_compile_end(compiler='C1',class='java/lang/String',method='hashCode',sig='()I') method_compile_begin(compiler='C1',class='java/lang/String',method='indexOf',sig='(II)I') method_compile_end(compiler='C1',class='java/lang/String',method='indexOf',sig='(II)I') thread_stop(thread_name='Signal Dispatcher',id=4,native_id=22687,is_daemon=1) vm_shutdown And with -XX:+ExtendedDTraceProbes added you will also get information like: object_alloc(thread_id=1,class='[Ljava/security/cert/Certificate;',size=0x21) object_alloc(thread_id=7,class='java/util/Collections$EmptyList',size=0x1f) monitor_wait(thread_id=2,id=0x817feb4,class='java/lang/ref/Reference$Lock',timeout=0) monitor_wait(thread_id=3,id=0x8180b34,class='java/lang/ref/ReferenceQueue$Lock',timeout=0) And on larger programs you can see the various garbage collectors and monitor contention in play: gc_begin(is_full=0) gc_end mem_pool_gc_begin(manager='Copy',pool='Code Cache',initial=163840,used=785856,committed=786432,max=33554432) mem_pool_gc_begin(manager='Copy',pool='Eden Space',initial=917504,used=917504,committed=917504,max=33030144) mem_pool_gc_begin(manager='Copy',pool='Survivor Space',initial=65536,used=65536,committed=65536,max=4128768) mem_pool_gc_begin(manager='Copy',pool='Tenured Gen',initial=4194304,used=784640,committed=4194304,max=495583232) mem_pool_gc_begin(manager='Copy',pool='Perm Gen',initial=12582912,used=8340016,committed=12582912,max=67108864) mem_pool_gc_end(manager='Copy',pool='Code Cache',initial=163840,used=785856,committed=786432,max=33554432) mem_pool_gc_end(manager='Copy',pool='Eden Space',initial=917504,used=0,committed=917504,max=33030144) mem_pool_gc_end(manager='Copy',pool='Survivor Space',initial=65536,used=65536,committed=65536,max=4128768) mem_pool_gc_end(manager='Copy',pool='Tenured Gen',initial=4194304,used=1016496,committed=4194304,max=495583232) mem_pool_gc_end(manager='Copy',pool='Perm Gen',initial=12582912,used=8340016,committed=12582912,max=67108864) monitor_notifyAll(thread_id=1,id=0x9da26bc,class='java/lang/Object') monitor_contended_exit(thread_id=1,id=0x9da26bc,class='java/lang/Object') monitor_waited(thread_id=11,id=0x9da26bc,class='java/lang/Object') monitor_wait(thread_id=11,id=0x9da26bc,class='java/lang/Object',timeout=0) monitor_contended_enter(thread_id=12,id=0x9e3a7b0,class='java/awt/Component$AWTTreeLock') monitor_contended_exit(thread_id=1,id=0x9e3a7b0,class='java/awt/Component$AWTTreeLock') monitor_contended_exit(thread_id=1,id=0x9e3a7b0,class='java/awt/Component$AWTTreeLock') monitor_contended_entered(thread_id=12,id=0x9e3a7b0,class='java/awt/Component$AWTTreeLock') monitor_notifyAll(thread_id=1,id=0x9da26bc,class='java/lang/Object') I'll write a followup post with some issues that could be improved to make this even more useful and enable even more probes. Feedback on the installation appreciated. Is the current location OK, or should it go into a shared/system systemtap tapset directory (so it is automagically picked up instead of needed -I)? Does this setup work for distro packagers? Cheers, Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: tapset.patch Type: text/x-patch Size: 2285 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090428/a0f7eb1d/tapset.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: hotspot.stp.in Type: text/x-csrc Size: 14963 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090428/a0f7eb1d/hotspot.stp.in From bugzilla-daemon at icedtea.classpath.org Tue Apr 28 12:06:13 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 28 Apr 2009 19:06:13 +0000 Subject: [Bug 327] SIGSEGV (0xb) at pc=0xa5fd779c, pid=6255, tid=2833329040 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=327 naveed at cs.columbia.edu changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #207|text/x-log |text/plain mime type| | -- 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 redhat.com Wed Apr 29 01:57:00 2009 From: gbenson at redhat.com (Gary Benson) Date: Wed, 29 Apr 2009 08:57:00 +0000 Subject: changeset in /hg/icedtea6: 2009-04-29 Gary Benson changeset a37e9b594cb2 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=a37e9b594cb2 description: 2009-04-29 Gary Benson * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp (SharkTopLevelBlock::scan_for_traps): Trap on ldc and ldc_w when the constant is unresolved. (SharkTopLevelBlock::lookup_for_ldc): Rewritten. * ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp (SharkConstantPool::java_mirror): Add a comment. diffstat: 3 files changed, 47 insertions(+), 62 deletions(-) ChangeLog | 9 + ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp | 1 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 99 +++++---------- diffs (144 lines): diff -r df5a8e49d157 -r a37e9b594cb2 ChangeLog --- a/ChangeLog Tue Apr 28 16:53:58 2009 +0200 +++ b/ChangeLog Wed Apr 29 04:53:32 2009 -0400 @@ -1,3 +1,12 @@ 2009-04-28 Mark Wielaard + + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::scan_for_traps): Trap on ldc and ldc_w + when the constant is unresolved. + (SharkTopLevelBlock::lookup_for_ldc): Rewritten. + * ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp + (SharkConstantPool::java_mirror): Add a comment. + 2009-04-28 Mark Wielaard * tapset/hotspot.stp.in: New systemtap tapset for hotspot. diff -r df5a8e49d157 -r a37e9b594cb2 ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp --- a/ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp Tue Apr 28 16:53:58 2009 +0200 +++ b/ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp Wed Apr 29 04:53:32 2009 -0400 @@ -116,6 +116,7 @@ Value *SharkConstantPool::java_mirror() SharkType::klass_type(), "klass_part"); + // XXX should there be a memory barrier before this load? return builder()->CreateValueOfStructEntry( klass_part, in_ByteSize(Klass::java_mirror_offset_in_bytes()), diff -r df5a8e49d157 -r a37e9b594cb2 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Tue Apr 28 16:53:58 2009 +0200 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Wed Apr 29 04:53:32 2009 -0400 @@ -46,6 +46,17 @@ void SharkTopLevelBlock::scan_for_traps( int index = -1; switch (bc()) { + case Bytecodes::_ldc: + case Bytecodes::_ldc_w: + if (iter()->is_unresolved_string() || iter()->is_unresolved_klass()) { + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret), bci()); + return; + } + break; + case Bytecodes::_getfield: case Bytecodes::_getstatic: case Bytecodes::_putfield: @@ -579,69 +590,33 @@ void SharkTopLevelBlock::release_locked_ Value *SharkTopLevelBlock::lookup_for_ldc() { + int index = iter()->get_constant_index(); + constantTag tag = target()->holder()->constant_pool_tag_at(index); + SharkConstantPool constants(this); - - BasicBlock *resolved = function()->CreateBlock("resolved"); - BasicBlock *resolved_class = function()->CreateBlock("resolved_class"); - BasicBlock *unresolved = function()->CreateBlock("unresolved"); - BasicBlock *unknown = function()->CreateBlock("unknown"); - BasicBlock *done = function()->CreateBlock("done"); - - SwitchInst *switchinst = builder()->CreateSwitch( - constants.tag_at(iter()->get_constant_index()), - unknown, 5); - - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_String), resolved); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_Class), resolved_class); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedString), unresolved); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedClass), unresolved); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedClassInError), - unresolved); - - builder()->SetInsertPoint(resolved); - Value *resolved_value = constants.object_at(iter()->get_constant_index()); - builder()->CreateBr(done); - - builder()->SetInsertPoint(resolved_class); - Value *resolved_class_value - = constants.object_at(iter()->get_constant_index()); - resolved_class_value - = builder()->CreatePtrToInt(resolved_class_value, - SharkType::intptr_type()); - resolved_class_value - = (builder()->CreateAdd - (resolved_class_value, - (LLVMValue::intptr_constant - (klassOopDesc::klass_part_offset_in_bytes() - + Klass::java_mirror_offset_in_bytes())))); - // XXX FIXME: We need a memory barrier before this load. - resolved_class_value - = (builder()->CreateLoad - (builder()->CreateIntToPtr - (resolved_class_value, - PointerType::getUnqual(SharkType::jobject_type())))); - builder()->CreateBr(done); - - builder()->SetInsertPoint(unresolved); - builder()->CreateUnimplemented(__FILE__, __LINE__); - Value *unresolved_value = LLVMValue::null(); - builder()->CreateBr(done); - - builder()->SetInsertPoint(unknown); - builder()->CreateShouldNotReachHere(__FILE__, __LINE__); - builder()->CreateUnreachable(); - - builder()->SetInsertPoint(done); - PHINode *phi = builder()->CreatePHI(SharkType::jobject_type(), "constant"); - phi->addIncoming(resolved_value, resolved); - phi->addIncoming(resolved_class_value, resolved_class); - phi->addIncoming(unresolved_value, unresolved); - return phi; + Value *entry = constants.object_at(index); + + Value *klass_part; + switch (tag.value()) { + case JVM_CONSTANT_String: + return entry; + + case JVM_CONSTANT_Class: + klass_part = builder()->CreateAddressOfStructEntry( + entry, + in_ByteSize(klassOopDesc::klass_part_offset_in_bytes()), + SharkType::klass_type(), + "klass_part"); + // XXX FIXME: We need a memory barrier before this load + return builder()->CreateValueOfStructEntry( + klass_part, + in_ByteSize(Klass::java_mirror_offset_in_bytes()), + SharkType::oop_type(), + "java_mirror"); + + default: + ShouldNotReachHere(); + } } Value* SharkTopLevelBlock::lookup_for_field_access() From gbenson at redhat.com Wed Apr 29 02:00:23 2009 From: gbenson at redhat.com (Gary Benson) Date: Wed, 29 Apr 2009 10:00:23 +0100 Subject: Improved ldc for Shark Message-ID: <20090429090022.GA3978@redhat.com> Hi all, This patch causes Shark to trap on unresolved ldc and ldc_w instructions, and makes the implementation of the instructions much neater. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r df5a8e49d157 -r a37e9b594cb2 ChangeLog --- a/ChangeLog Tue Apr 28 16:53:58 2009 +0200 +++ b/ChangeLog Wed Apr 29 04:53:32 2009 -0400 @@ -1,3 +1,12 @@ +2009-04-29 Gary Benson + + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::scan_for_traps): Trap on ldc and ldc_w + when the constant is unresolved. + (SharkTopLevelBlock::lookup_for_ldc): Rewritten. + * ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp + (SharkConstantPool::java_mirror): Add a comment. + 2009-04-28 Mark Wielaard * tapset/hotspot.stp.in: New systemtap tapset for hotspot. diff -r df5a8e49d157 -r a37e9b594cb2 ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp --- a/ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp Tue Apr 28 16:53:58 2009 +0200 +++ b/ports/hotspot/src/share/vm/shark/sharkConstantPool.cpp Wed Apr 29 04:53:32 2009 -0400 @@ -116,6 +116,7 @@ SharkType::klass_type(), "klass_part"); + // XXX should there be a memory barrier before this load? return builder()->CreateValueOfStructEntry( klass_part, in_ByteSize(Klass::java_mirror_offset_in_bytes()), diff -r df5a8e49d157 -r a37e9b594cb2 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Tue Apr 28 16:53:58 2009 +0200 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Wed Apr 29 04:53:32 2009 -0400 @@ -46,6 +46,17 @@ int index = -1; switch (bc()) { + case Bytecodes::_ldc: + case Bytecodes::_ldc_w: + if (iter()->is_unresolved_string() || iter()->is_unresolved_klass()) { + set_trap( + Deoptimization::make_trap_request( + Deoptimization::Reason_uninitialized, + Deoptimization::Action_reinterpret), bci()); + return; + } + break; + case Bytecodes::_getfield: case Bytecodes::_getstatic: case Bytecodes::_putfield: @@ -579,69 +590,33 @@ Value *SharkTopLevelBlock::lookup_for_ldc() { + int index = iter()->get_constant_index(); + constantTag tag = target()->holder()->constant_pool_tag_at(index); + SharkConstantPool constants(this); + Value *entry = constants.object_at(index); - BasicBlock *resolved = function()->CreateBlock("resolved"); - BasicBlock *resolved_class = function()->CreateBlock("resolved_class"); - BasicBlock *unresolved = function()->CreateBlock("unresolved"); - BasicBlock *unknown = function()->CreateBlock("unknown"); - BasicBlock *done = function()->CreateBlock("done"); + Value *klass_part; + switch (tag.value()) { + case JVM_CONSTANT_String: + return entry; - SwitchInst *switchinst = builder()->CreateSwitch( - constants.tag_at(iter()->get_constant_index()), - unknown, 5); + case JVM_CONSTANT_Class: + klass_part = builder()->CreateAddressOfStructEntry( + entry, + in_ByteSize(klassOopDesc::klass_part_offset_in_bytes()), + SharkType::klass_type(), + "klass_part"); + // XXX FIXME: We need a memory barrier before this load + return builder()->CreateValueOfStructEntry( + klass_part, + in_ByteSize(Klass::java_mirror_offset_in_bytes()), + SharkType::oop_type(), + "java_mirror"); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_String), resolved); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_Class), resolved_class); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedString), unresolved); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedClass), unresolved); - switchinst->addCase( - LLVMValue::jbyte_constant(JVM_CONSTANT_UnresolvedClassInError), - unresolved); - - builder()->SetInsertPoint(resolved); - Value *resolved_value = constants.object_at(iter()->get_constant_index()); - builder()->CreateBr(done); - - builder()->SetInsertPoint(resolved_class); - Value *resolved_class_value - = constants.object_at(iter()->get_constant_index()); - resolved_class_value - = builder()->CreatePtrToInt(resolved_class_value, - SharkType::intptr_type()); - resolved_class_value - = (builder()->CreateAdd - (resolved_class_value, - (LLVMValue::intptr_constant - (klassOopDesc::klass_part_offset_in_bytes() - + Klass::java_mirror_offset_in_bytes())))); - // XXX FIXME: We need a memory barrier before this load. - resolved_class_value - = (builder()->CreateLoad - (builder()->CreateIntToPtr - (resolved_class_value, - PointerType::getUnqual(SharkType::jobject_type())))); - builder()->CreateBr(done); - - builder()->SetInsertPoint(unresolved); - builder()->CreateUnimplemented(__FILE__, __LINE__); - Value *unresolved_value = LLVMValue::null(); - builder()->CreateBr(done); - - builder()->SetInsertPoint(unknown); - builder()->CreateShouldNotReachHere(__FILE__, __LINE__); - builder()->CreateUnreachable(); - - builder()->SetInsertPoint(done); - PHINode *phi = builder()->CreatePHI(SharkType::jobject_type(), "constant"); - phi->addIncoming(resolved_value, resolved); - phi->addIncoming(resolved_class_value, resolved_class); - phi->addIncoming(unresolved_value, unresolved); - return phi; + default: + ShouldNotReachHere(); + } } Value* SharkTopLevelBlock::lookup_for_field_access() From mark at klomp.org Wed Apr 29 03:41:37 2009 From: mark at klomp.org (Mark Wielaard) Date: Wed, 29 Apr 2009 12:41:37 +0200 Subject: How to host HS14 stable? (Was: RFC: Change name of default HotSpot to 'default') In-Reply-To: <49E3ABEA.6020400@sun.com> References: <20090212150029.GA1121@rivendell.middle-earth.co.uk> <1234731237.3562.6.camel@hermans.wildebeest.org> <17c6771e0902151453t523b15derfc243ffaa201264f@mail.gmail.com> <1234768690.24153.28.camel@localhost.localdomain> <1234772748.3612.3.camel@hermans.wildebeest.org> <1234774554.11228.3.camel@localhost.localdomain> <1234862105.4062.8.camel@fedora.wildebeest.org> <499B727D.6060901@sun.com> <17c6771e0903200428j75e26899x9c15daf57f5ed20e@mail.gmail.com> <49E3ABEA.6020400@sun.com> Message-ID: <1241001697.4267.1.camel@fedora.wildebeest.org> Hi Joe, On Mon, 2009-04-13 at 14:17 -0700, Joseph D. Darcy wrote: > Andrew John Hughes wrote: > > 2009/2/18 Joe Darcy : > >> On 02/17/09 01:15 AM, Mark Wielaard wrote: > >> So it would be good to have an open repo that hosts the HS14 stable > >> build so that people interested in a stable, but modern, hotspot could > >> base their work on that. Since IcedTea6 is trying to standardize on HS14 > >> for the default hotspot and the one that Zero and Shark are based on I > >> could create a icedtea/hotspot repo branched from the latest HS14 code > >> in the jdk7/jdk7/hotspot repo. Would that be interesting to others? How > >> do we coordinate backporting fixes to it? Any other suggestions for > >> hosting an open hotspot HS14 repo (maybe as subtree of one of the other > >> 6 hotspot repos under jdk7/hostspot-* (I admit to not know what they are > >> all for currently). >>> > >> I have been talking with the HotSpot team inside Sun about the logistics > >> needed to support a public HotSpot Mercurial repository usable by both > >> OpenJDK 6 and the 6 update release, which would mean the stabilized HotSpot > >> 14 at this point. > >> > >> We should have something figured out relatively soon; I'll post when we do. > > > > Any news on this? > > Some news should be available real soon now... Great. Do you hav any estimates on when "real soon now" will be? Thanks, Mark From omajid at redhat.com Wed Apr 29 06:51:47 2009 From: omajid at redhat.com (Omair Majid) Date: Wed, 29 Apr 2009 13:51:47 +0000 Subject: changeset in /hg/icedtea6: 2009-04-29 Omair Majid changeset 5792b1816fac in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5792b1816fac description: 2009-04-29 Omair Majid * patches/icedtea-java2d-mitre-join.patch: New patch. Backport fix for mitre join decorations from OpenJDK7 (S6812600) along with its test. * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. diffstat: 4 files changed, 73 insertions(+) ChangeLog | 7 +++ HACKING | 1 Makefile.am | 1 patches/icedtea-java2d-mitre-join.patch | 64 +++++++++++++++++++++++++++++++ diffs (104 lines): diff -r a37e9b594cb2 -r 5792b1816fac ChangeLog --- a/ChangeLog Wed Apr 29 04:53:32 2009 -0400 +++ b/ChangeLog Wed Apr 29 09:28:35 2009 -0400 @@ -1,3 +1,10 @@ 2009-04-29 Gary Benson + + * patches/icedtea-java2d-mitre-join.patch: New patch. Backport fix for + mitre join decorations from OpenJDK7 (S6812600) along with its test. + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + * HACKING: Document the above. + 2009-04-29 Gary Benson * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp diff -r a37e9b594cb2 -r 5792b1816fac HACKING --- a/HACKING Wed Apr 29 04:53:32 2009 -0400 +++ b/HACKING Wed Apr 29 09:28:35 2009 -0400 @@ -92,6 +92,7 @@ The following patches are currently appl * icedtea-jtreg-printjob-edgetest-manual.patch: Mark test that requires user interaction as manual. * icedtea-jtreg-jrunscript.patch: Fix jrunscript test so it works with newer versions of rhino (by comparing the actual numbers). * icedtea-ignore-unrecognized-options.patch: Add -XX:+IgnoreUnrecognizedVMOptions flag to hotspot (S6788376). +* icedtea-java2d-mitre-join.patch: Backport fix for mitre join decoration (S6812600). The following patches are only applied to OpenJDK6 in IcedTea6: diff -r a37e9b594cb2 -r 5792b1816fac Makefile.am --- a/Makefile.am Wed Apr 29 04:53:32 2009 -0400 +++ b/Makefile.am Wed Apr 29 09:28:35 2009 -0400 @@ -677,6 +677,7 @@ ICEDTEA_PATCHES += \ patches/icedtea-jtreg-jrunscript.patch \ patches/icedtea-network-unreachable.patch \ patches/icedtea-dnd-filelists.patch \ + patches/icedtea-java2d-mitre-join.patch \ $(DISTRIBUTION_PATCHES) stamps/extract.stamp: stamps/download.stamp diff -r a37e9b594cb2 -r 5792b1816fac patches/icedtea-java2d-mitre-join.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-java2d-mitre-join.patch Wed Apr 29 09:28:35 2009 -0400 @@ -0,0 +1,64 @@ +diff -r 59696dfd5455 -r 9318628e8eee src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java +--- openjdk/jdk/src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java Thu Mar 12 12:01:49 2009 -0700 ++++ openjdk/jdk/src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java Mon Mar 16 11:46:26 2009 -0700 +@@ -245,6 +245,7 @@ + FloatToS15_16(coords[1])); + break; + case PathIterator.SEG_CLOSE: ++ lsink.lineJoin(); + lsink.close(); + break; + default: +diff -r 59696dfd5455 -r 9318628e8eee test/sun/pisces/JoinMiterTest.java +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/sun/pisces/JoinMiterTest.java Mon Mar 16 11:46:26 2009 -0700 +@@ -0,0 +1,48 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* @test ++ * @summary Pass if no RuntimeException. ++ * @bug 6812600 ++ */ ++import java.awt.*; ++import java.awt.image.BufferedImage; ++ ++public class JoinMiterTest { ++ ++ public static void main(String[] args) throws Exception { ++ BufferedImage image = new BufferedImage(200, 200, ++BufferedImage.TYPE_INT_RGB); ++ Graphics2D g = image.createGraphics(); ++ g.setPaint(Color.WHITE); ++ g.fill(new Rectangle(image.getWidth(), image.getHeight())); ++ g.translate(25, 100); ++ g.setPaint(Color.BLACK); ++ g.setStroke(new BasicStroke(20, BasicStroke.CAP_BUTT, ++ BasicStroke.JOIN_MITER)); ++ g.draw(new Polygon(new int[] {0, 150, 0}, new int[] {75, 0, -75}, 3)); ++ if (image.getRGB(16, 10) == Color.WHITE.getRGB()) { ++ throw new RuntimeException("Miter is not rendered."); ++ } ++ } ++} + From omajid at redhat.com Wed Apr 29 06:52:16 2009 From: omajid at redhat.com (Omair Majid) Date: Wed, 29 Apr 2009 09:52:16 -0400 Subject: [FYI] Backport fix for mitre join decorations from OpenJDK7 Message-ID: <49F85B90.4030002@redhat.com> Hi, The attached patch fixes mitre join decorations (Sun bug 6812600[1]). It backports the fix in OpenJDK7 [2] to IcedTea6. ChangeLog: 2009-04-29 Omair Majid * patches/icedtea-java2d-mitre-join.patch: New patch. Backport fix for mitre join decorations from OpenJDK7 (S6812600) along with its test. * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. Cheers, Omair [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6812600 [2] http://hg.openjdk.java.net/jdk7/2d/jdk/rev/9318628e8eee -------------- next part -------------- A non-text attachment was scrubbed... Name: mitre-join.patch Type: text/x-patch Size: 4049 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090429/38b762ca/mitre-join.patch From mark at klomp.org Wed Apr 29 07:00:29 2009 From: mark at klomp.org (Mark Wielaard) Date: Wed, 29 Apr 2009 14:00:29 +0000 Subject: changeset in /hg/icedtea6: * README: Document systemtap support. Message-ID: changeset 9d89e1ada1c8 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=9d89e1ada1c8 description: * README: Document systemtap support. * INSTALL: Document build requirements for systemtap support. * NEWS: Mention systemtap support. diffstat: 4 files changed, 38 insertions(+) ChangeLog | 6 ++++++ INSTALL | 9 +++++++++ NEWS | 9 +++++++++ README | 14 ++++++++++++++ diffs (69 lines): diff -r 5792b1816fac -r 9d89e1ada1c8 ChangeLog --- a/ChangeLog Wed Apr 29 09:28:35 2009 -0400 +++ b/ChangeLog Wed Apr 29 16:01:07 2009 +0200 @@ -1,3 +1,9 @@ 2009-04-29 Omair Majid + + * README: Document systemtap support. + * INSTALL: Document build requirements for systemtap support. + * NEWS: Mention systemtap support. + 2009-04-29 Omair Majid * patches/icedtea-java2d-mitre-join.patch: New patch. Backport fix for diff -r 5792b1816fac -r 9d89e1ada1c8 INSTALL --- a/INSTALL Wed Apr 29 09:28:35 2009 -0400 +++ b/INSTALL Wed Apr 29 16:01:07 2009 +0200 @@ -39,6 +39,15 @@ netbeans = 6.5 netbeans = 6.5 For building the zero-assembler port (see below), you will need libffi. + +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 +tapset gets the correct installation location for the libjvm.so, it +defaults to the root of the j2sdk-image build dir otherwise (but then +you cannot move that to another location without adjusting the paths +in the tapset/hotspot.stp file. For example: + --enable-systemtap --with-abs-install-dir=/usr/lib/jvm/java-1.6.0-openjdk See ./configure --help if you need to override the defaults. diff -r 5792b1816fac -r 9d89e1ada1c8 NEWS --- a/NEWS Wed Apr 29 09:28:35 2009 -0400 +++ b/NEWS Wed Apr 29 16:01:07 2009 +0200 @@ -1,3 +1,12 @@ New in release 1.4 (2009-01-29) +New in release 1.X (UNRELEASED) + +- Static trace support through systemtap. + When given the configure option --enable-systemtap IcedTea will build + hotspot with the dtrace static markers enabled and install an hotspot + tapset that can be used to dynamically trace execution of java + applications at runtime. See the tapset/hotspot.stp file for + documentation of the various trace points and arguments available. + New in release 1.4 (2009-01-29) - Security fixes for: diff -r 5792b1816fac -r 9d89e1ada1c8 README --- a/README Wed Apr 29 09:28:35 2009 -0400 +++ b/README Wed Apr 29 16:01:07 2009 +0200 @@ -153,3 +153,17 @@ PulseAudio Mixer Passing --enable-pulse-java to configure will build the PulseAudio Mixer for java. This allows java programs to use PulseAudio as the sound backend. + +Systemtap support +================= + +The --enable-systemtap configure option will try to find the systemtap +runtime development files (sdt.h and the dtrace python script wrapper), +enable compilation of static markers in the hotspot code and install a +systemtap hotspot.stp tapset for easy tracing with systemtap's stap +utility. The probes are documented in tapset/hotspot.stp. + +This requires the systemtap-sdt-devel package as build dependency and +optionally the systemtap package at run time when the user want to use +the tapset to trace java programs. The probes have zero overhead when +not used and can safely be compiled in even when not used at runtime. From gnu_andrew at member.fsf.org Wed Apr 29 07:07:41 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 29 Apr 2009 15:07:41 +0100 Subject: [FYI] Backport fix for mitre join decorations from OpenJDK7 In-Reply-To: <49F85B90.4030002@redhat.com> References: <49F85B90.4030002@redhat.com> Message-ID: <17c6771e0904290707g5eed965frf4fd1790aa313bf3@mail.gmail.com> 2009/4/29 Omair Majid : > Hi, > > The attached patch fixes mitre join decorations (Sun bug 6812600[1]). It > backports the fix in OpenJDK7 [2] to IcedTea6. > > ChangeLog: > > 2009-04-29 ?Omair Majid ? > > ? ? ? * patches/icedtea-java2d-mitre-join.patch: New patch. Backport > ? ? ? fix for mitre join decorations from OpenJDK7 (S6812600) along > ? ? ? with its test. > ? ? ? * Makefile.am (ICEDTEA_PATCHES): Apply the above. > ? ? ? * HACKING: Document the above. > > Cheers, > Omair > > [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6812600 > [2] http://hg.openjdk.java.net/jdk7/2d/jdk/rev/9318628e8eee > This should also be pushed upstream to OpenJDK6, if acceptable. CCing to jdk6 list. -- 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 redhat.com Wed Apr 29 07:13:09 2009 From: mjw at redhat.com (Mark Wielaard) Date: Wed, 29 Apr 2009 16:13:09 +0200 Subject: Better systemtap java integration - added hotspot tapset In-Reply-To: <1240933106.2387.43.camel@fedora.wildebeest.org> References: <1240933106.2387.43.camel@fedora.wildebeest.org> Message-ID: <1241014389.2402.11.camel@fedora.wildebeest.org> Hi, On Tue, 2009-04-28 at 17:38 +0200, Mark Wielaard wrote: > IcedTea contained some support for trace markers since a while. But it > wasn't very convenient to use with systemtap. Systemtap 0.9.7 contains > an important bugfix that makes shared library probeing (libjvm.so) > better. I wrote a hotspot.stp tapset that takes advantage of the markers > (which are the same as dtrace uses) inside libjvm.so and that exposes > the various arguments and some convenient aggregates to make tracing > hotspot with systemtap very easy and powerful. I have added some documentation to the README, INSTALL and NEWS files. 2009-04-29 Mark Wielaard * README: Document systemtap support. * INSTALL: Document build requirements for systemtap support. * NEWS: Mention systemtap support. And updated the wiki http://icedtea.classpath.org/wiki/BuildRequirements to document the new --enable-systemtap and --with-abs-install-dir options plus build requirements when used. Cheers, Mark -------------- next part -------------- A non-text attachment was scrubbed... Name: systemtap-doc.patch Type: text/x-patch Size: 2491 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090429/551681c4/systemtap-doc.patch From doko at ubuntu.com Wed Apr 29 07:15:42 2009 From: doko at ubuntu.com (doko at ubuntu.com) Date: Wed, 29 Apr 2009 14:15:42 +0000 Subject: changeset in /hg/icedtea6: 2009-04-29 Matthias Klose changeset c7860ca7b19e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c7860ca7b19e description: 2009-04-29 Matthias Klose Xerxes Rnby * configure.am (LLVM_CFLAGS): Add SHARK_LLVM_VERSION. * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp, ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: New methods getDlsymTable, SetDlsymTable, allocateSpace, dependent on the llvm version. diffstat: 4 files changed, 40 insertions(+) ChangeLog | 9 ++++++ configure.ac | 1 ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp | 21 +++++++++++++++ ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp | 9 ++++++ diffs (75 lines): diff -r 9d89e1ada1c8 -r c7860ca7b19e ChangeLog --- a/ChangeLog Wed Apr 29 16:01:07 2009 +0200 +++ b/ChangeLog Wed Apr 29 16:11:25 2009 +0200 @@ -1,3 +1,12 @@ 2009-04-29 Mark Wielaard + Xerxes R??nby + + * configure.am (LLVM_CFLAGS): Add SHARK_LLVM_VERSION. + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp, + ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: New + methods getDlsymTable, SetDlsymTable, allocateSpace, dependent + on the llvm version. + 2009-04-29 Mark Wielaard * README: Document systemtap support. diff -r 9d89e1ada1c8 -r c7860ca7b19e configure.ac --- a/configure.ac Wed Apr 29 16:01:07 2009 +0200 +++ b/configure.ac Wed Apr 29 16:11:25 2009 +0200 @@ -523,6 +523,7 @@ if test "x${SHARK_BUILD_TRUE}" = x; then LLVM_CFLAGS=`$LLVM_CONFIG --cflags $llvm_components | \ sed -e 's/-O.//g' | sed -e 's/-fomit-frame-pointer//g' | \ sed -e 's/-D_DEBUG//g'` + LLVM_CFLAGS="$LLVM_CFLAGS -DSHARK_LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/\.//'`" LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags $llvm_components` LLVM_LIBS=`$LLVM_CONFIG --libs $llvm_components` fi diff -r 9d89e1ada1c8 -r c7860ca7b19e ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp --- a/ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp Wed Apr 29 16:01:07 2009 +0200 +++ b/ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp Wed Apr 29 16:11:25 2009 +0200 @@ -90,3 +90,24 @@ void SharkMemoryManager::deallocateMemFo { return mm()->deallocateMemForFunction(F); } + +#if SHARK_LLVM_VERSION >= 26 +void* SharkMemoryManager::getDlsymTable() const +{ + return mm()->getDlsymTable(); +} + +void SharkMemoryManager::SetDlsymTable(void *ptr) +{ + mm()->SetDlsymTable(ptr); +} + +#endif + +#if SHARK_LLVM_VERSION >= 25 +unsigned char *SharkMemoryManager::allocateSpace(intptr_t Size, + unsigned int Alignment) +{ + return mm()->allocateSpace(Size, Alignment); +} +#endif diff -r 9d89e1ada1c8 -r c7860ca7b19e ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp --- a/ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp Wed Apr 29 16:01:07 2009 +0200 +++ b/ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp Wed Apr 29 16:11:25 2009 +0200 @@ -71,7 +71,16 @@ class SharkMemoryManager : public llvm:: unsigned char* TableStart, unsigned char* TableEnd, unsigned char* FrameRegister); +#if SHARK_LLVM_VERSION >= 26 + void* getDlsymTable() const; + void SetDlsymTable(void *ptr); +#endif void setMemoryWritable(); void setMemoryExecutable(); void deallocateMemForFunction(const llvm::Function* F); + +#if SHARK_LLVM_VERSION >= 25 + unsigned char *allocateSpace(intptr_t Size, + unsigned int Alignment); +#endif }; From Joe.Darcy at Sun.COM Wed Apr 29 08:38:55 2009 From: Joe.Darcy at Sun.COM (Joseph D. Darcy) Date: Wed, 29 Apr 2009 08:38:55 -0700 Subject: [FYI] Backport fix for mitre join decorations from OpenJDK7 In-Reply-To: <17c6771e0904290707g5eed965frf4fd1790aa313bf3@mail.gmail.com> References: <49F85B90.4030002@redhat.com> <17c6771e0904290707g5eed965frf4fd1790aa313bf3@mail.gmail.com> Message-ID: <49F8748F.8060503@sun.com> Andrew John Hughes wrote: > 2009/4/29 Omair Majid : > >> Hi, >> >> The attached patch fixes mitre join decorations (Sun bug 6812600[1]). It >> backports the fix in OpenJDK7 [2] to IcedTea6. >> >> ChangeLog: >> >> 2009-04-29 Omair Majid >> >> * patches/icedtea-java2d-mitre-join.patch: New patch. Backport >> fix for mitre join decorations from OpenJDK7 (S6812600) along >> with its test. >> * Makefile.am (ICEDTEA_PATCHES): Apply the above. >> * HACKING: Document the above. >> >> Cheers, >> Omair >> >> [1] http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6812600 >> [2] http://hg.openjdk.java.net/jdk7/2d/jdk/rev/9318628e8eee >> >> > > This should also be pushed upstream to OpenJDK6, if acceptable. > CCing to jdk6 list. > Hello. That would be fine with me. -Joe From ahughes at redhat.com Wed Apr 29 10:10:05 2009 From: ahughes at redhat.com (Andrew John Hughes) Date: Wed, 29 Apr 2009 17:10:05 +0000 Subject: changeset in /hg/icedtea6: Fix build with --enable-systemtap. Message-ID: changeset 059f6ba0c7dd in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=059f6ba0c7dd description: Fix build with --enable-systemtap. 2009-04-29 Andrew John Hughes * Makefile.am: Use abs_top_builddir to locate generated Systemtap file. diffstat: 2 files changed, 7 insertions(+), 1 deletion(-) ChangeLog | 6 ++++++ Makefile.am | 2 +- diffs (25 lines): diff -r c7860ca7b19e -r 059f6ba0c7dd ChangeLog --- a/ChangeLog Wed Apr 29 16:11:25 2009 +0200 +++ b/ChangeLog Wed Apr 29 18:09:17 2009 +0100 @@ -1,3 +1,9 @@ 2009-04-29 Matthias Klose + + * Makefile.am: + Use abs_top_builddir to locate generated + Systemtap file. + 2009-04-29 Matthias Klose Xerxes R??nby diff -r c7860ca7b19e -r 059f6ba0c7dd Makefile.am --- a/Makefile.am Wed Apr 29 16:11:25 2009 +0200 +++ b/Makefile.am Wed Apr 29 18:09:17 2009 +0100 @@ -1164,7 +1164,7 @@ endif endif if ENABLE_SYSTEMTAP mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset ; \ - cp $(abs_top_srcdir)/tapset/*.stp \ + cp $(abs_top_builddir)/tapset/*.stp \ $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset endif cp $(abs_top_srcdir)/rt/net/sourceforge/jnlp/resources/about.jnlp \ From bugzilla-daemon at icedtea.classpath.org Wed Apr 29 11:08:37 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 29 Apr 2009 18:08:37 +0000 Subject: [Bug 328] New: Systemtap tapset expects both client and server vm libraries to be available Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=328 Summary: Systemtap tapset expects both client and server vm libraries to be available Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: gnu_andrew at member.fsf.org On x86_64, there is only one libjvm.so: the server VM. But the current hotspot.tap expects both client and server libjvms to exist. -- 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 Wed Apr 29 11:16:02 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Wed, 29 Apr 2009 19:16:02 +0100 Subject: Better systemtap java integration - added hotspot tapset In-Reply-To: <1241014389.2402.11.camel@fedora.wildebeest.org> References: <1240933106.2387.43.camel@fedora.wildebeest.org> <1241014389.2402.11.camel@fedora.wildebeest.org> Message-ID: <17c6771e0904291116g7c3b0b9cy52875cd3df9ba33a@mail.gmail.com> 2009/4/29 Mark Wielaard : > Hi, > > On Tue, 2009-04-28 at 17:38 +0200, Mark Wielaard wrote: >> IcedTea contained some support for trace markers since a while. But it >> wasn't very convenient to use with systemtap. Systemtap 0.9.7 contains >> an important bugfix that makes shared library probeing (libjvm.so) >> better. I wrote a hotspot.stp tapset that takes advantage of the markers >> (which are the same as dtrace uses) inside libjvm.so and that exposes >> the various arguments and some convenient aggregates to make tracing >> hotspot with systemtap very easy and powerful. > > I have added some documentation to the README, INSTALL and NEWS files. > > 2009-04-29 ?Mark Wielaard ? > > ? ?* README: Document systemtap support. > ? ?* INSTALL: Document build requirements for systemtap support. > ? ?* NEWS: Mention systemtap support. > > And updated the wiki http://icedtea.classpath.org/wiki/BuildRequirements > to document the new --enable-systemtap and --with-abs-install-dir > options plus build requirements when used. > > Cheers, > > Mark > Builds on x86_64 with a bit of poking and some hacking to remove the references to the non-existent client VM: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=328 Looks good! -- 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 omajid at redhat.com Wed Apr 29 11:30:42 2009 From: omajid at redhat.com (Omair Majid) Date: Wed, 29 Apr 2009 14:30:42 -0400 Subject: Some improvements needed on icedtea Java2D renderers. In-Reply-To: <49F59068.1030107@zafena.se> References: <49F59068.1030107@zafena.se> Message-ID: <49F89CD2.5010802@redhat.com> Hi, Xerxes R?nby wrote: > Hello, during bug testing of icedtea6 on various embedded and stationary > hardware i have stumbled across some rendering issues of java2d when > running under icedtea6. > > Testcase: > http://java.sun.com/products/java-media/2D/samples/java2demo/Java2Demo.html > > Sourcecode available from: > http://java.sun.com/products/java-media/2D/samples/java2demo/Java2D.zip Attaching two patches and adding 2d-dev to cc list to get feedback on the patches. > > 5. and 6. The last two issues are related. the specified joinType are > not applyed to lines that gets inserted using closePath. > public void drawDemo(int w, int h, Graphics2D g2) { > BasicStroke bs = new BasicStroke(bswidth, > BasicStroke.CAP_BUTT, joinType); > GeneralPath p = new GeneralPath(); > p.moveTo(- w / 4.0f, - h / 12.0f); > p.lineTo(+ w / 4.0f, - h / 12.0f); > p.lineTo(- w / 6.0f, + h / 4.0f); > p.lineTo(+ 0.0f, - h / 4.0f); > p.lineTo(+ w / 6.0f, + h / 4.0f); > p.closePath(); // > <----- issue 6: this should have create a correct join. instead a round > join are allways used. > p.closePath(); // > <----- issue 5: this should have create a correct join. the rendering > of the start line should Is the second closePath() supposed to do anything? > > // have been updated when the second closepath was > instructed. > g2.translate(w/2, h/2); > g2.setColor(Color.black); > g2.draw(bs.createStrokedShape(p)); > } > issue5-internal-joint.patch fixes the internal joint on the bottom right corner of the star. The external round join issue is fixed by an OpenJDK7 patch [1]. This has already been backported to IcedTea6. issue6-extra-line-closing-joint.patch removes the extra line that is drawn on the top left corner of the star, fixing that issue. Each patch also includes a jtreg test for the bug. > The second attached picture without pink markings displays how the > testcase looks using Sun's properitary java2d for reference. > > Cheers. > Xerxes Cheers, Omair [1] http://hg.openjdk.java.net/jdk7/2d/jdk/rev/9318628e8eee -------------- next part -------------- A non-text attachment was scrubbed... Name: issue5-internal-joint.patch Type: text/x-patch Size: 4952 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090429/ff53d732/issue5-internal-joint.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: issue6-extra-line-closing-joint.patch Type: text/x-patch Size: 5031 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090429/ff53d732/issue6-extra-line-closing-joint.patch From omajid at redhat.com Wed Apr 29 14:00:42 2009 From: omajid at redhat.com (Omair Majid) Date: Wed, 29 Apr 2009 21:00:42 +0000 Subject: changeset in /hg/icedtea6: 2009-04-29 Omair Majid changeset 713678ee2064 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=713678ee2064 description: 2009-04-29 Omair Majid * patches/icedtea-java2d-stroker-internal-joint.patch: New patch. Fixes the penultimate miter joint created by GeneralPath.closePath(). * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. diffstat: 4 files changed, 107 insertions(+) ChangeLog | 7 + HACKING | 1 Makefile.am | 1 patches/icedtea-java2d-stroker-internal-joint.patch | 98 +++++++++++++++++++ diffs (138 lines): diff -r 059f6ba0c7dd -r 713678ee2064 ChangeLog --- a/ChangeLog Wed Apr 29 18:09:17 2009 +0100 +++ b/ChangeLog Wed Apr 29 13:46:09 2009 -0400 @@ -1,3 +1,10 @@ 2009-04-29 Andrew John Hughes + + * patches/icedtea-java2d-stroker-internal-joint.patch: New patch. Fixes + the penultimate miter joint created by GeneralPath.closePath(). + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + * HACKING: Document the above. + 2009-04-29 Andrew John Hughes * Makefile.am: diff -r 059f6ba0c7dd -r 713678ee2064 HACKING --- a/HACKING Wed Apr 29 18:09:17 2009 +0100 +++ b/HACKING Wed Apr 29 13:46:09 2009 -0400 @@ -93,6 +93,7 @@ The following patches are currently appl * icedtea-jtreg-jrunscript.patch: Fix jrunscript test so it works with newer versions of rhino (by comparing the actual numbers). * icedtea-ignore-unrecognized-options.patch: Add -XX:+IgnoreUnrecognizedVMOptions flag to hotspot (S6788376). * icedtea-java2d-mitre-join.patch: Backport fix for mitre join decoration (S6812600). +* icedtea-java2d-stroker-internal-joint.patch: Fix penultimate joint created by GeneralPath.closePath(). The following patches are only applied to OpenJDK6 in IcedTea6: diff -r 059f6ba0c7dd -r 713678ee2064 Makefile.am --- a/Makefile.am Wed Apr 29 18:09:17 2009 +0100 +++ b/Makefile.am Wed Apr 29 13:46:09 2009 -0400 @@ -678,6 +678,7 @@ ICEDTEA_PATCHES += \ patches/icedtea-network-unreachable.patch \ patches/icedtea-dnd-filelists.patch \ patches/icedtea-java2d-mitre-join.patch \ + patches/icedtea-java2d-stroker-internal-joint.patch \ $(DISTRIBUTION_PATCHES) stamps/extract.stamp: stamps/download.stamp diff -r 059f6ba0c7dd -r 713678ee2064 patches/icedtea-java2d-stroker-internal-joint.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-java2d-stroker-internal-joint.patch Wed Apr 29 13:46:09 2009 -0400 @@ -0,0 +1,98 @@ +--- openjdk/jdk/src/share/classes/sun/java2d/pisces/Stroker.java.orig 2009-04-29 13:30:24.000000000 -0400 ++++ openjdk/jdk/src/share/classes/sun/java2d/pisces/Stroker.java 2009-04-29 13:31:05.000000000 -0400 +@@ -614,6 +614,8 @@ + ROUND_JOIN_INTERNAL_THRESHOLD); + } + ++ emitLineTo(x0, y0, !ccw); ++ + emitLineTo(x0 + mx, y0 + my); + emitLineTo(sx0 + mx, sy0 + my); + +--- /dev/null 2009-04-15 13:37:55.776002308 -0400 ++++ openjdk/jdk/test/sun/pisces/MiterInternalJointTest.java 2009-04-29 13:41:30.000000000 -0400 +@@ -0,0 +1,84 @@ ++/* ++ * Copyright 2009 Red Hat, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++/* ++ @test ++ @summary Check that the penultimate joint created using ++ generalPath.closePath() is correct ++ @author Omair Majid ++ @run main MiterInternalJointTest ++ */ ++ ++ ++import java.awt.BasicStroke; ++import java.awt.Color; ++import java.awt.Graphics2D; ++import java.awt.geom.GeneralPath; ++import java.awt.image.BufferedImage; ++ ++public class MiterInternalJointTest { ++ ++ static final int WIDTH = 200; ++ static final int HEIGHT = 200; ++ ++ static final int x0 = 50, y0 = 50; ++ static final int x1 = 150, y1 = 50; ++ static final int x2 = 100, y2 = 100; ++ ++ private static BufferedImage createTestImage() { ++ final BufferedImage image = new BufferedImage(WIDTH, HEIGHT, ++ BufferedImage.TYPE_INT_BGR); ++ Graphics2D g = image.createGraphics(); ++ ++ g.setColor(Color.BLACK); ++ g.fillRect(0, 0, WIDTH, HEIGHT); ++ ++ float wideStrokeWidth = 20.0f; ++ BasicStroke wideStroke = new BasicStroke(wideStrokeWidth, ++ BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, wideStrokeWidth); ++ float thinStrokeWidth = 3.0f; ++ BasicStroke thinStroke = new BasicStroke(thinStrokeWidth, ++ BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, thinStrokeWidth); ++ ++ g.setColor(Color.WHITE); ++ GeneralPath path = new GeneralPath(); ++ path.moveTo(x0, y0); ++ path.lineTo(x1, y1); ++ path.lineTo(x2, y2); ++ path.closePath(); ++ path.closePath(); ++ g.setStroke(thinStroke); ++ g.draw(wideStroke.createStrokedShape(path)); ++ ++ return image; ++ } ++ ++ public static void main(String[] args) { ++ ++ BufferedImage testImage = createTestImage(); ++ ++ int color = testImage.getRGB(x2,y2); ++ System.out.println("Color seen: #" + Integer.toHexString(color)); ++ if (color != Color.WHITE.getRGB()) { ++ throw new RuntimeException( ++ "Test Failed; expected to see a white vertex above the bottom of the triangle"); ++ } ++ ++ } ++} From omajid at redhat.com Wed Apr 29 14:00:43 2009 From: omajid at redhat.com (Omair Majid) Date: Wed, 29 Apr 2009 21:00:43 +0000 Subject: changeset in /hg/icedtea6: 2009-04-29 Omair Majid changeset 0cf247b95e6c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0cf247b95e6c description: 2009-04-29 Omair Majid * patches/icedtea-java2d-stroker-internal-close-joint.patch: New patch. Fix extra line when stroking the final miter joint created by GeneralPath.closePath(). * Makefile.am (ICEDTEA_PATCHES): Apply the above. * HACKING: Document the above. diffstat: 4 files changed, 106 insertions(+) ChangeLog | 8 + HACKING | 1 Makefile.am | 1 patches/icedtea-java2d-stroker-internal-close-joint.patch | 96 +++++++++++++ diffs (137 lines): diff -r 713678ee2064 -r 0cf247b95e6c ChangeLog --- a/ChangeLog Wed Apr 29 13:46:09 2009 -0400 +++ b/ChangeLog Wed Apr 29 14:09:02 2009 -0400 @@ -1,3 +1,11 @@ 2009-04-29 Omair Majid + + * patches/icedtea-java2d-stroker-internal-close-joint.patch: New patch. + Fix extra line when stroking the final miter joint created by + GeneralPath.closePath(). + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + * HACKING: Document the above. + 2009-04-29 Omair Majid * patches/icedtea-java2d-stroker-internal-joint.patch: New patch. Fixes diff -r 713678ee2064 -r 0cf247b95e6c HACKING --- a/HACKING Wed Apr 29 13:46:09 2009 -0400 +++ b/HACKING Wed Apr 29 14:09:02 2009 -0400 @@ -94,6 +94,7 @@ The following patches are currently appl * icedtea-ignore-unrecognized-options.patch: Add -XX:+IgnoreUnrecognizedVMOptions flag to hotspot (S6788376). * icedtea-java2d-mitre-join.patch: Backport fix for mitre join decoration (S6812600). * icedtea-java2d-stroker-internal-joint.patch: Fix penultimate joint created by GeneralPath.closePath(). +* icedtea-java2d-stroker-internal-close-joint.patch: Fix final joint created by GeneralPath.closePath(). The following patches are only applied to OpenJDK6 in IcedTea6: diff -r 713678ee2064 -r 0cf247b95e6c Makefile.am --- a/Makefile.am Wed Apr 29 13:46:09 2009 -0400 +++ b/Makefile.am Wed Apr 29 14:09:02 2009 -0400 @@ -679,6 +679,7 @@ ICEDTEA_PATCHES += \ patches/icedtea-dnd-filelists.patch \ patches/icedtea-java2d-mitre-join.patch \ patches/icedtea-java2d-stroker-internal-joint.patch \ + patches/icedtea-java2d-stroker-internal-close-joint.patch \ $(DISTRIBUTION_PATCHES) stamps/extract.stamp: stamps/download.stamp diff -r 713678ee2064 -r 0cf247b95e6c patches/icedtea-java2d-stroker-internal-close-joint.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-java2d-stroker-internal-close-joint.patch Wed Apr 29 14:09:02 2009 -0400 @@ -0,0 +1,96 @@ +--- openjdk/jdk/src/share/classes/sun/java2d/pisces/Stroker.java.orig 2009-04-29 14:01:43.000000000 -0400 ++++ openjdk/jdk/src/share/classes/sun/java2d/pisces/Stroker.java 2009-04-29 14:00:03.000000000 -0400 +@@ -633,7 +633,7 @@ + } + + emitLineTo(sx0 + mx0, sy0 + my0); +- emitLineTo(sx0 - mx0, sy0 - my0); // same as reverse[0], reverse[1] ++ emitMoveTo(sx0, sy0); // same as reverse[0], reverse[1] + + // Draw final join on the inside + if (ccw) { +--- /dev/null 2009-04-15 13:37:55.776002308 -0400 ++++ openjdk/jdk/test/sun/pisces/MiterInternalCloseJointTest.java 2009-04-29 13:59:31.000000000 -0400 +@@ -0,0 +1,82 @@ ++/* ++ * Copyright 2009 Red Hat, Inc. All Rights Reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ */ ++ ++/* ++ @test ++ @summary Check that the final joint created using ++ generalPath.closePath() is correct ++ @author Omair Majid ++ @run main MiterInternalCloseJointTest ++ */ ++import java.awt.BasicStroke; ++import java.awt.Color; ++import java.awt.Graphics2D; ++import java.awt.geom.GeneralPath; ++import java.awt.image.BufferedImage; ++ ++public class MiterInternalCloseJointTest { ++ ++ static final int WIDTH = 200; ++ static final int HEIGHT = 200; ++ ++ static final int x0 = 50, y0 = 50; ++ static final int x1 = 150, y1 = 50; ++ static final int x2 = 100, y2 = 100; ++ ++ private static BufferedImage createTestImage() { ++ final BufferedImage image = new BufferedImage(WIDTH, HEIGHT, ++ BufferedImage.TYPE_INT_BGR); ++ Graphics2D g = image.createGraphics(); ++ ++ g.setColor(Color.BLACK); ++ g.fillRect(0, 0, WIDTH, HEIGHT); ++ ++ float wideStrokeWidth = 20.0f; ++ BasicStroke wideStroke = new BasicStroke(wideStrokeWidth, ++ BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, wideStrokeWidth); ++ float thinStrokeWidth = 3.0f; ++ BasicStroke thinStroke = new BasicStroke(thinStrokeWidth, ++ BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, thinStrokeWidth); ++ ++ g.setColor(Color.WHITE); ++ GeneralPath path = new GeneralPath(); ++ path.moveTo(x0, y0); ++ path.lineTo(x1, y1); ++ path.lineTo(x2, y2); ++ path.closePath(); ++ path.closePath(); ++ g.setStroke(thinStroke); ++ g.draw(wideStroke.createStrokedShape(path)); ++ ++ return image; ++ } ++ ++ public static void main(String[] args) { ++ ++ BufferedImage testImage = createTestImage(); ++ ++ int color = testImage.getRGB(x0,y0-5); ++ System.out.println("Color seen: #" + Integer.toHexString(color)); ++ if (color == Color.WHITE.getRGB()) { ++ throw new RuntimeException( ++ "Test Failed; did not expected to see a white line at the start of the path"); ++ } ++ ++ } ++} From bugzilla-daemon at icedtea.classpath.org Thu Apr 30 00:29:32 2009 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 30 Apr 2009 07:29:32 +0000 Subject: [Bug 329] New: IcedTeaPlugin does not work at all in seamonkey 2.0b1pre Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=329 Summary: IcedTeaPlugin does not work at all in seamonkey 2.0b1pre Product: IcedTea Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea AssignedTo: unassigned at icedtea.classpath.org ReportedBy: tomi at nomi.cz In latest nightly builds of Seamonkey 2.0b1pre, IcedTeaPlugin does not work at all. More details in a report in their bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=488947 I'm filing it here because they thought you should look at this as well. The version of IcedTeaPlugin and OpenJDK I'm using is, as reported by Debian apt, 6b14-1.5~pre1-5. Thanks. -- 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 xerxes at zafena.se Thu Apr 30 02:36:42 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 30 Apr 2009 11:36:42 +0200 Subject: changeset in /hg/icedtea6: 2009-04-29 Matthias Klose References: Message-ID: <49F9712A.5000901@zafena.se> doko at ubuntu.com skrev: > changeset c7860ca7b19e in /hg/icedtea6 > details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c7860ca7b19e > description: > 2009-04-29 Matthias Klose > Xerxes Rnby > > * configure.am (LLVM_CFLAGS): Add SHARK_LLVM_VERSION. > * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp, > ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: New > methods getDlsymTable, SetDlsymTable, allocateSpace, dependent > on the llvm version. > Thank you Matthias for making a combined patch that makes shark build using several LLVM versions and committing it! I would also like to thank Robert Schuster who first found the solution to make Shark compatible with LLVM 2.5 by extending the sharkMemoryManager. I have attached a small fix for configure.ac to remove the "svn" suffix from the llvm-config version string, the "svn" suffix are present in the llvm-config -version output when using the llvm svn tree, like this: $ llvm-config --version 2.6svn I will keep pr300 open as the llvm svn JIT api are constantly changing and i will try keep shark compatible with the llvm svn tip. Thanks again for making it possible to file incremental to make shark compatible with the svn tip without breaking compatiblity with older llvm versions. http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=300 Cheers Xerxes * configure.am (LLVM_CFLAGS): Fix: remove LLVM svn suffix from SHARK_LLVM_VERSION if present. -------------- next part -------------- A non-text attachment was scrubbed... Name: shark_llvm_XXsvn.patch Type: text/x-patch Size: 710 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090430/2c3c29d4/shark_llvm_XXsvn.patch From gbenson at redhat.com Thu Apr 30 03:05:08 2009 From: gbenson at redhat.com (Gary Benson) Date: Thu, 30 Apr 2009 11:05:08 +0100 Subject: changeset in /hg/icedtea6: 2009-04-29 Matthias Klose References: <49F9712A.5000901@zafena.se> Message-ID: <20090430100507.GB3188@redhat.com> Xerxes R?nby wrote: > doko at ubuntu.com skrev: > > changeset c7860ca7b19e in /hg/icedtea6 > > details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c7860ca7b19e > > description: > > 2009-04-29 Matthias Klose > > Xerxes Rnby > > > > * configure.am (LLVM_CFLAGS): Add SHARK_LLVM_VERSION. > > * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp, > > ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: New > > methods getDlsymTable, SetDlsymTable, allocateSpace, dependent > > on the llvm version. > > Thank you Matthias for making a combined patch that makes shark > build using several LLVM versions and committing it! > > > I would also like to thank Robert Schuster who first found the > solution to make Shark compatible with LLVM 2.5 by extending the > sharkMemoryManager. > > I have attached a small fix for configure.ac to remove the "svn" > suffix from the llvm-config version string, the "svn" suffix are > present in the llvm-config -version output when using the llvm svn > tree, like this: > > $ llvm-config --version > 2.6svn > > I will keep pr300 open as the llvm svn JIT api are constantly > changing and i will try keep shark compatible with the llvm svn > tip. Thanks again for making it possible to file incremental to make > shark compatible with the svn tip without breaking compatiblity with > older llvm versions. > http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=300 Yes, thank you from me too! Cheers, Gary -- http://gbenson.net/ From xerxes at zafena.se Thu Apr 30 03:48:30 2009 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Thu, 30 Apr 2009 12:48:30 +0200 Subject: Some improvements needed on icedtea Java2D renderers. In-Reply-To: <49F5C4BB.40901@redhat.com> References: <49F59068.1030107@zafena.se> <49F5C4BB.40901@redhat.com> Message-ID: <49F981FE.2020606@zafena.se> Omair Majid skrev: > Hi Xerxes, > > Xerxes R?nby wrote: >> Hello, during bug testing of icedtea6 on various embedded and >> stationary hardware i have stumbled across some rendering issues of >> java2d when running under icedtea6. > > What version of icedtea6 are you using? > The pictures in my last mail with the pink issue boxes was made using the installed java on my Linux Mint machine based on ubuntu intrepid: java version "1.6.0_0" IcedTea6 1.3.1 (6b12-0ubuntu6.4) Runtime Environment (build 1.6.0_0-b12) OpenJDK Server VM (build 1.6.0_0-b12, mixed mode) Sorry for reporting bugs that had been fixed in the hg, i really thought i had generated the picture using at least 1.4.1. I have attached a new picture how it all looks now when running Shark in interpreted mode using the icedtea hg tip, I had to make the pictures running with -Xint because i have not yet found the fix for pr324 that prevents the shark JIT to compile the whole testcase. http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=324 java version "1.6.0_0" OpenJDK Runtime Environment (IcedTea6 1.5pre-r0cf247b95e6c) (build 1.6.0_0-b16) OpenJDK Shark VM (build 14.0-b10-product, mixed mode) The only visible issues left that i can see now using this shark version are issue 1 and 2: >> 1. When the window are refreshed, the component borders gets redrawn >> with a mix of soft and sharp borders. This issue can be seen clearly at the borders of the Arcs_Curves tab on the attached picture. >> >> 2. The rendering of the black box have been requested to be rendererd >> using a dotted CAP_ROUND BasicStroke: it should be dotted! >> BasicStroke dotted = new BasicStroke(3, BasicStroke.CAP_ROUND, >> BasicStroke.JOIN_ROUND, 0, new float[]{0,6,0,6}, 0); >> g2.setStroke(dotted); >> g2.drawRect(3,3,w-6,h-6); > The other issue is the difference in how a length of 0 is treated by > the jdk. The comment in > icedtea6/openjdk/jdk/src/share/classes/sun/java2d/pisces/Dasher.java > line 34 points out the issue: > * > *

Issues: in J2Se, a zero length dash segment as drawn as a very > * short dash, whereas Pisces does not draw anything. The PostScript > * semantics are unclear. > * > So the above code in JSE would draw a dashed border but icedtea6 would > draw a blank border. "new float[]{0.01,6,0.01,6}" should work. > I agree it are unclear how this should be fixed. Thank you for insight into the complexity of the zero sized dach. Issue 3 with the reversed spaces/dach as you had pointed out had already been fixed in the mercurial hg, thank you. >> 4. The panel are not resized properly to fit the slider component. > Looks like the components above are taking up too much vertical space. > This looks like bug 255 [3]. I have not been able to reproduce this > locally. Any help reproducing this is appreciated. Fixed for me as well using the mercurial icedtea6 build! looks ok, perhaps the panel are now slightly larger than the container, it hides the bottom border yet this could be a examplecode error. >> >> 5. and 6. The last two issues are related. the specified joinType >> are not applyed to lines that gets inserted using closePath. >> public void drawDemo(int w, int h, Graphics2D g2) { >> BasicStroke bs = new BasicStroke(bswidth, >> BasicStroke.CAP_BUTT, joinType); >> GeneralPath p = new GeneralPath(); >> p.moveTo(- w / 4.0f, - h / 12.0f); >> p.lineTo(+ w / 4.0f, - h / 12.0f); >> p.lineTo(- w / 6.0f, + h / 4.0f); >> p.lineTo(+ 0.0f, - h / 4.0f); >> p.lineTo(+ w / 6.0f, + h / 4.0f); >> p.closePath(); >> // <----- issue 6: this should have create a correct join. >> instead a round join are allways used. >> p.closePath(); >> // <----- issue 5: this should have create a correct join. the >> rendering of the start line should >> >> // have been updated when the second closepath was >> instructed. Like you i cant really understand the second p.closePath() in the example code, the more I look at it and the the more I compare sun jdk and icedtea only indicate that it are not doing anything at all! Your recent closePath fixes for issue 5 and 6 worked like a charm for me, thank you Omair it simply looks great! >> g2.translate(w/2, h/2); >> g2.setColor(Color.black); >> g2.draw(bs.createStrokedShape(p)); >> } >> >> > > Cheers, > Omair > [3] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=255 Cheers and have a great day! Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: sharkXintIssue1and2Left-Java2Demo.png Type: image/png Size: 61139 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090430/86058adf/sharkXintIssue1and2Left-Java2Demo.png From doko at ubuntu.com Thu Apr 30 05:41:31 2009 From: doko at ubuntu.com (doko at ubuntu.com) Date: Thu, 30 Apr 2009 12:41:31 +0000 Subject: changeset in /hg/icedtea6: 2009-04-30 Matthias Klose changeset d65e58dcaed5 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d65e58dcaed5 description: 2009-04-30 Matthias Klose * Makefile.am (ICEDTEA_ENV, ICEDTEA_ENV_ECJ): Allow passing as environment. diffstat: 2 files changed, 96 insertions(+), 92 deletions(-) ChangeLog | 5 + Makefile.am | 183 +++++++++++++++++++++++++++++------------------------------ diffs (238 lines): diff -r 0cf247b95e6c -r d65e58dcaed5 ChangeLog --- a/ChangeLog Wed Apr 29 14:09:02 2009 -0400 +++ b/ChangeLog Thu Apr 30 14:37:12 2009 +0200 @@ -1,3 +1,8 @@ 2009-04-29 Omair Majid + + * Makefile.am (ICEDTEA_ENV, ICEDTEA_ENV_ECJ): Allow passing + as environment. + 2009-04-29 Omair Majid * patches/icedtea-java2d-stroker-internal-close-joint.patch: New patch. diff -r 0cf247b95e6c -r d65e58dcaed5 Makefile.am --- a/Makefile.am Wed Apr 29 14:09:02 2009 -0400 +++ b/Makefile.am Thu Apr 30 14:37:12 2009 +0200 @@ -136,64 +136,64 @@ else ICEDTEA_SHARK_BUILD = endif ICEDTEA_ENV = \ - "ALT_JDK_IMPORT_PATH=$(ICEDTEA_BOOT_DIR)" \ - "ANT_HOME=$(SYSTEM_ANT_DIR)" \ - "BUILD_NUMBER=$(OPENJDK_VERSION)" \ - "JDK_UPDATE_VERSION=$(JDK_UPDATE_VERSION)" \ - "JRE_RELEASE_VERSION=1.6.0_$(COMBINED_VERSION)" \ - "MILESTONE=fcs" \ - "LANG=C" \ - "PATH=$(abs_top_builddir)/bootstrap/jdk1.6.0/bin:$(OS_PATH):$$PATH" \ - "ALT_BOOTDIR=$(ICEDTEA_BOOT_DIR)" \ - "ALT_BINARY_PLUGS_PATH=$(abs_top_builddir)/bootstrap/jdk1.7.0" \ - "BUILD_ARCH_DIR=$(BUILD_ARCH_DIR)" \ - "ICEDTEA_RT=$(ICEDTEA_RT)" \ - "ICEDTEA_BUILD_DIR=$(ICEDTEA_BUILD_DIR)" \ - "ICEDTEA_CLS_DIR=$(ICEDTEA_CLS_DIR)" \ - "ICEDTEA_ENDORSED_DIR=$(ICEDTEA_ENDORSED_DIR)" \ - "ENDORSED=-Djava.endorsed.dirs=$(ICEDTEA_ENDORSED_DIR)" \ - "CLASSPATH=" \ - "LD_LIBRARY_PATH=" \ - "ICEDTEA_CORE_BUILD=$(ICEDTEA_CORE_BUILD)" \ - "ICEDTEA_ZERO_BUILD=$(ICEDTEA_ZERO_BUILD)" \ - "ICEDTEA_SHARK_BUILD=$(ICEDTEA_SHARK_BUILD)" \ - "ZERO_LIBARCH=$(ZERO_LIBARCH)" \ - "ZERO_BITSPERWORD=$(ZERO_BITSPERWORD)" \ - "ZERO_ENDIANNESS=$(ZERO_ENDIANNESS)" \ - "ZERO_ARCHDEF=$(ZERO_ARCHDEF)" \ - "ZERO_ARCHFLAG=$(ZERO_ARCHFLAG)" \ - "LIBFFI_CFLAGS=$(LIBFFI_CFLAGS)" \ - "LIBFFI_LIBS=$(LIBFFI_LIBS)" \ - "LLVM_CFLAGS=$(LLVM_CFLAGS)" \ - "LLVM_LDFLAGS=$(LLVM_LDFLAGS)" \ - "LLVM_LIBS=$(LLVM_LIBS)" \ - "FREETYPE2_HEADERS=$(FREETYPE2_CFLAGS)" \ - "FT2_LIB=$(FREETYPE2_LIBS)" \ - "ALT_PARALLEL_COMPILE_JOBS=$(PARALLEL_JOBS)" \ - "HOTSPOT_BUILD_JOBS=$(PARALLEL_JOBS)" \ - "JAVAC=" \ - "RHINO_JAR=$(RHINO_JAR)" \ - "DISTRIBUTION_ID=$(DIST_ID)" + ALT_JDK_IMPORT_PATH="$(ICEDTEA_BOOT_DIR)" \ + ANT_HOME="$(SYSTEM_ANT_DIR)" \ + BUILD_NUMBER="$(OPENJDK_VERSION)" \ + JDK_UPDATE_VERSION="$(JDK_UPDATE_VERSION)" \ + JRE_RELEASE_VERSION="1.6.0_$(COMBINED_VERSION)" \ + MILESTONE="fcs" \ + LANG="C" \ + PATH="$(abs_top_builddir)/bootstrap/jdk1.6.0/bin:$(OS_PATH):$$PATH" \ + ALT_BOOTDIR="$(ICEDTEA_BOOT_DIR)" \ + ALT_BINARY_PLUGS_PATH="$(abs_top_builddir)/bootstrap/jdk1.7.0" \ + BUILD_ARCH_DIR="$(BUILD_ARCH_DIR)" \ + ICEDTEA_RT="$(ICEDTEA_RT)" \ + ICEDTEA_BUILD_DIR="$(ICEDTEA_BUILD_DIR)" \ + ICEDTEA_CLS_DIR="$(ICEDTEA_CLS_DIR)" \ + ICEDTEA_ENDORSED_DIR="$(ICEDTEA_ENDORSED_DIR)" \ + ENDORSED="-Djava.endorsed.dirs=$(ICEDTEA_ENDORSED_DIR)" \ + CLASSPATH="" \ + LD_LIBRARY_PATH="" \ + ICEDTEA_CORE_BUILD="$(ICEDTEA_CORE_BUILD)" \ + ICEDTEA_ZERO_BUILD="$(ICEDTEA_ZERO_BUILD)" \ + ICEDTEA_SHARK_BUILD="$(ICEDTEA_SHARK_BUILD)" \ + ZERO_LIBARCH="$(ZERO_LIBARCH)" \ + ZERO_BITSPERWORD="$(ZERO_BITSPERWORD)" \ + ZERO_ENDIANNESS="$(ZERO_ENDIANNESS)" \ + ZERO_ARCHDEF="$(ZERO_ARCHDEF)" \ + ZERO_ARCHFLAG="$(ZERO_ARCHFLAG)" \ + LIBFFI_CFLAGS="$(LIBFFI_CFLAGS)" \ + LIBFFI_LIBS="$(LIBFFI_LIBS)" \ + LLVM_CFLAGS="$(LLVM_CFLAGS)" \ + LLVM_LDFLAGS="$(LLVM_LDFLAGS)" \ + LLVM_LIBS="$(LLVM_LIBS)" \ + FREETYPE2_HEADERS="$(FREETYPE2_CFLAGS)" \ + FT2_LIB="$(FREETYPE2_LIBS)" \ + ALT_PARALLEL_COMPILE_JOBS="$(PARALLEL_JOBS)" \ + HOTSPOT_BUILD_JOBS="$(PARALLEL_JOBS)" \ + JAVAC="" \ + RHINO_JAR="$(RHINO_JAR)" \ + DISTRIBUTION_ID="$(DIST_ID)" if WITH_CACAO ICEDTEA_ENV += \ - "ALT_HOTSPOT_IMPORT_PATH=$(CACAO_IMPORT_PATH)" + ALT_HOTSPOT_IMPORT_PATH="$(CACAO_IMPORT_PATH)" endif if !ENABLE_OPTIMIZATIONS ICEDTEA_ENV += \ - "NO_OPTIMIZATIONS=true" \ - "CC_NO_OPT=-O0 -g" + NO_OPTIMIZATIONS="true" \ + CC_NO_OPT="-O0 -g" endif if !ENABLE_DOCS ICEDTEA_ENV += \ - "NO_DOCS=true" + NO_DOCS="true" endif if USE_ALT_JAR ICEDTEA_ENV += \ - "ALT_JAR_CMD=$(ALT_JAR_CMD)" + ALT_JAR_CMD="$(ALT_JAR_CMD)" endif env: @@ -206,66 +206,65 @@ ICEDTEA_CLS_DIR_ECJ = \ ICEDTEA_CLS_DIR_ECJ = \ $(abs_top_builddir)/$(ECJ_BUILD_OUTPUT_DIR)/classes ICEDTEA_ENV_ECJ = \ - "ALT_JDK_IMPORT_PATH=$(ICEDTEA_BOOT_DIR)" \ - "ANT_HOME=$(SYSTEM_ANT_DIR)" \ - "BUILD_NUMBER=$(OPENJDK_VERSION)" \ - "JDK_UPDATE_VERSION=$(JDK_UPDATE_VERSION)" \ - "JRE_RELEASE_VERSION=1.6.0_$(COMBINED_VERSION)" \ - "MILESTONE=fcs" \ - "LANG=C" \ - "PATH=$(abs_top_builddir)/bootstrap/jdk1.6.0/bin:$(OS_PATH):$$PATH" \ - "ALT_BOOTDIR=$(ICEDTEA_BOOT_DIR)" \ - "ALT_BINARY_PLUGS_PATH=$(abs_top_builddir)/bootstrap/jdk1.7.0" \ - "BUILD_ARCH_DIR=$(BUILD_ARCH_DIR)" \ - "ICEDTEA_RT=$(ICEDTEA_RT)" \ - "ICEDTEA_BUILD_DIR=$(ICEDTEA_BUILD_DIR_ECJ)" \ - "ICEDTEA_CLS_DIR=$(ICEDTEA_CLS_DIR_ECJ)" \ - "ICEDTEA_ENDORSED_DIR=$(ICEDTEA_ENDORSED_DIR)" \ - "ENDORSED=-Djava.endorsed.dirs=$(ICEDTEA_ENDORSED_DIR)" \ - "BOOTCLASSPATH_CLS_RT=-bootclasspath \ - $(ICEDTEA_CLS_DIR_ECJ):$(ICEDTEA_RT)" \ - "BOOTCLASSPATH_CLS=-bootclasspath $(ICEDTEA_CLS_DIR_ECJ)" \ - "BOOTCLASSPATH_RT_LIBGCJ=-bootclasspath $(ICEDTEA_RT):$(SYSTEM_GCJ_DIR)/jre/lib/rt.jar" \ - "CLASSPATH=" \ - "LD_LIBRARY_PATH=" \ - "GENSRCDIR=$(abs_top_builddir)/generated" \ - "ICEDTEA_CORE_BUILD=$(ICEDTEA_CORE_BUILD)" \ - "ICEDTEA_ZERO_BUILD=$(ICEDTEA_ZERO_BUILD)" \ - "ICEDTEA_SHARK_BUILD=$(ICEDTEA_SHARK_BUILD)" \ - "ZERO_LIBARCH=$(ZERO_LIBARCH)" \ - "ZERO_BITSPERWORD=$(ZERO_BITSPERWORD)" \ - "ZERO_ENDIANNESS=$(ZERO_ENDIANNESS)" \ - "ZERO_ARCHDEF=$(ZERO_ARCHDEF)" \ - "ZERO_ARCHFLAG=$(ZERO_ARCHFLAG)" \ - "LIBFFI_CFLAGS=$(LIBFFI_CFLAGS)" \ - "LIBFFI_LIBS=$(LIBFFI_LIBS)" \ - "LLVM_CFLAGS=$(LLVM_CFLAGS)" \ - "LLVM_LDFLAGS=$(LLVM_LDFLAGS)" \ - "LLVM_LIBS=$(LLVM_LIBS)" \ - "FREETYPE2_HEADERS=$(FREETYPE2_CFLAGS)" \ - "FT2_LIB=$(FREETYPE2_LIBS)" \ - "ALT_PARALLEL_COMPILE_JOBS=$(PARALLEL_JOBS)" \ - "HOTSPOT_BUILD_JOBS=$(PARALLEL_JOBS)" \ - "JAVAC=" \ - "RHINO_JAR=$(RHINO_JAR)" \ - "JAR_KNOWS_ATFILE=$(JAR_KNOWS_ATFILE)" \ - "JAR_KNOWS_J_OPTIONS=$(JAR_KNOWS_J_OPTIONS)" \ - "JAR_ACCEPTS_STDIN_LIST=$(JAR_ACCEPTS_STDIN_LIST)" + ALT_JDK_IMPORT_PATH="$(ICEDTEA_BOOT_DIR)" \ + ANT_HOME="$(SYSTEM_ANT_DIR)" \ + BUILD_NUMBER="$(OPENJDK_VERSION)" \ + JDK_UPDATE_VERSION="$(JDK_UPDATE_VERSION)" \ + JRE_RELEASE_VERSION="1.6.0_$(COMBINED_VERSION)" \ + MILESTONE="fcs" \ + LANG=C"" \ + PATH="$(abs_top_builddir)/bootstrap/jdk1.6.0/bin:$(OS_PATH):$$PATH" \ + ALT_BOOTDIR="$(ICEDTEA_BOOT_DIR)" \ + ALT_BINARY_PLUGS_PATH="$(abs_top_builddir)/bootstrap/jdk1.7.0" \ + BUILD_ARCH_DIR="$(BUILD_ARCH_DIR)" \ + ICEDTEA_RT="$(ICEDTEA_RT)" \ + ICEDTEA_BUILD_DIR="$(ICEDTEA_BUILD_DIR_ECJ)" \ + ICEDTEA_CLS_DIR="$(ICEDTEA_CLS_DIR_ECJ)" \ + ICEDTEA_ENDORSED_DIR="$(ICEDTEA_ENDORSED_DIR)" \ + ENDORSED="-Djava.endorsed.dirs=$(ICEDTEA_ENDORSED_DIR)" \ + BOOTCLASSPATH_CLS_RT="-bootclasspath $(ICEDTEA_CLS_DIR_ECJ):$(ICEDTEA_RT)" \ + BOOTCLASSPATH_CLS="-bootclasspath $(ICEDTEA_CLS_DIR_ECJ)" \ + BOOTCLASSPATH_RT_LIBGCJ="-bootclasspath $(ICEDTEA_RT):$(SYSTEM_GCJ_DIR)/jre/lib/rt.jar" \ + CLASSPATH="" \ + LD_LIBRARY_PATH="" \ + GENSRCDIR="$(abs_top_builddir)/generated" \ + ICEDTEA_CORE_BUILD="$(ICEDTEA_CORE_BUILD)" \ + ICEDTEA_ZERO_BUILD="$(ICEDTEA_ZERO_BUILD)" \ + ICEDTEA_SHARK_BUILD="$(ICEDTEA_SHARK_BUILD)" \ + ZERO_LIBARCH="$(ZERO_LIBARCH)" \ + ZERO_BITSPERWORD="$(ZERO_BITSPERWORD)" \ + ZERO_ENDIANNESS="$(ZERO_ENDIANNESS)" \ + ZERO_ARCHDEF="$(ZERO_ARCHDEF)" \ + ZERO_ARCHFLAG="$(ZERO_ARCHFLAG)" \ + LIBFFI_CFLAGS="$(LIBFFI_CFLAGS)" \ + LIBFFI_LIBS="$(LIBFFI_LIBS)" \ + LLVM_CFLAGS="$(LLVM_CFLAGS)" \ + LLVM_LDFLAGS="$(LLVM_LDFLAGS)" \ + LLVM_LIBS="$(LLVM_LIBS)" \ + FREETYPE2_HEADERS="$(FREETYPE2_CFLAGS)" \ + FT2_LIB="$(FREETYPE2_LIBS)" \ + ALT_PARALLEL_COMPILE_JOBS="$(PARALLEL_JOBS)" \ + HOTSPOT_BUILD_JOBS="$(PARALLEL_JOBS)" \ + JAVAC="" \ + RHINO_JAR="$(RHINO_JAR)" \ + JAR_KNOWS_ATFILE="$(JAR_KNOWS_ATFILE)" \ + JAR_KNOWS_J_OPTIONS="$(JAR_KNOWS_J_OPTIONS)" \ + JAR_ACCEPTS_STDIN_LIST="$(JAR_ACCEPTS_STDIN_LIST)" if WITH_CACAO ICEDTEA_ENV_ECJ += \ - "ALT_HOTSPOT_IMPORT_PATH=$(CACAO_IMPORT_PATH)" + ALT_HOTSPOT_IMPORT_PATH="$(CACAO_IMPORT_PATH)" endif if !ENABLE_OPTIMIZATIONS ICEDTEA_ENV_ECJ += \ - "NO_OPTIMIZATIONS=true" \ - "CC_NO_OPT=-O0 -g" + NO_OPTIMIZATIONS="true" \ + CC_NO_OPT="-O0 -g" endif if !ENABLE_DOCS ICEDTEA_ENV_ECJ += \ - "NO_DOCS=true" + NO_DOCS="true" endif env-ecj: From doko at ubuntu.com Thu Apr 30 06:46:28 2009 From: doko at ubuntu.com (Matthias Klose) Date: Thu, 30 Apr 2009 15:46:28 +0200 Subject: Add option --with-additional-vms, build once, get them all Message-ID: <49F9ABB4.8090101@ubuntu.com> The attached patch adds a configure option --with-additional-vms, which allows passing of --with-additional-vms=cacao,shark to build two additional vm's on an architecture where hotspot is the default. Allowed values are cacao, shark and zero. Shark is not a separate build, but the zero build configured for shark. The VM's can then be used with `java -cacao', or `java -zero'. - cacao is just built in a separate build directory, without touching the main build. - zero/shark is built by calling the icedtea configure again, and then just building the hotspot configured for zero. The patch doesn't touch the regular build, so it should be safe to apply, but I would be happy if somebody could test it. Matthias PS: Requires cacao-0.99.4, will update this in a separate patch. -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: add-vms.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090430/65601c40/add-vms.diff From doko at ubuntu.com Thu Apr 30 07:08:55 2009 From: doko at ubuntu.com (doko at ubuntu.com) Date: Thu, 30 Apr 2009 14:08:55 +0000 Subject: changeset in /hg/icedtea6: 2009-04-30 Matthias Klose changeset 4e5fd2efe6af in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=4e5fd2efe6af description: 2009-04-30 Matthias Klose * Makefile.am: Update cacao version to 0.99.4. diffstat: 2 files changed, 6 insertions(+), 2 deletions(-) ChangeLog | 4 ++++ Makefile.am | 4 ++-- diffs (25 lines): diff -r d65e58dcaed5 -r 4e5fd2efe6af ChangeLog --- a/ChangeLog Thu Apr 30 14:37:12 2009 +0200 +++ b/ChangeLog Thu Apr 30 16:04:37 2009 +0200 @@ -1,3 +1,7 @@ 2009-04-30 Matthias Klose + + * Makefile.am: Update cacao version to 0.99.4. + 2009-04-30 Matthias Klose * Makefile.am (ICEDTEA_ENV, ICEDTEA_ENV_ECJ): Allow passing diff -r d65e58dcaed5 -r 4e5fd2efe6af Makefile.am --- a/Makefile.am Thu Apr 30 14:37:12 2009 +0200 +++ b/Makefile.am Thu Apr 30 16:04:37 2009 +0200 @@ -2,8 +2,8 @@ OPENJDK_MD5SUM = d395b4d4ac8b2aff70730b9 OPENJDK_MD5SUM = d395b4d4ac8b2aff70730b953f9e2736 OPENJDK_VERSION = b16 -CACAO_VERSION = 0.99.3 -CACAO_MD5SUM = 80de3ad344c1a20c086ec5f1390bd1b8 +CACAO_VERSION = 0.99.4 +CACAO_MD5SUM = c5e6525c5212ddbb6026e4a7cde37ca6 NETBEANS_PROFILER_MD5SUM = a6756a62291ebea5c0e2431389b31380 VISUALVM_MD5SUM = a289739f4a5bcdb9a2c642cfcc1e83fe From gnu_andrew at member.fsf.org Thu Apr 30 08:07:06 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 30 Apr 2009 16:07:06 +0100 Subject: Add option --with-additional-vms, build once, get them all In-Reply-To: <49F9ABB4.8090101@ubuntu.com> References: <49F9ABB4.8090101@ubuntu.com> Message-ID: <17c6771e0904300807s169a6a4dgb40ea2145be05fb2@mail.gmail.com> 2009/4/30 Matthias Klose : > The attached patch adds a configure option --with-additional-vms, which allows > passing of --with-additional-vms=cacao,shark to build two additional vm's on an > architecture where hotspot is the default. Allowed values are cacao, shark and > zero. Shark is not a separate build, but the zero build configured for shark. > > The VM's can then be used with `java -cacao', or `java -zero'. > > - cacao is just built in a separate build directory, without touching the > ?main build. > > - zero/shark is built by calling the icedtea configure again, and then just > ?building the hotspot configured for zero. > > The patch doesn't touch the regular build, so it should be safe to apply, but I > would be happy if somebody could test it. > > ?Matthias > > PS: Requires cacao-0.99.4, will update this in a separate patch. > > > > ? ? ? ?* patches/icedtea-cacao.patch: Create new thread depending on the > ? ? ? ?current VM. > ? ? ? ?* Makefile.am (ICEDTEA_PATCHES): Apply unconditionally. > ? ? ? ?(icedtea-against-icedtea): Add dependencies on stamps/add-cacao.stamp, > ? ? ? ?stamps/add-zero.stamp. > ? ? ? ?(icedtea-debug-against-icedtea): Add dependencies on > ? ? ? ?stamps/add-cacao-debug.stamp, stamps/add-zero-debug.stamp. > ? ? ? ?(stamps/add-{cacao,zero}{,-debug}.stamp: New. > ? ? ? ?* configure.ac: New option --with-additional-vms=. > > diff -r d65e58dcaed5 Makefile.am > --- a/Makefile.am ? ? ? Thu Apr 30 14:37:12 2009 +0200 > +++ b/Makefile.am ? ? ? Thu Apr 30 15:27:47 2009 +0200 > @@ -428,6 +428,9 @@ > ?if WITH_CACAO > ? ? ? ?rm -f $(CACAO_SRC_ZIP) > ?endif > +if ADD_CACAO_BUILD > + ? ? ? rm -f $(CACAO_SRC_ZIP) > +endif > ?if WITH_VISUALVM > ? ? ? ?rm -f $(VISUALVM_SRC_ZIP) > ? ? ? ?rm -f $(NETBEANS_PROFILER_SRC_ZIP) > @@ -633,9 +636,10 @@ > ? ? ? ?patches/icedtea-rhino.patch > ?endif > > +ICEDTEA_PATCHES += \ > + ? ? ? patches/icedtea-cacao.patch > ?if WITH_CACAO > ?ICEDTEA_PATCHES += \ > - ? ? ? patches/icedtea-cacao.patch \ > ? ? ? ?patches/icedtea-cacao-ignore-jdi-tests.patch \ > ? ? ? ?patches/icedtea-cacao-ignore-tests.patch > ?endif > @@ -1259,11 +1263,15 @@ > > ?icedtea-against-icedtea: \ > ? ? ? ?stamps/bootstrap-directory-symlink.stamp \ > - ? ? ? stamps/icedtea.stamp > + ? ? ? stamps/icedtea.stamp \ > + ? ? ? stamps/add-cacao.stamp \ > + ? ? ? stamps/add-zero.stamp > > ?icedtea-debug-against-icedtea: \ > ? ? ? ?stamps/bootstrap-directory-symlink.stamp \ > - ? ? ? stamps/icedtea-debug.stamp > + ? ? ? stamps/icedtea-debug.stamp \ > + ? ? ? stamps/add-cacao-debug.stamp \ > + ? ? ? stamps/add-zero-debug.stamp > > ?# OpenJDK ecj Targets > ?# =================== > @@ -1719,6 +1727,129 @@ > > ?# end of pulse-java > > +# targets for additional VMs > + > +BUILD_JRE_ARCH_DIR = $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) > +BUILD_DEBUG_JRE_ARCH_DIR = $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) > + > +stamps/add-cacao.stamp: stamps/icedtea.stamp > +if ADD_CACAO_BUILD > +if USE_ALT_CACAO_SRC_ZIP > +else > + ? ? ? if ! echo "$(CACAO_MD5SUM) ?$(CACAO_SRC_ZIP)" \ > + ? ? ? ?| $(MD5SUM) --check ; \ > + ? ? ? then \ > + ? ? ? ?if [ $(CACAO_SRC_ZIP) ] ; \ > + ? ? ? ?then \ > + ? ? ? ? ?mv $(CACAO_SRC_ZIP) $(CACAO_SRC_ZIP).old ; \ > + ? ? ? ?fi ; \ > + ? ? ? ?$(WGET) $(CACAO_URL)$(CACAO_SRC_ZIP) -O $(CACAO_SRC_ZIP); \ > + ? ? ? fi > +endif > + ? ? ? if ! test -d cacao ; \ > + ? ? ? then \ > + ? ? ? ? mkdir cacao ; \ > + ? ? ? ? $(TAR) xf $(CACAO_SRC_ZIP) -C cacao ; \ > + ? ? ? ? dir=$$(basename cacao/cacao-*) ; \ > + ? ? ? ? ln -s $$dir cacao/cacao ; \ > + ? ? ? fi > + > + ? ? ? cd cacao/cacao && \ > + ? ? ? $(ARCH_PREFIX) ./configure \ > + ? ? ? ? --host=$(host_alias) \ > + ? ? ? ? --build=$(build_alias) \ > + ? ? ? ? --target=$(target_alias) \ > + ? ? ? ? --prefix=$(abs_top_builddir)/cacao/install \ > + ? ? ? ? --with-java-runtime-library=openjdk \ > + ? ? ? ? --with-java-runtime-library-prefix=$(abs_top_builddir)/openjdk \ > + ? ? ? ? --with-java-runtime-library-classes=$(abs_top_builddir)/lib/rt \ > + ? ? ? ? --enable-jre-layout $(CACAO_CONFIGURE_ARGS); \ > + ? ? ? $(ARCH_PREFIX) $(MAKE) install > + > + ? ? ? mkdir -p $(BUILD_JRE_ARCH_DIR)/cacao > + ? ? ? install -m 644 cacao/install/lib/libjvm.so \ > + ? ? ? ? ? ? ? $(BUILD_JRE_ARCH_DIR)/cacao/ > + ? ? ? install -m 644 cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/server/libjsig.so \ > + ? ? ? ? ? ? ? $(BUILD_JRE_ARCH_DIR)/cacao/ > + ? ? ? install -m 644 cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/server/Xusage.txt \ > + ? ? ? ? ? ? ? $(BUILD_JRE_ARCH_DIR)/cacao/ > + ? ? ? grep -q -- '^-cacao KNOWN' ?$(BUILD_JRE_ARCH_DIR)/jvm.cfg \ > + ? ? ? ? ? ? ? || printf -- '-cacao KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg > +endif > + ? ? ? touch $@ > + > +# configure script arguments, quoted in single quotes > +CONFIGURE_ARGS = @CONFIGURE_ARGS@ > +ADD_ZERO_CONFIGURE_ARGS = \ > + ? ? ? --with-openjdk \ > + ? ? ? --with-openjdk-home=$(abs_top_builddir)/$(BUILD_OUTPUT_DIR)/j2sdk-image \ > + ? ? ? --enable-zero > +if ADD_SHARK_BUILD > +ADD_ZERO_CONFIGURE_ARGS += \ > + ? ? ? --enable-shark > +endif > +ADD_ZERO_CONFIGURE_ARGS += \ > + ? ? ? --disable-docs \ > + ? ? ? $(filter-out '--with-gcj-home=% '--with-ecj=% \ > + ? ? ? ? ? ? ? ? ? ? ? '--with-java=% '--with-javah=% \ > + ? ? ? ? ? ? ? ? ? ? ? '--with-rmic=% '--with-additional-vms=% \ > + ? ? ? ? ? ? ? ? ? ? ? '--with-icedtea '--with-icedtea-home=% \ > + ? ? ? ? ? ? ? ? ? ? ? '--with-openjdk '--with-openjdk-home=% , \ > + ? ? ? ? ? ? ? $(CONFIGURE_ARGS)) > + > +ADD_ZERO_EXTRA_BUILD_ENV = \ > + ? ? ? BUILD_LANGTOOLS=false ALT_LANGTOOLS_DIST=$(ICEDTEA_BUILD_DIR)/langtools/dist \ > + ? ? ? BUILD_JAXP=false ? ? ?ALT_JAXP_DIST=$(ICEDTEA_BUILD_DIR)/jaxp/dist \ > + ? ? ? BUILD_JAXWS=false ? ? ALT_JAXWS_DIST=$(ICEDTEA_BUILD_DIR)/jaxws/dist \ > + ? ? ? BUILD_CORBA=false ? ? ALT_CORBA_DIST=$(ICEDTEA_BUILD_DIR)/corba/dist \ > + ? ? ? BUILD_JDK=false > + > +stamps/add-zero.stamp: stamps/icedtea.stamp > +if ADD_ZERO_BUILD > + ? ? ? mkdir -p zerovm > + > + ? ? ? for v in $(ICEDTEA_ENV); do case $$v in PATH=*) ;; *) unset $${v%%=*}; esac; done; \ > + ? ? ? cd zerovm && \ > + ? ? ? ? ? $(ADD_ZERO_EXTRA_BUILD_ENV) \ > + ? ? ? ? ? ? ? $(ARCH_PREFIX) $(abs_top_srcdir)/configure $(ADD_ZERO_CONFIGURE_ARGS) > + > + ? ? ? for v in $(ICEDTEA_ENV); do case $$v in PATH=*) ;; *) unset $${v%%=*}; esac; done; \ > + ? ? ? $(ADD_ZERO_EXTRA_BUILD_ENV) \ > + ? ? ? ? ? ? ? $(ARCH_PREFIX) $(MAKE) -C zerovm $(ICEDTEA_BUILD_TARGET) > + > + ? ? ? mkdir -p $(BUILD_JRE_ARCH_DIR)/zero > + ? ? ? cp -a zerovm/openjdk/build/$(OS_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \ > + ? ? ? ? ? ? ? $(BUILD_JRE_ARCH_DIR)/zero/ > + ? ? ? grep -q -- '^-zero KNOWN' ?$(BUILD_JRE_ARCH_DIR)/jvm.cfg \ > + ? ? ? ? || printf -- '-zero KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg > +endif > + ? ? ? touch $@ > + > +stamps/add-cacao-debug.stamp: stamps/icedtea-debug.stamp > + > +stamps/add-zero-debug.stamp: stamps/icedtea-debug.stamp > +if ADD_ZERO_BUILD > + ? ? ? mkdir -p zerovm > + > + ? ? ? for v in $(ICEDTEA_ENV); do case $$v in PATH=*) ;; *) unset $${v%%=*}; esac; done; \ > + ? ? ? cd zerovm && \ > + ? ? ? ? ? $(ADD_ZERO_EXTRA_BUILD_ENV) \ > + ? ? ? ? ? ? ? $(ARCH_PREFIX) $(abs_top_srcdir)/configure $(ADD_ZERO_CONFIGURE_ARGS) > + > + ? ? ? for v in $(ICEDTEA_ENV); do case $$v in PATH=*) ;; *) unset $${v%%=*}; esac; done; \ > + ? ? ? $(ADD_ZERO_EXTRA_BUILD_ENV) \ > + ? ? ? ? ? ? ? $(ARCH_PREFIX) $(MAKE) -C zerovm $(ICEDTEA_DEBUG_BUILD_TARGET) > + > + ? ? ? mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/zero > + ? ? ? cp -a zerovm/openjdk/build/$(OS_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \ > + ? ? ? ? ? ? ? $(BUILD_DEBUG_JRE_ARCH_DIR)/zero/ > + ? ? ? grep -q -- '^-zero KNOWN' ?$(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg \ > + ? ? ? ? || printf -- '-zero KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg > +endif > + ? ? ? touch $@ > + > +# end additional VMs > + > ?# jtreg > > ?stamps/jtreg.stamp: stamps/icedtea.stamp > diff -r d65e58dcaed5 configure.ac > --- a/configure.ac ? ? ?Thu Apr 30 14:37:12 2009 +0200 > +++ b/configure.ac ? ? ?Thu Apr 30 15:27:47 2009 +0200 > @@ -499,7 +499,38 @@ > ? fi > ?fi > > -if test "x${ZERO_BUILD_TRUE}" = x; then > +AC_MSG_CHECKING(for --with-additional-vms) > +AC_ARG_WITH(additional-vms, > + ? ? ? ? ? ?AC_HELP_STRING([--with-additional-vms=vm1,vm2,...], [build additional virtual machines. Valid value is a colon separated string with the backend names `cacao', `zero' and `shark'.]), > +[ > +if test x$with_additional_vms != x > +then > + ?for vm in `echo $with_additional_vms | sed 's/,/ /g'`; do > + ? ?case "x$vm" in > + ? ? ?xcacao) add_vm_cacao=yes;; > + ? ? ?xzero) ?add_vm_zero=yes;; > + ? ? ?xshark) add_vm_shark=yes;; > + ? ? ?*) AC_MSG_ERROR([proper usage is --with-additional-vms=vm1,vm2,...]) > + ? ?esac > + ?done > +fi]) > +AC_MSG_RESULT($with_additional_vms) > + > +AM_CONDITIONAL(ADD_CACAO_BUILD, test x$add_vm_cacao != x) > +AM_CONDITIONAL(ADD_ZERO_BUILD, ?test x$add_vm_zero ?!= x || test x$add_vm_shark != x) > +AM_CONDITIONAL(ADD_SHARK_BUILD, test x$add_vm_shark != x) > + > +if test "x${WITH_CACAO}" = xyes && test "x${ADD_CACAO_BUILD_TRUE}" = x; then > + ?AC_MSG_ERROR([additional vm is the default vm]) > +fi > +if test "x${ZERO_BUILD_TRUE}" = x && test "x${ADD_ZERO_BUILD_TRUE}" = x; then > + ?AC_MSG_ERROR([additional vm is the default vm]) > +fi > +if test "x${USE_SYSTEM_CACAO_TRUE}" = x; then > + ?AC_MSG_ERROR([cannot build with system cacao as additional vm]) > +fi > + > +if test "x${ZERO_BUILD_TRUE}" = x || test "x${ADD_ZERO_BUILD_TRUE}" = x; then > ? dnl Check for libffi headers and libraries. > ? PKG_CHECK_MODULES(LIBFFI, libffi,[LIBFFI_FOUND=yes],[LIBFFI_FOUND=no]) > ? if test "x${LIBFFI_FOUND}" = xno > @@ -517,7 +548,7 @@ > ?AC_SUBST(LIBFFI_CFLAGS) > ?AC_SUBST(LIBFFI_LIBS) > > -if test "x${SHARK_BUILD_TRUE}" = x; then > +if test "x${SHARK_BUILD_TRUE}" = x || test "x${ADD_SHARK_BUILD_TRUE}" = x; then > ? FIND_TOOL([LLVM_CONFIG], [llvm-config]) > ? llvm_components="engine nativecodegen" > ? LLVM_CFLAGS=`$LLVM_CONFIG --cflags $llvm_components | \ > @@ -531,4 +562,8 @@ > ?AC_SUBST(LLVM_LDFLAGS) > ?AC_SUBST(LLVM_LIBS) > > +# Arguments passed to configure. > +AC_SUBST(CONFIGURE_ARGS) > +CONFIGURE_ARGS="$ac_configure_args" > + > ?AC_OUTPUT > diff -r d65e58dcaed5 patches/icedtea-cacao.patch > --- a/patches/icedtea-cacao.patch ? ? ? Thu Apr 30 14:37:12 2009 +0200 > +++ b/patches/icedtea-cacao.patch ? ? ? Thu Apr 30 15:27:47 2009 +0200 > @@ -1,12 +1,39 @@ > ---- ../icedtea6/openjdk/jdk/src/share/bin/java.c ? ? ? ?2008-02-28 10:42:00.000000000 +0100 > -+++ openjdk/jdk/src/share/bin/java.c ? ?2008-03-17 16:23:05.804846720 +0100 > -@@ -367,7 +367,8 @@ > +--- openjdk/jdk/src/share/bin/java.c.orig ? ? ?2009-03-02 23:21:31.000000000 +0000 > ++++ openjdk/jdk/src/share/bin/java.c ? 2009-03-02 23:23:53.000000000 +0000 > +@@ -199,6 +199,8 @@ > + ? InvocationFunctions ifn; > + }; > + > ++#define JNI_VERSION_CACAO 0xcaca0000 > ++ > + /* > + ?* Entry point. > + ?*/ > +@@ -360,6 +389,8 @@ > + > + ? ? { /* Create a new thread to create JVM and invoke main method */ > + ? ? ? struct JavaMainArgs args; > ++ ? ? ?struct JDK1_1InitArgs cacao_args; > ++ ? ? ?int jvm_init_rv; > + > + ? ? ? args.argc = argc; > + ? ? ? args.argv = argv; > +@@ -367,7 +398,17 @@ > ? ? ? ?args.classname = classname; > ? ? ? ?args.ifn = ifn; > > ?- ? ? ?return ContinueInNewThread(JavaMain, threadStackSize, (void*)&args, ret); > -+/* ? ? ? return ContinueInNewThread(JavaMain, threadStackSize, (void*)&args, ret); */ > -+ ? ? ?return JavaMain((void*)&args); > ++ ? ? ?memset((void*)&cacao_args, 0, sizeof(cacao_args)); > ++ ? ? ?cacao_args.version = JNI_VERSION_CACAO; > ++ > ++ ? ? ?jvm_init_rv = ifn.GetDefaultJavaVMInitArgs(&cacao_args); > ++ ? ? ?if (_launcher_debug) > ++ ? ? ?printf("using cacao as VM: %s\n", (jvm_init_rv == 0) ? "yes" : "no"); > ++ > ++ ? ? ?if (jvm_init_rv == 0) > ++ ? ? ?return JavaMain((void*)&args); > ++ ? ? ?else > ++ ? ? ?return ContinueInNewThread(JavaMain, threadStackSize, (void*)&args, ret); > ? ? ?} > ?} > > > Rather than adding yet more conflicting options, could we not just add --enable/disable-hotspot, so which VMs are built is determined by the state of --enable-zero/shark/cacao/hotspot? -- 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 dbhole at redhat.com Thu Apr 30 12:16:53 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 30 Apr 2009 15:16:53 -0400 Subject: RFC: Patch to bypass permission check for [System] source Message-ID: <20090430191652.GB18977@redhat.com> I discovered an issue when investigating: https://bugzilla.redhat.com/show_bug.cgi?id=484387 When checking for permissions during execution, source file:// has special privilege. However, there is another source that needs this bypass - the [System] source which implies code coming from a Mozilla extension. Attached patch adds the bypass. Patch also makes it so that .equals is used (as it should be) instead of == when comparing. ChangeLog: 2009-04-30 Deepak Bhole * plugin/icedtea/sun/applet/PluginAppletSecurityContext.java: Forgo permission check if JS source is [System] (i.e. Mozilla extension/chrome). Deepak -------------- next part -------------- diff -r 4e5fd2efe6af plugin/icedtea/sun/applet/PluginAppletSecurityContext.java --- a/plugin/icedtea/sun/applet/PluginAppletSecurityContext.java Thu Apr 30 16:04:37 2009 +0200 +++ b/plugin/icedtea/sun/applet/PluginAppletSecurityContext.java Thu Apr 30 14:39:45 2009 -0400 @@ -1001,7 +1001,7 @@ PluginDebug.debug("target = " + target + " jsSrc=" + jsSrc + " classSrc=" + classSrc); // if src is not a file and class loader does not map to the same base, UniversalBrowserRead (BrowserReadPermission) must be set - if (jsSrc != "file://" && !classSrc.equals(jsSrc)) { + if (!jsSrc.equals("file://") && !jsSrc.equals("[System]") && !classSrc.equals(jsSrc)) { acc.checkPermission(new BrowserReadPermission()); } } From langel at redhat.com Thu Apr 30 13:09:05 2009 From: langel at redhat.com (Lillian Angel) Date: Thu, 30 Apr 2009 16:09:05 -0400 Subject: RFC: Patch to bypass permission check for [System] source In-Reply-To: <20090430191652.GB18977@redhat.com> References: <20090430191652.GB18977@redhat.com> Message-ID: <49FA0561.1060002@redhat.com> Deepak Bhole wrote: > I discovered an issue when investigating: > https://bugzilla.redhat.com/show_bug.cgi?id=484387 > > When checking for permissions during execution, source file:// has special > privilege. However, there is another source that needs this bypass - the > [System] source which implies code coming from a Mozilla extension. > Attached patch adds the bypass. Patch also makes it so that .equals is > used (as it should be) instead of == when comparing. > > ChangeLog: > 2009-04-30 Deepak Bhole > > * plugin/icedtea/sun/applet/PluginAppletSecurityContext.java: Forgo > permission check if JS source is [System] (i.e. Mozilla extension/chrome). I approve. I actually noticed this today when I was poking around. Cheers, Lillian From dbhole at redhat.com Thu Apr 30 13:29:46 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 30 Apr 2009 20:29:46 +0000 Subject: changeset in /hg/icedtea6: Forgo permission check if JS source i... Message-ID: changeset afe7df786dd4 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=afe7df786dd4 description: Forgo permission check if JS source is [System] (i.e. Mozilla extension/chrome). diffstat: 2 files changed, 6 insertions(+), 1 deletion(-) ChangeLog | 5 +++++ plugin/icedtea/sun/applet/PluginAppletSecurityContext.java | 2 +- diffs (24 lines): diff -r 4e5fd2efe6af -r afe7df786dd4 ChangeLog --- a/ChangeLog Thu Apr 30 16:04:37 2009 +0200 +++ b/ChangeLog Thu Apr 30 16:31:55 2009 -0400 @@ -1,3 +1,8 @@ 2009-04-30 Matthias Klose + + * plugin/icedtea/sun/applet/PluginAppletSecurityContext.java: Forgo + permission check if JS source is [System] (i.e. Mozilla extension/chrome). + 2009-04-30 Matthias Klose * Makefile.am: Update cacao version to 0.99.4. diff -r 4e5fd2efe6af -r afe7df786dd4 plugin/icedtea/sun/applet/PluginAppletSecurityContext.java --- a/plugin/icedtea/sun/applet/PluginAppletSecurityContext.java Thu Apr 30 16:04:37 2009 +0200 +++ b/plugin/icedtea/sun/applet/PluginAppletSecurityContext.java Thu Apr 30 16:31:55 2009 -0400 @@ -1001,7 +1001,7 @@ public class PluginAppletSecurityContext PluginDebug.debug("target = " + target + " jsSrc=" + jsSrc + " classSrc=" + classSrc); // if src is not a file and class loader does not map to the same base, UniversalBrowserRead (BrowserReadPermission) must be set - if (jsSrc != "file://" && !classSrc.equals(jsSrc)) { + if (!jsSrc.equals("file://") && !jsSrc.equals("[System]") && !classSrc.equals(jsSrc)) { acc.checkPermission(new BrowserReadPermission()); } } From dbhole at redhat.com Thu Apr 30 13:32:26 2009 From: dbhole at redhat.com (Deepak Bhole) Date: Thu, 30 Apr 2009 16:32:26 -0400 Subject: RFC: Patch to bypass permission check for [System] source In-Reply-To: <49FA0561.1060002@redhat.com> References: <20090430191652.GB18977@redhat.com> <49FA0561.1060002@redhat.com> Message-ID: <20090430203226.GC18977@redhat.com> * Lillian Angel [2009-04-30 16:09]: > Deepak Bhole wrote: >> I discovered an issue when investigating: >> https://bugzilla.redhat.com/show_bug.cgi?id=484387 >> >> When checking for permissions during execution, source file:// has special >> privilege. However, there is another source that needs this bypass - the >> [System] source which implies code coming from a Mozilla extension. >> Attached patch adds the bypass. Patch also makes it so that .equals is >> used (as it should be) instead of == when comparing. >> >> ChangeLog: >> 2009-04-30 Deepak Bhole >> >> * plugin/icedtea/sun/applet/PluginAppletSecurityContext.java: Forgo >> permission check if JS source is [System] (i.e. Mozilla extension/chrome). > > I approve. I actually noticed this today when I was poking around. > Great thanks! Committed. Cheers, Deepak From gnu_andrew at member.fsf.org Thu Apr 30 13:42:35 2009 From: gnu_andrew at member.fsf.org (Andrew John Hughes) Date: Thu, 30 Apr 2009 21:42:35 +0100 Subject: How to host HS14 stable? (Was: RFC: Change name of default HotSpot to 'default') In-Reply-To: <49F9F971.1010404@sun.com> References: <20090212150029.GA1121@rivendell.middle-earth.co.uk> <1234768690.24153.28.camel@localhost.localdomain> <1234772748.3612.3.camel@hermans.wildebeest.org> <1234774554.11228.3.camel@localhost.localdomain> <1234862105.4062.8.camel@fedora.wildebeest.org> <499B727D.6060901@sun.com> <17c6771e0903200428j75e26899x9c15daf57f5ed20e@mail.gmail.com> <49E3ABEA.6020400@sun.com> <1241001697.4267.1.camel@fedora.wildebeest.org> <49F9F971.1010404@sun.com> Message-ID: <17c6771e0904301342j2fb66bcrd15012452450bdcb@mail.gmail.com> 2009/4/30 David Cox : > Mark Wielaard wrote: > > Hi Joe, > > On Mon, 2009-04-13 at 14:17 -0700, Joseph D. Darcy wrote: > > > Andrew John Hughes wrote: > > > 2009/2/18 Joe Darcy : > > > On 02/17/09 01:15 AM, Mark Wielaard wrote: > So it would be good to have an open repo that hosts the HS14 stable > build so that people interested in a stable, but modern, hotspot could > base their work on that. Since IcedTea6 is trying to standardize on HS14 > for the default hotspot and the one that Zero and Shark are based on I > could create a icedtea/hotspot repo branched from the latest HS14 code > in the jdk7/jdk7/hotspot repo. Would that be interesting to others? How > do we coordinate backporting fixes to it? Any other suggestions for > hosting an open hotspot HS14 repo (maybe as subtree of one of the other > 6 hotspot repos under jdk7/hostspot-* (I admit to not know what they are > all for currently). > > I have been talking with the HotSpot team inside Sun about the logistics > needed to support a public HotSpot Mercurial repository usable by both > OpenJDK 6 and the 6 update release, which would mean the stabilized HotSpot > 14 at this point. > > We should have something figured out relatively soon; I'll post when we do. > > > Any news on this? > > > Some news should be available real soon now... > > > Great. Do you hav any estimates on when "real soon now" will be? > > > "Real soon now" is now, finally.? We at Sun have been discussing the idea of > creating a "HotSpot Express" Project in OpenJDK through which the > stabilization of new versions of HotSpot could be managed.? We could create > repositories such as > > ? http://hg.openjdk.java.net/hsx/14/baseline > ? http://hg.openjdk.java.net/hsx/14/master > > and > > ? http://hg.openjdk.java.net/hsx/15/baseline > ? http://hg.openjdk.java.net/hsx/15/master > > in which this work would be done.? A "baseline" repo would be used to > collect suitable bug fixes from developers.? Occasionally, these changes > would be pushed to "master" to form the basis of a stable build. ? This is > the model we've used at Sun for many years.? If it seems reasonable to > folks, I'll ask one of HotSpot Group members to submit a formal project > proposal for consideration (Although I'm the manager of Sun's HotSpot > garbage collection and compiler teams,? I'm not actually a member of the > group!) > > Dave > Sounds great! Am I right in thinking current development is now moving to hs16? -- 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 David.Cox at Sun.COM Thu Apr 30 12:18:09 2009 From: David.Cox at Sun.COM (David Cox) Date: Thu, 30 Apr 2009 12:18:09 -0700 Subject: How to host HS14 stable? (Was: RFC: Change name of default HotSpot to 'default') In-Reply-To: <1241001697.4267.1.camel@fedora.wildebeest.org> References: <20090212150029.GA1121@rivendell.middle-earth.co.uk> <1234731237.3562.6.camel@hermans.wildebeest.org> <17c6771e0902151453t523b15derfc243ffaa201264f@mail.gmail.com> <1234768690.24153.28.camel@localhost.localdomain> <1234772748.3612.3.camel@hermans.wildebeest.org> <1234774554.11228.3.camel@localhost.localdomain> <1234862105.4062.8.camel@fedora.wildebeest.org> <499B727D.6060901@sun.com> <17c6771e0903200428j75e26899x9c15daf57f5ed20e@mail.gmail.com> <49E3ABEA.6020400@sun.com> <1241001697.4267.1.camel@fedora.wildebeest.org> Message-ID: <49F9F971.1010404@sun.com> An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090430/2197bc2a/attachment.html From David.Cox at Sun.COM Thu Apr 30 13:52:38 2009 From: David.Cox at Sun.COM (David Cox) Date: Thu, 30 Apr 2009 13:52:38 -0700 Subject: How to host HS14 stable? (Was: RFC: Change name of default HotSpot to 'default') In-Reply-To: <17c6771e0904301342j2fb66bcrd15012452450bdcb@mail.gmail.com> References: <20090212150029.GA1121@rivendell.middle-earth.co.uk> <1234768690.24153.28.camel@localhost.localdomain> <1234772748.3612.3.camel@hermans.wildebeest.org> <1234774554.11228.3.camel@localhost.localdomain> <1234862105.4062.8.camel@fedora.wildebeest.org> <499B727D.6060901@sun.com> <17c6771e0903200428j75e26899x9c15daf57f5ed20e@mail.gmail.com> <49E3ABEA.6020400@sun.com> <1241001697.4267.1.camel@fedora.wildebeest.org> <49F9F971.1010404@sun.com> <17c6771e0904301342j2fb66bcrd15012452450bdcb@mail.gmail.com> Message-ID: <49FA0F96.9060101@sun.com> An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20090430/1e6427ba/attachment.html