9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Gary V. Vaughan" <gary@vaughan.pe>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] Plan9 development
Date: Sun, 14 Nov 2010 16:32:34 +0700	[thread overview]
Message-ID: <F356F4F5-2040-4E74-A349-569B094D07BD@vaughan.pe> (raw)
In-Reply-To: <20101114091030.GA793@polynum.com>

[-- Attachment #1: Type: text/plain, Size: 4031 bytes --]

On 14 Nov 2010, at 16:10, tlaronde@polynum.com wrote:
> Hello,

Hi Thierry,

> On Sun, Nov 14, 2010 at 09:17:46AM +0700, Gary V. Vaughan wrote:
>> [[resent from my subscribed email address after the mailing list rejected the original]]
>> 
>> [...] 
>> AFAICT, without rewriting the entire GNU build system from the ground
>> up (and there is far too much momentum behind it to ever gain enough
>> traction to switch the GNU eco-system to an entirely new and different
>> build system anyway) the following precepts are immutable:
> 
> It took me less time to write R.I.S.K. (the building framework used
> for KerGIS and KerTeX)---and R.I.S.K. does shared libraries if supported
> and desired---from scratch than to try to understand auto*
> and libtool. Furthermore, the auto* and libtool were typically made
> for trying to do something "working" to some extend with a chaotic
> source. They typically manage to compile "things" written by
> programmers who have been encouraged to look at the finger ignoring
> the moon: to concentrate on the "GNU" tools and "GNU" libraries
> etc, and not on C89 (or C99), POSIX etc.

I mostly agree with everything you say here.  However, please try not
to confuse libtool (essentially a wrapper for vendor compilers that
allows developers to use the uniform ELFish conventions of the libtool
interface, rather than jump through the various peculiar vendor compiler
hoops for each new platform) with the GNU build system as a whole.  Note,
that Libtool actually works rather well in isolation, and doesn't rely
on the rest of the GNU build system to be useful.

> Furthermore, the tools were not written with cross-compilation in mind:
> compiling and testing a program to run it for obtaining an information
> is making the assumption that MATRIX == TARGET. Cross-compilation allows
> you to build with some assumptions and some warranties (on the MATRIX)
> for a TARGET that has perhaps not, by itself, all the utilities you are
> assuming.

Not true.  Auto* makes a valiant attempt at supporting cross compilation,
but when one's philosophy is "don't tabulate platform differences per
portability issue per vendor per release; actually check what the real
behaviour is"... and there is no runtime for the cross-environment on
the build host, what else can you do?  Auto*, in that case makes a
conservative guess, and allows the user to override it incase they know
better.

I think that's starting to get off topic though.

> The main problem is indeed "philosophy": encourage the bazaar even in
> the code. I personnally don't buy that. And the acronym "GNU is Not
> Unix" is a sophism since GNU will be strictly nothing without Unices,
> especially open source ones. But since GNU is not Unix, there are
> imbeciles that insist that a real GNU system must not conform to POSIX,
> because it is a Unix thing, neither to a C standard ([scornful]: if you
> really want this my dear, try "-pedantic"...).

In light of that, maybe you can suggest a better means for GNU Libtool
to prod the build environment and figure out what the characteristics
and limitations of shared libraries that need to be accounted for will
be?  Obviously, following the Auto* philosphy, we currently try out each
of the things we care about to see how they work, and then keep a record
of the results in order to build the libtool runtime script for
installation.

Does your build system work correctly with shared libraries in Mingw,
cygwin, AIX, HP-UX (to name just a few of the more awkward under-
featured shared library implementations I care about) under various
compiler and library releases?  How did you do that without either
probing the environment (which is what we do already) or tabulating
known results (which breaks every time you encounter a new system, and
requires maintenance for every supported combination of compiler/libc/OS
if a new variable is added to the tabulation)?

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

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 202 bytes --]

  reply	other threads:[~2010-11-14  9:32 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 [this message]
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
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=F356F4F5-2040-4E74-A349-569B094D07BD@vaughan.pe \
    --to=gary@vaughan.pe \
    --cc=9fans@9fans.net \
    /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).