Skip site navigation (1)Skip section navigation (2)
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>