Today I hacked the OpenJDK build system so that it recognises when it’s running on a platform without a JIT and enables the portable interpreter. Now it’s at the point where the build fails because the platform dependent flags files globals_$cpu.hpp and globals_linux_$cpu.hpp don’t exist so I’ve been dredging through the existing ones to see what my new ones need. There’s some stuff in there which I’m tempted to rationalize but I’m going to leave it alone in the interests of keeping my patch simple. I figure keeping tangential stuff out is the path to easy patch acceptance when the time comes.

Now I’m back at work I can get down to some OpenJDK stuff in earnest. I grabbed myself the task of getting it up and running on the architectures that we support but Sun don’t.

The deal is that each processor that Sun supports has a JIT, and at the core of each JIT is an architecture description file, 10,000 lines or so of psuedo-assembler. Even one platform wouldn’t be an option for me, and I have five. But it turns out that Sun did an ia64 port way back when, and because ia64 assembler is wacky they wrote an interpreter in C++ instead. They dropped ia64 for Java 5, but the interpreter is still in the codebase and it looks like the build scripts can build it. Sort of. I mean, I guess it’s not been touched since 2004, but I live in hope.

Anyway, dwmw2 lent me a big old ppc64 box, so I’m trying to bootstrap OpenJDK on it. I’ll post some patches soon, probably Monday…