One way to speed up libcgj compilation by quite a bit would be to compile more than one .java file at a time. For example: gcj -c java/util/*.java -o java-util.o This reduces libtool overhead, reduces the duplication in reading dependencies, and probably reduces link overheads. It can also produce better code, since intermodule references get trurned into intramodule references. This just requires Makefile-hacking.
I was going to recommend the same thing.
We have taken this approach with a fairly large program (about 1000 classes) and it does speed things up considerably. We see a 75% reduction in total build times (12 minutes vs 48).
David Daney