From: Rob Landley <rob@landley.net>
To: Valdis.Kletnieks@vt.edu,
Embedded Linux mailing list <linux-embedded@vger.kernel.org>
Cc: Sam Ravnborg <sam@ravnborg.org>, linux-kernel@vger.kernel.org
Subject: Re: PATCH [0/3]: Simplify the kernel build by removing perl.
Date: Fri, 16 Jan 2009 15:54:00 -0600 [thread overview]
Message-ID: <200901161554.02054.rob@landley.net> (raw)
In-Reply-To: <15458.1232117682@turing-police.cc.vt.edu>
On Friday 16 January 2009 08:54:42 Valdis.Kletnieks@vt.edu wrote:
> On Fri, 16 Jan 2009 00:11:09 CST, Rob Landley said:
> > P.S. I still hope autoconf dies off and the world wakes up and moves
> > away from that. And from makefiles for that matter. But in the
> > meantime, I can work around it with enough effort.
>
> What do you propose autoconf and makefiles get replaced by?
At a first guess, meaningful standards and an acknowledgement that Linux is a
platform in its own right? Between the two of them, that's 90% of your
problem right there.
Not a new issue, here's a link from 2002:
http://news.cnet.com/2100-1001-950180.html
And here's a multi-vendor effort at a standards group (the 86open project to
definite a Unix binary standard for x86 processors) dissolving itself way back
in 1999 with a declaration that the Linux binary format already was an open
standard and other unixes should just use things like lxrun to support that:
http://www.telly.org/86open/
Also, it would be nice if configure steps could stop entangling 1) users
providing preferences (command line options like --prefix or most of the --
enable and --disable flags) for which things like kconfig might make more
sense, 2) probe for installed packages like zlib and enabling optional support
if found, 3) questions like "does my build environment provide strlcpy()".
Turning that into a big hairball does not help keep things simple.
> % wc pidgin/configure*
> 34287 118303 1004074 pidgin/configure
> 2499 7684 81532 pidgin/configure.ac
>
> Which you rather code, 2.5K lines of autoconf or 35K lines of configure
> script?
I consider it a false dichotomy. I prefer "neither", and have seen it done
successfully many times.
I've never built pidgin from source, but I've got the output of the binutils
build in a log file. How many of these tests are actually necessary on any
Linux system:
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking for suffix of object files... o
checking whether gcc accepts -g... yes
checking for library containing strerror... none required
checking how to run the C preprocessor... gcc -E
checking whether build environment is sane... yes
checking whether gcc and cc understand -c and -o together... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
It just goes on and on and on like this. Tests like "checking whether byte
ordering is bigendian... no" means "Either I didn't know endian.h existed, or
I don't trust it to be there". How about the long stretches checking for the
existence of header files specified by posix? Or this gem:
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
(If you can use awk, when is it _not_ there? Probable answer: there was some
broken version on irix back in 1992 with zero remaining seats today, and they
never went back to clean anything out of the makefile because "simplifying the
build" and "autoconf" do not go together, and because you can't sanely
regression test against build environments nobody has anymore.)
This argument is a can of worms, and the linux-kernel list probably isn't the
best place for it. However, "install mingw on windows instead of trying to
get your thing to build under Visual Studio" is a decent support strategy.
Tinycc and Intel's icc both implemented gcc extensions to build the kernel,
and the kernel's been removing such extensions where c99 versions are
available since then. Things like uClibc implement standards and copy glibc
extensions that are actually used.
In the era of open source, it's now a viable strategy to specify, document,
and require a standardized build environment. The way to make that build
environment portable is to keep it simple and standardized, not to create a
tower of #ifdefs testing the output of a huge environment probing shell
script.
Rob
next prev parent reply other threads:[~2009-01-16 21:54 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-02 8:07 PATCH [0/3]: Simplify the kernel build by removing perl Rob Landley
2009-01-02 8:13 ` [PATCH 1/3]: Replace kernel/timeconst.pl with kernel/timeconst.sh Rob Landley
2009-01-02 9:04 ` Sam Ravnborg
2009-01-02 12:00 ` Rob Landley
2009-01-02 19:33 ` H. Peter Anvin
2009-01-04 1:32 ` Rob Landley
2009-01-04 1:35 ` H. Peter Anvin
2009-01-04 12:07 ` Alan Cox
2009-01-04 18:36 ` H. Peter Anvin
2009-01-04 19:03 ` Rob Landley
2009-01-04 20:39 ` H. Peter Anvin
2009-01-05 0:59 ` Rob Landley
2009-01-03 6:28 ` Harvey Harrison
2009-01-03 12:28 ` Ingo Oeser
2009-01-04 1:36 ` Rob Landley
2009-01-04 5:07 ` Valdis.Kletnieks
2009-01-04 6:43 ` Rob Landley
2009-01-04 22:13 ` Jamie Lokier
2009-01-05 0:15 ` Bernd Petrovitsch
2009-01-05 2:23 ` Jamie Lokier
2009-01-05 10:46 ` Bernd Petrovitsch
2009-01-05 15:01 ` Jamie Lokier
2009-01-05 16:18 ` Bernd Petrovitsch
2009-01-06 0:06 ` Rob Landley
2009-01-05 21:07 ` Rob Landley
2009-01-05 4:50 ` Rob Landley
2009-01-05 12:29 ` Bernd Petrovitsch
2009-01-04 21:51 ` Alejandro Mery
2009-01-04 7:15 ` Michal Jaegermann
2009-01-05 0:41 ` Ray Lee
2009-01-05 5:08 ` Rob Landley
2009-01-02 8:14 ` [PATCH 2/3]: Remove perl from make headers_install Rob Landley
2009-01-02 9:09 ` Sam Ravnborg
2009-01-02 8:15 ` [PATCH 3/3]: Convert mkcapflags.pl to mkcapflags.sh Rob Landley
2009-01-02 9:12 ` Sam Ravnborg
2009-01-02 9:26 ` PATCH [0/3]: Simplify the kernel build by removing perl Arkadiusz Miskiewicz
2009-01-02 9:49 ` Christoph Hellwig
2009-01-02 10:16 ` Alejandro Mery
2009-01-02 10:30 ` Mark Miller
2009-01-02 11:18 ` Matt Keenan
2009-01-02 10:41 ` Måns Rullgård
2009-01-15 12:59 ` Pádraig Brady
2009-01-15 18:52 ` Jamie Lokier
2009-01-15 19:45 ` Måns Rullgård
2009-01-02 11:15 ` Rob Landley
2009-01-02 11:44 ` Sam Ravnborg
2009-01-02 12:56 ` Rob Landley
2009-01-02 14:04 ` Theodore Tso
2009-01-03 3:22 ` Jamie Lokier
2009-01-04 2:23 ` Rob Landley
2009-01-02 10:02 ` Mark Miller
2009-01-02 10:03 ` Mark Miller
2009-01-02 11:13 ` Rob Landley
2009-01-02 16:04 ` Matthieu CASTET
2009-01-03 19:46 ` Rob Landley
2009-01-03 20:10 ` Sam Ravnborg
2009-01-03 20:50 ` H. Peter Anvin
2009-01-04 1:47 ` Rob Landley
2009-01-04 1:45 ` Rob Landley
2009-01-04 8:09 ` Sam Ravnborg
2009-01-04 20:19 ` Rob Landley
2009-01-04 0:44 ` Robert Hancock
2009-01-04 1:39 ` David Brownell
2009-01-04 3:05 ` Rob Landley
2009-01-04 1:32 ` Rob Landley
2009-01-02 9:50 ` Paul Mundt
2009-01-02 10:32 ` Mark Miller
2009-01-02 10:57 ` Paul Mundt
2009-01-02 12:11 ` Mark Miller
2009-01-02 12:44 ` Rob Landley
2009-01-02 17:25 ` Wookey
2009-01-02 18:01 ` Sam Ravnborg
2009-01-02 19:27 ` H. Peter Anvin
2009-01-04 1:35 ` Rob Landley
2009-01-03 19:48 ` Rob Landley
2009-01-08 13:13 ` klaasjan gm
2009-01-08 15:04 ` Christian Gagneraud
2009-01-03 14:59 ` Wolfgang Denk
2009-01-03 22:54 ` Leon Woestenberg
2009-01-03 23:03 ` H. Peter Anvin
2009-01-04 0:37 ` Leon Woestenberg
2009-01-04 2:53 ` Rob Landley
2009-01-04 3:38 ` Markus Heidelberg
2009-01-04 4:57 ` Rob Landley
2009-01-04 2:06 ` Rob Landley
2009-01-04 2:14 ` H. Peter Anvin
2009-01-04 6:29 ` Rob Landley
2009-01-15 14:32 ` Pádraig Brady
2009-01-04 2:36 ` Jamie Lokier
2009-01-04 2:39 ` H. Peter Anvin
2009-01-04 2:43 ` H. Peter Anvin
2009-01-04 3:06 ` Paul Mundt
2009-01-04 10:23 ` Leon Woestenberg
2009-01-08 13:29 ` Mike Frysinger
2009-01-11 12:45 ` Bernd Petrovitsch
2009-01-12 3:36 ` Mark A. Miller
2009-01-12 5:11 ` H. Peter Anvin
2009-01-12 5:23 ` Mark A. Miller
2009-01-12 8:20 ` Paul Mundt
2009-01-12 9:18 ` Mark A. Miller
2009-01-12 9:41 ` Paul Mundt
2009-01-12 10:03 ` Mark A. Miller
2009-01-12 10:34 ` Paul Mundt
2009-01-12 17:56 ` Rob Landley
2009-01-12 18:04 ` Alan Cox
2009-01-12 8:27 ` Peter Korsgaard
2009-01-12 17:45 ` Rob Landley
[not found] ` <31014a580901111928u586e2246uccf370ff941c8a01@mail.gmail.com>
2009-01-12 5:35 ` Sam Ravnborg
2009-01-12 5:50 ` Mark A. Miller
2009-01-12 10:18 ` Sam Ravnborg
2009-01-12 10:22 ` Mark A. Miller
2009-01-12 10:44 ` Alexander Neundorf
2009-01-12 10:55 ` Mark A. Miller
2009-01-12 11:04 ` Alexander Neundorf
2009-01-12 10:38 ` Paul Mundt
2009-01-14 2:51 ` Jamie Lokier
2009-01-16 6:11 ` Rob Landley
2009-01-16 7:28 ` Alexander Neundorf
2009-01-16 14:54 ` Valdis.Kletnieks
2009-01-16 21:54 ` Rob Landley [this message]
2009-01-17 9:51 ` Jamie Lokier
2009-01-18 1:44 ` Rob Landley
2009-01-04 16:22 ` Vladimir Dronnikov
2009-01-04 1:24 ` PATCH [0/3]: Simplify the kernel build by removing perl v2 Rob Landley
2009-01-04 1:27 ` PATCH [1/3]: Replace kernel/timeconst.pl with kernel/timeconst.sh (v2) Rob Landley
2009-01-04 2:48 ` David Vrabel
2009-01-04 20:21 ` Rob Landley
2009-01-04 1:28 ` PATCH [2/3]: Remove perl from make headers_install Rob Landley
2009-01-04 1:29 ` PATCH [3/3]: Convert kernel/cpu/mkcapflags.pl to kernel/cpu/mkcapflags.sh Rob Landley
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=200901161554.02054.rob@landley.net \
--to=rob@landley.net \
--cc=Valdis.Kletnieks@vt.edu \
--cc=linux-embedded@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
/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).