I am trying to build jikes RVM 2.4.2 with GNU classpath
0.19 and jikes 1.22 on my ppc running Gentoo Linux.
First I tried to use the default JDK for my system, ibm
jdk 1.4.2.03. I did notice the comment in
config/powerpc-unknown-linux-gnu about "...When we find
a working 1.4 Linux/ppc JDK, unkludge the JIKES
definition", but I was hoping that comment would turn
out to be outdated. Unfortunately, the build did fail
at the linkImage stage, in the same way some ppc64
builds have been failing (e.g.
http://thread.gmane.org/gmane.comp.java.jikes.rvm.devel/4617)
/opt/ibm-jdk-bin-1.4.2.03/bin/java \
-Xbootclasspath/p:/root/build/jikesrvm-build/RVM.utility_kludge_stubs/utility_kludge.jar
-Xbootclasspath/a:/root/build/jikesrvm-build/RVM.classes/jksvm.jar:/root/build/jikesrvm-build/RVM.classes/rvmrt.jar:/root/build/jikesrvm-build/RVM.classes/mmtk.jar
\
-Xmx400M \
-classpath
/root/build/jikesrvm-build/RVM.utility_kludge_stubs:/root/build/jikesrvm-build/RVM.scratch:/root/build/jikesrvm-build/RVM.classes/jksvm.jar:/root/build/jikesrvm-build/RVM.classes/rvmrt.jar:/root/build/jikesrvm-build/RVM.classes/mmtk.jar
\
-Djava.security.policy=rvm.security \
\
BootImageWriter\
-classpath
/root/build/jikesrvm-build/RVM.classes/jksvm.jar:/root/build/jikesrvm-build/RVM.classes/rvmrt.jar:/root/build/jikesrvm-build/RVM.classes/mmtk.jar
\
-n /root/build/jikesrvm-build/RVM.primordials \
-o /root/build/jikesrvm-build/RVM.image \
\
-m /root/build/jikesrvm-build/RVM.map \
-ia 0x31000000
JVMXM008: Error occured while initialising System
ClassException in thread "main" Could not create the
Java virtual machine.
make: *** [/root/build/jikesrvm-build/RVM.image] Error 1
make: Leaving directory
`/root/build/jikesrvm-2.4.2/rvm/src/tools/bootImageWrite
My next attempt was to download a java 1.3 JDK and put
back the "jikes -target 1.3" kludge in the config file,
but that failed even earlier -- classpath 0.19 would
not build without 1.4 features.
Is there anything else to try for compiling recent
jikes RVM natively on ppc?
Logged In: YES
user_id=1215435
sadly there isn't an easy fix for this.
The most likely way this will be resolved is that we get
Jikes RVM building on 5.0 host JVMs in general, and then
hoping that the 5.0 Linux/PPC JVM will be capable of
building the bootimage.
Logged In: YES
user_id=1439284
So you don't think there is any use in trying to tweak the
boot image writing to work with the IBM JDK? According to
the Makefile, it has been tweaked to work specifically with
Sun JDK and I'm afraid it will keep on failing with newer
versions of IBM JDK (and Blackdown has not been keeping up
on ppc). Maybe someone could help me do the "trial and
error" needed to make it work with IBM JDK?
The -Xbootclasspath/p:$(UTIL_KLUDGE_JAR) is a kludge to force
the hosting jvm to use the same java.util files that the
rvm will use
at run time. This mechanism is very fragile and only
works for a
subset of java.util classes (discovered by trial and error).
Logged In: YES
user_id=1215435
The IBM and Sun JVMs are using the same class libraries, so
for bootImageWriting they are more or less equivalent
(modulo VM/JIT bugs). We build on the IBM JVMs on AIX.
The trial and error process mostly boils down to jamming
missing classes into the utility kludge jar file (see
makefile in BootImageWriter), and hoping that the things you
jam in aren't so "central" to the operations of the host JVM
that it causes it to crash.
Logged In: YES
user_id=1215435
I'd suggest playing with the 5.0 IBM JVM. My recollection
(perhaps faulty) is that the problem with the 1.4 IBM JVMs
was a VM/JIT bug, not specific to the usage of class libraries.
Logged In: YES
user_id=308843
The IBM 5.0 JVM with the IBM-50 option in the config file
work well on PowerPC Linux. There's no problems compiling
the current CVS repository on PowerPC Linux with both the
Classpath CVS head and Classpath 0.92. I believe this bug
should be closed.
Ian
Logged In: YES
user_id=1215435
Agreed. Jikes RVM 2.4.6 should work out of the box on
Linux/PPC using the IBM 5.0 JVM.
This is what the nightly regression machine at ANU is doing
and it's been running ok for about a month.