[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

glibj.zip with jikes rvm



I sootify entire classes of glibj.zip(classpath-v0.7) with soot and got
converted class files and merged them into a new glibj.zip.
When I tried to build jikes rvm image(the jbuild script of jikes rvm
just copy glibj.zip to rvmrt.jar and compiles the jikes vm classes with
setting classpath to it), it failed with bunch of semantic errors.
Actually it happened when compiling Dummy.java and OptDummy.java with
jikes compiler(v1.18).


/* Error message */
jbuild.linkImage: (primordials cleaned) (bootimage cleaned) 0 s
jbuild.linkBooter: (booter cleaned) 0 s
jbuild.expand: (classloader templates expanded) (opt templates expanded)
4 s
jbuild.copy: (set up jbuild.prep.host) 20 s
jbuild.compile: (compiling classes...
Found 2 semantic errors compiling
"com/ibm/JikesRVM/VM_PragmaException.java":

    16. public abstract class VM_PragmaException extends
java.lang.RuntimeException {
                              ^----------------^
*** Semantic Error: The checked exception "ClassNotFoundException" is
not assignable to any exception in the throws clause of the accessible
method "java.lang.Class loadClass(java.lang.String $1, boolean $2);"
declared in type "java.lang.ClassLoader".


    ...



My suspicion is that soot lost some information when they convert a
class into internal format. For example, gnu/java/lang/CharData.class(or
java) in the glibj.zip has a couple of static string constant
definitions, but newly converted CharData.class has just static string
reference fields. Is it right analysis in soot because those fileds are
not explicitly used in the program(I only sootify library classes)?
Anyhow, if so, how could I get the same context of classfile with the
original one? Turning off jb options partially or entirely didn't help
in my case(most cases ends up with exceptions)


Kyungwoo