So I’ve been playing around with the OpenJDK source code drop over the last week, in addition to still trying to build JikesRVM and doing odd bits of gjdoc maintainer stuff (Michael Koch is packaging the newest version for Debian). Unfortunately, I’ve not yet managed to build it without the binary blobs, which I don’t want to even have to download (in the belief that if I do that, I may as well just download a proprietary JDK). The build system relies heavily on an existing JDK and a lot of environment variables… oddly makes me miss the autotools!

My discoveries so far have lead me to find that the full build (hotspot+the j2se classes) won’t build without an existing tools.jar, of which Classpath does not have a full implementation (it wants com.sun.jdi, whatever that is). Of course, this stuff is in the tree as well (but the hotspot build doesn’t seem to know that). Hacking things to make hotspot use these classes lead to the revelation that it actually wants an older version; it tries to do a 1.4 compile, while the versions in the tree use 1.5 features such as generics.

Giving up on Hotspot and trying a j2se_only build gave more interesting results (seeing the build pull out bits of Classpath, believing them to be from the Sun JDK was fun), but again stalled because it wanted a libjvm.so from Hotspot. Assuming that it would be more difficult to remove this dependency than those in the full build (as I guess the classes are closely tied to Hotspot as their VM), I went back to that and tried to pull out the tools so they can be built separately. This has other uses, in so far as it would, for one, give me an apt I could use to build JikesRVM Javadoc and appletviewer also seem to be in there. I’ve since been plodding through a dependency hell which sees me slowly pulling more and more of the JDK into my newly created ‘tools’ directory. javax.script, javax.xml.bind and some management code are an example of the larger stuff it needs that Classpath doesn’t yet have.

This also gave me a patch for Classpath (fixing the RMI classes to use generics so rmic could build) and I have had apt at least give me its help output. More troubling is that I can’t find some stuff — ‘Version’ and ‘JDWP’ classes seem to be proving elusive. If anyone can shed any light on that, it would be much appreciated. In the meantime, hopefully the CP teams ‘iced tea’ plans will come to fruition and we can work on the code while the legal guys sort out a wonderful shared community between OpenJDK and Classpath.