This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Get rid of libtool? [was Re: Makefile problems]


On Feb 28, 2002, Marc Espie <espie@quatramaran.ens.fr> wrote:

> As a guy who does both, I'm only tweaking libtool VERY reluctantly.
> This thing is at least one harder of magnitude LESS maintainable than
> a Makefile, and probably more.

Certainly more.  It's a horrible mess.  I'm the first to admit it,
because I happen to know it pretty well.  I won't deny it.

What gets me annoyed is when people say `hey, let's throw all this
effort away and reinvent it poorly' or `hey, building shared libraries
properly is easy, why do I have to use this junk'.

Neither of these assertions are useful.  If people find libtool
unmaintainable, instead of criticizing it or threatening to replace
it, why don't they volunteer to re-do libtool in a more maintainable
way?  Then we'd have more people with a reasonable understanding of
this difficult business of abstracting away properties of static and
shared libraries.

But perhaps that's not what most people want.  Most people wish
creating libraries was trivial.  Well, with libtool, it is.  Without
it, you soon end up in a twisty maze of failures on all sorts of
different systems, or limit yourself to just a few OSs, for the
despair of users of the others.  And soon it is discovered that it
isn't that simple, and that there are serious problems with the simple
way of doing things, and then comes the choice of either living with
the problems or cluttering further the build system.

I agree libtool in its current implementation is not ideal.  But I'm
convinced its interface is very sane.  I'd love to have cooperation to
re-implement it properly, preferably from people interested in GCC
such that we wouldn't have to rely on me as a single point of failure.
But it's not going to be easy, just because building libraries
portably and managing their inter-dependencies is not easy.  I wish it
were, and I'd love to be proved wrong.  But I'm pretty sure I won't.

> This also comes from the fact that libtool is incredibly bloated,
> and does really, really need a complete redesign.
> The redesign will only happen if someone who cares about it does it.

I disagree.  Its design is very good (thanks Gord!).  It's the
implementation that sucks.

> All that people like me will do is say `we shun libtool because it's
> incredibly bloated and badly need a redesign, and our life is currently
> much easier without it anyways'.

Sure, let's go back to static libraries alone, then introduce shared
libstdc++ on a handful of platforms, then get to libjava and find out
that it's indeed not easy to get the multiple libraries it relies on
linked together properly.  But then it will be too late.

> I'm reasonably certain I'm alone in thinking like this. Do you want
> libtool to go on ? stop being blind to its issues.

I'm not being blind.  I do see what's going on, but there's little I
can do about it.  I can't do it all by myself, and those who are
interested in shared libraries don't appear to be interested in
helping get libtool re-implemented properly.  So what can I do? :-(

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]