Date: Fri, 17 Sep 2004 14:39:10 -0400 From: Kurt Miller <truk@optonline.net> To: Greg Lewis <glewis@eyesbeyond.com>, Alexey Zelkin <phantom@FreeBSD.org.ua> Cc: freebsd-java@freebsd.org Subject: bootstrapping 1.4 with 1.3 (was JDK 1.5 / 5.0) Message-ID: <001401c49ce5$9f494700$1d0110ac@focus> References: <14C413EDD4FDAB48924086C19BF44F872E053C@MUCS040151.munich.munichre.com> <20040917054616.GA16333@misty.eyesbeyond.com> <20040917071229.GA18547@phantom.cris.net> <20040917134519.GA69537@misty.eyesbeyond.com>
next in thread | previous in thread | raw e-mail | index | archive | help
From: "Greg Lewis" <glewis@eyesbeyond.com> > On Fri, Sep 17, 2004 at 10:12:29AM +0300, Alexey Zelkin wrote: > > Actually it should not. JDK releases are able to be bootstraped with previous > > JDK release. When I was expirementing with jdk 1.5.0 this spring, I was > > able to use jdk 1.4.2 to bootstrap. > > Maybe so, but you certainly can't bootstrap 1.4.2 with 1.3.1 for example. > I can't recall an earlier release that was bootstrappable at release time > by the previous release. They usually drop that feature later in the > development cycle. Hopefully they haven't this time, but I'm not holding > my breath :). Following up on some suggestions that Greg gave me a while back.... I've made some progress with using 1.3 to bootstrap 1.4. 1.3 can be used to bootstrap 1.4 hotspot build, but fails in j2se. On OpenBSD, if I use the FreeBSD 1.4 rt.jar and tools.jar to get the subset of classes needed for bootstrapping I get further. There are still a set of source and header files that get created during bootstrapping that 1.3 can't create and are not available elsewhere: ./control/build/bsd-i586/gensrc/java/lang/Character.java ./control/build/bsd-i586/gensrc/java/lang/CharacterData.java ./control/build/bsd-i586/gensrc/java/lang/CharacterDataLatin1.java ./control/build/bsd-i586/tmp/java/java.lang/java/CClassHeaders/*.h ./control/build/bsd-i586/tmp/java/java.nio/nio/CClassHeaders/*.h ./control/build/bsd-i586/tmp/sun/java.util.zip/zip/CClassHeaders/*.h Since all of the above falls into the category of 'source', I believe they can be distributed as a dist file similar to how the patchset is distributed (click-on verification of SCSL status). I have a working OpenBSD port framework for bootstrapping 1.4 using this method. There's one remaining problem. Until FreeBSD releases a binary 1.4, I don't have a place to direct OpenBSD users to get the rt.jar and tools.jar files. I've tried the linux and solaris rt.jar and tools.jar, but it fails at the first invocation of native java with: Error occurred during initialization of VM java.lang.NoSuchMethodError: java.lang.Class.getName()Ljava/lang/String; If I can figure this problem out, I think I've got a way to bootstrap 1.4 using 1.3-linux and various distfiles. Otherwise I may have to wait until FreeBSD releases a binary 1.4 to use this method. A similar approach may also work for bootstrapping 1.5 (assuming the above problem is solved). BTW, if anyone wants to help me along with fixing the above problem it can be reproduced on FreeBSD by renaming your rt.jar and using the 1.4 linux rt.jar in its place. Help would be greatly appreciated. -Kurt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?001401c49ce5$9f494700$1d0110ac>