Building IcedTea with CACAO as VM on...

We have finally integrated CACAO into IcedTea's build system (http://icedtea.classpath.org/hg/icedtea6/rev/395d2515deeb).

...Ubuntu

Install OpenJDK from Ubuntu and build with it:

# aptitude install openjdk-6-jdk

Configure IcedTea to use CACAO as VM:

$ ./configure --enable-cacao --with-icedtea --with-icedtea-home=/usr/lib/jvm/java-6-openjdk

Bootstrapping IcedTea with CACAO/GNU Classpath

Configure GNU Classpath to use CACAO as Java in it's wrapper scripts:

$ ./configure --prefix=$PREFIX/classpath JAVA=$PREFIX/cacao/bin/cacao
$ make
$ make install

Configure IcedTea with:

$ ./configure \
--enable-cacao \
--with-gcj-home=$PREFIX/cacao-openjdk-icedtea \
--with-java=$PREFIX/cacao/bin/cacao \
--with-javah=$PREFIX/classpath/bin/gjavah \
--with-jar=$PREFIX/classpath/bin/gjar \
--with-rmic=$PREFIX/classpath/bin/grmic \
--with-libgcj-jar=$PREFIX/classpath/share/classpath/glibj.zip \
--without-rhino \
--with-cacao-home=$PREFIX/cacao-openjdk-icedtea
$ make

OpenSolaris (using JamVM)

First of all the OpenJDK build system needs some environment variables set:

export ALT_COMPILER_PATH=/opt/SunStudioExpress/bin
export ALT_CUPS_HEADERS_PATH=/usr/include
export ENFORCE_C_COMPILER_REV=5.10
export ENFORCE_COMPILER_REV=5.9

Place a link to jni.h and jni.h in bootstrap/ecj/include/

$ pushd bootstrap/ecj/include/
$ ln -s ../../../openjdk-ecj/jdk/src/share/javavm/export/jni.h .
$ ln -s ../../../openjdk-ecj/jdk/src/solaris/javavm/export/jni_md.h .
$ popd

Actually I think this is an upstream bug, as the include directories are:

-I../../../../src/solaris/javavm/export -I../../../../src/share/javavm/export -I../../../../src/share/javavm/include -I../../../../src/solaris/javavm/include

which only work for jdk/ but not for e.g. corba/.

jvmtiEnterTrace.cpp is generated wrongly:

$ ls -l openjdk-ecj/control/build/solaris-i586/hotspot/outputdir/solaris_i486_compiler2/generated/jvmtifiles/
total 521
-rw-r--r-- 1 twisti staff 199963 2008-10-12 11:59 jvmtiEnter.cpp
-rw-r--r-- 1 twisti staff 199963 2008-10-12 12:21 jvmtiEnterTrace.cpp
...

...and it's really the same file:

$ md5sum jvmtiEnter.cpp jvmtiEnterTrace.cpp 
8a21ad4522cac8c6bd100afdd956d9f4  jvmtiEnter.cpp
8a21ad4522cac8c6bd100afdd956d9f4  jvmtiEnterTrace.cpp

So I copied jvmtiEnterTrace.cpp over from a Linux build.

Install giflib from http://pkg.opensolaris.org/pending:

# pkg install giflib

cacaowiki: IcedTea (last edited 2009-01-10 09:44:51 by ChristianThalinger)