From: Godmar Back (gback@cs.utah.edu)
Date: Wed Dec 09 1998 - 20:52:00 EST
Okay, here's how it works.
java.lang.Cloneable contains a public final static int variable
called KAFFE_VERSION.
When kaffe is built, it will build kaffeh first.
Then, it will use its $srcdir/libraries/javalib/Klasses.jar to generate
java_lang_Cloneable.h in the build tree. baseClasses.c includes that.
baseClasses.c checks whether Cloneable contains a field called
KAFFE_VERSION and bails if not.
It also checks whether the value of the field is the same it was
compiled against. Since I needed to use integers, (java.lang.String
doesn't work that early in the initialization), I just said it to 103.
So 1.0b3 is kind of like 1.0.3 --- I don't know how you'll do the
versioning, Tim --- but it doesn't really matter whether it corresponds
to the Kaffe versions or not.
The important thing is that the Klasses.jar present at compile time is
the same that's present at run-time, and that we don't read java.lang
classes from classes.zip (or elsewhere, for that matter).
If someone feels so inclined, they can add the Makerules to create
java_lang_Thread/Throwable/ThreadGroup on the fly as well.
- Godmar
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:10 EDT