9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Gary V. Vaughan" <gary@vaughan.pe>
To: "weigelt@metux.de" <weigelt@metux.de>,
	Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Cc: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] Plan9 development
Date: Mon, 15 Nov 2010 11:17:59 +0700	[thread overview]
Message-ID: <ABFE2C76-EB0E-4A44-9909-65F015E5C4AD@vaughan.pe> (raw)
In-Reply-To: <20101115010237.GA2116@nibiru.local>

On 15 Nov 2010, at 08:02, Enrico Weigelt <weigelt@metux.de> wrote:
> * Gary V. Vaughan <gary@gnu.org> wrote:
>> People like to beat on GNU Libtool, and in some cases that criticism is
>> not undeserved... but in my experience, many critics of the tool come
>> from a perspective of building on a single architecture. 
> 
> Actually, I'm building for lots of different archs almost all the day.
> Crosscompiling w/ sysroot, of course. And that's exactly the point
> where libtool and other autotools stuff was quite unusable until just
> a few years ago (eg. passed *wrong* library pathes to the toolchain).

I have been compiling cross-platform Free Software for a living for about 8
years now, and I have been maintaining GNU Libtool for close to twice that
long. I have never used sysroot in all that time, and no else offered patches
until quite recently. Libtool has been immeasurably useful to me entirely
without that particular feature. At the risk of getting off topic, that's kind of the
point of free software - if it doesn't work quite the way you would like, fix it!
If your fixes make any kind of sense, they'll likely be adopted upstream for
everyone else to enjoy too.

>> That said, your comment strikes me as entirely unsubstantiated. Why do
>> you think the concepts themselves are insane? 
> 
> The whole idea of libtool essentially being a command line filter
> instead of defining an own coherent abstraction interface

What is incoherent or unabstract about offering a static-library like interface
to building shared libraries, or an ELF like library versioning scheme?

> and one
> implementation/configuration instance per target instead of an
> autofooled instance per individual package build.

How does that scale in the face of a dozen or more OSes, each with at least
a handful of supported library releases and compiler revisions each with a
handful of vendor maintenance patches, each with several hundred API
entry-points of which several dozen of each have non-conformances or
outright bugs. Worse, many of my clients mix and match gcc with vendor
ldd and runtime in various combinations or install and support 3 or more
compilers per architecture. Libtool figures out what to do in all of those
thousands of combinations, by probing the environment at build time... I'd
*much* rather wait 90 seconds for each build that try to maintain a giant
tabulation with thousands of entries, which go out of date every time a new
patch or revision of libc or the compiler or the os or the linker comes along.

>> Setting aside the admitted implementation shortcomings for the sake 
>> of argument; if you were
>> designing GNU Libtool from scratch, how would you do it differently?
> 
> See git://pubgit.metux.de/projects/unitool.git

Java? For a bootstrapping tool? Does Java even get worthwhile support
outside of Windows and Solaris these days? If it works for you, that's
great, but I would have an extremely hard sell on my hands if I told my
clients they would need to have a working Java runtime on Tru64 Unix
before I could provide a zlib build recipe for them :-o

> 
>>  1. Unix variants (including POSIX layers of non-Unix architectures)
>>     build shared libraries in vastly different ways, GNU Libtool
>>     needs to handle all of them;
> 
> That's an issue of individual platform backends, which should be 
> completely transparent to the calling package.

Agreed, that's what libtool provides, but to do that it needs to be intimately
familiar with how each combination works. It certainly shouldn't be trying
to do that without calling the vendor compiler and linker.

>>  3. There's no use in fighting against GNU Autoconf and GNU Automake,
> 
> Ah, resistance is futile ? ;-o

Without user acceptance, that 2 man years of effort I could sink into a new
all singing all dancing build system would be a waste of my time. I'd much
rather spend that time on tools people will get mileage from.

>>  1. Once installed, it is useable outside the GNU eco-system by any
>>     build-system that is prepared to call libtool rather than the
>>     C-compiler for building and linking against shared compilation
>>     units;
> 
> Anyone seriously doing that ? I only see a wide tendency to move away
> from libtool in GNU world ...

Yep. If I'm porting a cmake package (for example) to the 30 architectures
we support, and shared libraries are required - calling the installed libtool
from the cmake rules is an order of magnitude less work than trying to
encode all the different link flags, install and post install rules or other
system specific peculiarities into the compile and link rules in every build
file... And also a lot easier than trying to shoehorn a libtool instance into
the porting source tree. There's a perfectly good working /usr/local/bin/libtool
so why not use that?  

