From: Godmar Back (gback@cs.utah.edu)
Date: Thu Jan 14 1999 - 23:04:48 EST
This is a rant that reflects my frustration about still not being able
to compile and run kaffe on any platform to which I have access.
So, I finally found the time to study the info package that is installed
for libtool on my system. libtool version 1.2e, that is.
Quite frankly, and I don't how to say this politely, but I think the
term "absolutely unnecessary" about sums it up.
My favorite quote from the info file is:
Well, that sucks. Maybe I should just scrap this project and take up
basket weaving.
I had to agree.
libtool is in my view yet another failed attempt to attack complexity
with even more complexity. It's like fighting fire with oil.
For instance, putting symbols in a table
{ "java_lang_Object_wait0", java_lang_Object_wait0 }
and then looking them up --- what could be simpler and more portable
than that?
Instead, libtool insists on knowing how nm works on a given system,
builds a complete table even with symbols the programmer doesn't want,
(but only if I give it a magical flag) and in the end fails with a bus
error. (though I hope this will be fixed one of these days.)
Similar for dlopen(3) or platform-specific functions used for module
name lookup. Such platform dependencies are small and isolated (at least
they were in kaffe), they are figured out *once* by people who care that
the ported software runs on *their* platform, and they are usually simple.
When libtool's "generalized" lookup library is used, porters have to learn
it, port it, and debug it --- even though they could not care less about
libtool, they only want to get the small piece of functionality they need
for kaffe to run.
Not to mention the fact that building takes now a lot longer, presumably
because we no longer invoke the gcc driver script directly,
but instead a sh script, which (I assume after several invocations of sed
or awl) finally gets to invoking gcc. But faster machines will fix that.
A 333MHz/512MB machine is already so last year.
Also not to mention that studying the output of your build is now a job
that requires you to wade thru three times as many characters than before.
So much for finding errors like "GLOBAL_OFFSET_TABLE still undefined"
when they scroll by ignored.
And the argument made in the libtool info document that programmers forget how
to invoke ar and ranlib --- please. Ar and ranlib are a lot longer around
than libtool.
The main problems with attacking tool complexity with meta-tools is that the
presumably simpler meta-tools are usually only used by people -- and can
only be used by people -- who understand the tools (ld invocations and
Makefile rules, in this case). But those people are just fine off using
the tools they have. They don't want to know the meaning of variables
like bin_PROGRAMS, lib_LTLIBRARIES and the like.
And I haven't even started to look at the automake meta-meta-tool.
Instead of an answer, Alexandre, please get kaffe to run under FreeBSD
and/or Linux again. I think I would have a lot easier time of putting
up with it if I could at least run a Java program again.
- Godmar
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:42 EDT