[kaffe] CVS kaffe (robilad): Updated jikes recommendation to 1.22

Kaffe CVS cvs-commits at kaffe.org
Wed Jul 6 14:24:44 PDT 2005

PatchSet 6708 
Date: 2005/07/06 21:18:24
Author: robilad
Branch: HEAD
Tag: (none) 
Updated jikes recommendation to 1.22

2005-07-06  Dalibor Topic  <robilad at kaffe.org>

        * FAQ/FAQ.classlibrary-compile: Recommend jikes 1.22.

        Reported by:  Akhilesh Shirbhate <akhilesh.hacking at gmail.com>


Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4232 kaffe/ChangeLog:1.4233
--- kaffe/ChangeLog:1.4232	Wed Jul  6 21:04:36 2005
+++ kaffe/ChangeLog	Wed Jul  6 21:18:24 2005
@@ -1,5 +1,11 @@
 2005-07-06  Dalibor Topic  <robilad at kaffe.org>
+	* FAQ/FAQ.classlibrary-compile: Recommend jikes 1.22.
+        Reported by:  Akhilesh Shirbhate <akhilesh.hacking at gmail.com>
+2005-07-06  Dalibor Topic  <robilad at kaffe.org>
 	* libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.am
 	(libgtkpeer_la_SOURCES): Removed gnu_java_awt_peer_gtk_GtkTextComponentPeer.c.
Checking out kaffe/FAQ/FAQ.classlibrary-compile
RCS:  /home/cvs/kaffe/kaffe/FAQ/FAQ.classlibrary-compile,v
VERS: 1.19
--- /dev/null	Sun Aug  4 19:57:58 2002
+++ kaffe/FAQ/FAQ.classlibrary-compile	Wed Jul  6 21:24:43 2005
@@ -0,0 +1,183 @@
+How do I compile the class library?
+Cd to your build directory (the same as the source directory if you
+did ./configure), then cd to libraries/javalib.
+Type "make".
+This will build the java libraries, put them in a rt.jar file
+and overwrite the version in your source tree.  Type "make install"
+to install the jar file in your target prefix.
+If you have added or removed files from the javalib tree, you will have
+to update Makefile.am, Makefile.in and Makefile. Do this as follows:
+    $ cd ../..
+    $ sh developers/autogen.sh
+    $ ./configure
+Please use the version of automake as described in FAQ.automake.
+This version will minimize your diffs with the CVS tree as it is 
+the version used by the kaffe developers.
+If you want to rebuild not only Klasses.jar, but also the jar-files of
+Kaffe extensions, type "make CLASSDIRS=all Klasses".
+How do I set the compiler?
+The ./configure script has the --with-jikes option. If you don't set
+it at all, the build system will use the compiler specified by the
+JAVAC environment variable. If no compiler is specified in JAVAC, the
+build system will use the included kjc Java compiler.
+Setting --with-jikes=yes will use the jikes compiler if one can
+be found. You can also specify the absolute path to a jikes executable
+using --with-jikes=/absolute-path-to/jikes.
+You can also use the absolute path to specify other Java
+compilers. For example, in order to use gcj to compile the class
+library, you would run ./configure --with-jikes=/path-to/gcj. The same
+method can be applied to configure kaffe to compile the class library
+using Sun's javac compiler, or any other Java compiler.
+If you manage to compile kaffe's class library using a Java compiler
+other than javac, kjc, jikes or gcj, please send a message to
+kaffe at kaffe.org.
+How do I pass flags to the compiler?
+Use the JAVAC_FLAGS environment variable.
+make JAVAC_FLAGS="-verbose"
+will compile the class library with verbose messages about the
+compilation process. Which flags you can set depends on the Java
+compiler you use.
+What compilers are known to work?
+* jikes
+The preferred compiler is jikes. The URL for jikes is:
+  http://www10.software.ibm.com/developerworks/opensource/jikes/
+Please note that jikes 1.14 and 1.15 have bugs that result in a
+miscompiled Klasses.jar file.
+The recommended version of jikes is 1.22 or higher.
+* kjc
+The included compiler, kjc, also works. kjc is part of the Kopi project:
+  http://www.dms.at/kopi/kjc.html
+* javac 
+Sun's javac compiler from JDK 1.3 and JDK 1.4 works as well. You have
+to add "-bootclasspath lib/" to your JAVAC_FLAGS to avoid build
+problems due to Sun's javac linking Sun's class libraries with kaffe's.
+No known older version of Sun's javac compiler (up through JDK 1.2)
+will compile Kaffe's classes, due to bugs that Sun has yet to fix.
+What compilers are known not to work?
+FSF's gcj doesn't work up to version 3.3.
+In order to compile the class library with gcj to bytecodes instead of
+native code, you need to pass it the "-C" flag. Unfortunately, gcj has
+some bugs that prevent it from compiling kaffe's class library at the
+If you have managed to compile the class library using any version of
+gcj, please write to kaffe at kaffe.org.
+How do I adapt the class library to my needs?
+If you are using kaffe on an embedded system, you may want to use only
+a part of the functionality provided by the class library. For
+example, you may not need JAXP or AWT on your system. So you shouldn't
+have to waste space on the device by including classes you are not
+going to use.
+Kaffe supports user defined class library profiles. A profile file 
+tells the build process where to find a list of files to be compiled 
+into the class library.
+The default profile in libraries/javalib/all.files lists all files 
+that are included into the class library. It is a simple list of 
+java source files that should be compiled together in a compiler run. 
+They are passed to the compiler using the 
+ at file-containing-a-list-of-sources option, so that it works on systems 
+with a small maximal command line length.
+For example, in order to remove the AWT classes from your class 
+library, you can simply remove the lines with files from java.awt package 
+from the profile. You can also remove single classes in the same fashion.
+If you work with your own profiles, it is recommended to use Jikes. Jikes
+takes care about compiling the dependencies of files included in your 
+profile automatically.
+How do I add classes to a class library profile?
+If you want to add a class to specific compiler run, just add the path
+to its source to the file listing the classes to be compiled in that
+How do I use own class library profile?
+The configure script has the option --with-class-library-profile,
+which allows you to specify a profile to use for the class library.
+You must specify the absolute path to the profile file.
+Which profiles are available?
+Currently, there is only the default profile available.
+* default:
+  Builds the whole class library at once. 
+If you write your own profiles, send them to the kaffe mailing list
+kaffe at kaffe.org.
+How do I use a precompiled class library?
+The configure script allows you to specify a precompiled rt.jar file
+using the --with-rt-jar option. The specified jar file will be
+installed as kaffe's class library.
+That allows you to precompile kaffe's class library on a faster
+platform than the one you're building on, for example.
+You can not use the class library from another JVM.
+Crashes during compilation of class library
+When kaffe crashes during compilation of class library, you should try
+to compile the class library with jikes, or another Java compiler. Or
+you can use a precompiled rt.jar.
+You should first rebuild kaffe with --enable-debug, install it, set
+KAFFE_DEBUG to the debugger of your choice, and try to rebuild kaffe
+with kjc from the freshly installed, broken kaffe.
+So if you're having problems with the JIT, you could configure kaffe
+for rebuild using --with-jikes="/path/to/broken/kaffe -vmdebug
+JIT,MOREJIT at.dms.kjc.Main". The extra output from the jit engine
+should give you an idea where to start debugging.

More information about the kaffe mailing list