[MAD SCIENCE EXPERIMENT]: Replace some libtool functionality with handcoded C

Bryce McKinlay bryce@mckinlay.net.nz
Thu Dec 4 04:50:00 GMT 2003


On Dec 3, 2003, at 10:54 PM, Mohan Embar wrote:

> Tonight I scratched an itch that I've been wanting to scratch for 
> almost
> a year. And it felt nice.

Yeah, this itch is not uncommon. libgcj needs to (re)build faster.

> I wanted to see how much faster the libgcj build would go if I took
> libtool out of the picture for some of the pieces.

Quite a lot, I'd imagine. Using the latest CVS binutils helps too, to 
speed up the final link.

> After the configure process and compiling of the initial classfiles
> (using --enable-libgcj-multifile to do these all at once, of course)
> and .cc files, the build kicks into high gear. I watched the entire
> build in fascination the first time around, but didn't do any timings.
> I think it screams, but would be interested in observations from
> others.
>
> How does this sound? For me, it's so far out that there must be
> something wrong with my approach, but it's pretty cool and I'm
> having fun.

Well its a nice experiment, but probably a more compicated solution 
than we need. My preferred approach is just to rip out libtool 
entirely. This will mean slightly more platform-specific configuration 
is required, but overall, things should be simpler.

What I'd like is to write a new makefile, using the latest 
autoconf/automake, which: a) doesn't use libtool, and b) incrementally 
links each java package with ld -r. The ld -r approach means that the 
final link consists of linking a small number of large .o files instead 
of a large number of small ones, which should be a lot faster. This 
approach also stops it from tripping over command-line length limits, 
and could perhaps later be extended to do something like 
--enable-libgcj-multifile but for .o files.

Michael K and Thomas F have both expressed interest in working on this 
stuff, I don't know if they've made any progress.

Regards

Bryce.




More information about the Java-patches mailing list