> 
Cheers,
-- 
Gary V. Vaughan (gary@gnu.org)


  reply	other threads:[~2010-11-15  4:17 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-04  9:36 Admiral Fukov
2010-11-04  9:47 ` Lucio De Re
2010-11-04 10:20   ` Steve Simon
2010-11-04 11:30 ` Brantley Coile
2010-11-04 15:39 ` David Leimbach
2010-11-04 15:55   ` Stanley Lieber
2010-11-04 16:01     ` John Floren
2010-11-04 16:39       ` ron minnich
2010-11-04 16:57         ` Stanley Lieber
2010-11-04 17:01         ` Don Bailey
2010-11-04 17:19         ` Jeff Sickel
2010-11-04 22:20           ` Charles Forsyth
2010-11-05  1:41             ` Venkatesh Srinivas
2010-11-05  3:50               ` Bruce Ellis
2010-11-05  7:11                 ` Lucio De Re
2010-11-05  7:55                   ` Bruce Ellis
2010-11-05 13:31                     ` Eric Van Hensbergen
2010-11-05 15:16                       ` C H Forsyth
2010-11-05 17:07                       ` dexen deVries
2010-11-05 17:18                         ` Nick LaForge
2010-11-05 17:32                           ` dexen deVries
2010-11-05 17:39                             ` andrey mirtchovski
2010-11-05 17:55                               ` dexen deVries
2010-11-05 17:45                             ` David Leimbach
2010-11-05 18:14                               ` erik quanstrom
2010-11-05 18:37                                 ` roger peppe
2010-11-05 19:06                                   ` erik quanstrom
2010-11-08 11:04                                     ` roger peppe
2010-11-08 21:24                                       ` Bruce Ellis
2010-11-08 22:22                                         ` Charles Forsyth
2010-11-08 22:25                                           ` Bruce Ellis
2010-11-08 22:33                                           ` Charles Forsyth
2010-11-09  2:10                                             ` Jeff Sickel
2010-11-09  3:18                                               ` EBo
2010-11-09  8:10                                                 ` Bruce Ellis
2010-11-13 19:15                                             ` Enrico Weigelt
2010-11-05 20:37                         ` Eric Van Hensbergen
2010-11-06  0:55                           ` Charles Forsyth
2010-11-06  2:20                         ` Bruce Ellis
2010-11-06 20:24                           ` dexen deVries
2010-11-05 18:43             ` Bakul Shah
2010-11-13 19:24         ` Enrico Weigelt
2010-11-14  2:17           ` Gary V. Vaughan
2010-11-14  5:47             ` Anthony Sorace
2010-11-14  6:24               ` erik quanstrom
2010-11-14  8:13                 ` Gary V. Vaughan
2010-11-14 15:56                   ` Jacob Todd
2010-11-14 16:24                     ` ron minnich
2010-11-14  6:26               ` Russ Cox
2010-11-14  8:03                 ` Anthony Sorace
2010-11-14 15:23                 ` erik quanstrom
2010-11-14 17:46                   ` Russ Cox
2010-11-14 22:16                     ` erik quanstrom
2010-11-14  9:10             ` tlaronde
2010-11-14  9:32               ` Gary V. Vaughan
2010-11-14 10:22                 ` tlaronde
2010-11-14 10:50               ` Carl-Daniel Hailfinger
2010-11-14 11:47                 ` tlaronde
2010-11-14 21:44                 ` Charles Forsyth
2010-11-14 21:47                   ` Ori Bernstein
2010-11-18  5:30                   ` Joel C. Salomon
2010-11-18  5:57                     ` erik quanstrom
2010-11-18 22:50                     ` Federico G. Benavento
2010-11-19  2:06                       ` Joel C. Salomon
2010-11-19  3:13                         ` Federico G. Benavento
2010-11-25  9:39                       ` Greg Comeau
2010-11-15  4:29                 ` Gary V. Vaughan
2010-11-15  5:05                   ` Carl-Daniel Hailfinger
2010-11-15 15:48                   ` Dan Cross
2010-11-15 16:24                     ` Lucio De Re
2010-11-15 17:26                       ` Brian L. Stuart
2010-11-16  3:32                         ` lucio
2010-11-16  4:53                           ` erik quanstrom
2010-11-16  5:09                             ` lucio
2010-11-16 22:18                           ` Christopher Nielsen
2010-11-15 18:11                   ` Dave Eckhardt
2010-11-15 20:04                     ` Steve Simon
     [not found]           ` <79E9F966-3C4E-44D9-8B1F-D22C9548CE74@gnu.org>
2010-11-15  1:02             ` Enrico Weigelt
2010-11-15  4:17               ` Gary V. Vaughan [this message]
2010-11-15 16:22                 ` erik quanstrom
2010-11-17 23:48                 ` Enrico Weigelt
2010-11-04 16:00   ` erik quanstrom
2010-11-04 17:12     ` Admiral Fukov
2010-11-04 17:19       ` andrey mirtchovski
2010-11-04 17:30         ` Admiral Fukov
2010-11-04 20:27     ` David Leimbach
2010-11-04 12:15 dexen deVries
2010-11-04 12:48 ` Venkatesh Srinivas
2010-11-04 17:14   ` Admiral Fukov
2010-11-17  7:38 Pavel Zholkover
2010-11-17  7:44 ` Lucio De Re

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ABFE2C76-EB0E-4A44-9909-65F015E5C4AD@vaughan.pe \
    --to=gary@vaughan.pe \
    --cc=9fans@9fans.net \
    --cc=weigelt@metux.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).