From: Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
To: Keith Owens <kaos@ocs.com.au>
Cc: <linux-kernel@vger.kernel.org>, <kbuild-devel@lists.sourceforge.net>
Subject: Re: State of the new config & build system
Date: Sat, 29 Dec 2001 13:43:07 +0100 (CET) [thread overview]
Message-ID: <Pine.LNX.4.33.0112291324490.2889-102000@vaio> (raw)
In-Reply-To: <8541.1009594444@ocs3.intra.ocs.com.au>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 3878 bytes --]
[CC trimmed]
On Sat, 29 Dec 2001, Keith Owens wrote:
> [...]
> Auto detection of changed commands/flags
>
> That was a decent fix for part of the problem, but it did not address
> tracking user commands nor host compiles. It did not allow for
> separate source and object trees, for read only source trees, nor did
> it handle the more esoteric cases like modules being built from
> multiple directories.
Some people asked for what my patch looked like, so I resurrected it. I
moved it to 2.5.2-pre3. As it caused lots of rejects (maintaining kbuild
is a non-trivial task, isn't it, Keith?), I only fixed the problems for my
.config. So the attached patch will break with most .configs. However,
people who want to take a look can take my .config and play with that -
it's strictly proof-of-concept only.
(The breakage is easily fixable, it's just quite a bit of mostly trivial
work).
And yes, it doesn't fix the separate source / objects tree issue. But IMO
that's not a problem that needs to be fixed, it's an additional feature
which I didn't even try to attack (it may be possible to get there with
VPATH, though).
To try it, patch your kernel,
mv ../config-2.5 .config
make oldconfig
make # builds bzImage and modules
A subsequent make will only rebuild what's needed:
[kai@vaio linux-2.5.2-pre3.kbuild]$ time make
make -f Makefile.build boot
make[1]: Entering directory
`/home/kai/kernel/v2.5/linux-2.5.2-pre3.kbuild'
Generating include/linux/compile.h ...
Preprocessing arch/i386/boot/bsetup.s ...
Assembling (AS) arch/i386/boot/bsetup.o ...
Linking arch/i386/boot/bsetup ...
Compiling init/version.o ...
Linking vmlinux ...
Generating System.map ...
Building arch/i386/boot/compressed/piggy.o
Linking arch/i386/boot/compressed/bvmlinux
Copying to arch/i386/boot/compressed/bvmlinux.out
Building arch/i386/boot/bzImage
Root device is (3, 2)
Boot sector 512 bytes.
Setup is 4764 bytes.
System is 715 kB
make[1]: Leaving directory `/home/kai/kernel/v2.5/linux-2.5.2-pre3.kbuild'
real 0m10.230s
user 0m8.510s
sys 0m1.050s
For each make, compile.h is updated, thus causing init/version.o to be
recompiled and vmlinux to be relinked. - I kept the behavior of the
current kbuild. Not regenerating compile.h will give:
[kai@vaio linux-2.5.2-pre3.kbuild]$ time make
make -f Makefile.build boot
make[1]: Entering directory
`/home/kai/kernel/v2.5/linux-2.5.2-pre3.kbuild'
make[1]: Nothing to be done for `boot'.
make[1]: Leaving directory `/home/kai/kernel/v2.5/linux-2.5.2-pre3.kbuild'
real 0m7.155s
user 0m6.790s
sys 0m0.290s
As an example, change one file:
[kai@vaio linux-2.5.2-pre3.kbuild]$ touch drivers/isdn/hisax/callc.c
[kai@vaio linux-2.5.2-pre3.kbuild]$ time make
make -f Makefile.build boot
make[1]: Entering directory
`/home/kai/kernel/v2.5/linux-2.5.2-pre3.kbuild'
Compiling drivers/isdn/hisax/callc.o ...
Linking module drivers/isdn/hisax/hisax.o ...
make[1]: Leaving directory `/home/kai/kernel/v2.5/linux-2.5.2-pre3.kbuild'
real 0m9.433s
user 0m8.780s
sys 0m0.520s
$ diffstat pp-kbuild-2.5.2-pre3
00_version | 5
Documentation/DocBook/Makefile | 3
Makefile | 507 +++----------------------
Makefile.build | 460 ++++++++++++++++++++++
Makefile.config | 32 +
Makefile.end | 37 +
Makefile.vars | 130 ++++++
Rules.make | 326 ----------------
arch/i386/Makefile | 70 ---
[...]
scripts/Makefile | 23 -
scripts/fix_dep.c | 406 ++++++++++++++++++++
scripts/mkdep.c | 628 -------------------------------
169 files changed, 1849 insertions(+), 3107 deletions(-)
[-- Attachment #2: Type: APPLICATION/x-bzip2, Size: 43326 bytes --]
[-- Attachment #3: Type: APPLICATION/x-bzip2, Size: 5717 bytes --]
next prev parent reply other threads:[~2001-12-29 12:44 UTC|newest]
Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-28 0:24 Eric S. Raymond
2001-12-28 0:54 ` Dave Jones
2001-12-28 0:57 ` Eric S. Raymond
2001-12-28 1:15 ` Larry McVoy
2001-12-28 1:35 ` Keith Owens
2001-12-28 1:37 ` Larry McVoy
2001-12-28 1:41 ` Keith Owens
2001-12-28 1:47 ` Larry McVoy
2001-12-28 1:57 ` Keith Owens
2001-12-28 2:01 ` Larry McVoy
2001-12-28 14:14 ` Alan Cox
2001-12-28 14:16 ` Keith Owens
2001-12-28 17:14 ` Christer Weinigel
2001-12-28 17:39 ` Alan Cox
2001-12-29 1:44 ` Keith Owens
2001-12-29 4:09 ` Legacy Fishtank
2001-12-30 3:34 ` Viktor Rosenfeld
2001-12-30 4:24 ` Dave Jones
2001-12-30 14:37 ` Viktor Rosenfeld
2001-12-29 17:11 ` Christer Weinigel
2001-12-28 17:43 ` Larry McVoy
2001-12-28 18:17 ` Alan Cox
2001-12-28 20:54 ` Larry McVoy
2001-12-29 9:24 ` Anton Blanchard
2001-12-29 16:28 ` Larry McVoy
2002-01-01 4:03 ` Mike Touloumtzis
2002-01-01 8:26 ` Keith Owens
2002-01-06 8:55 ` [kbuild-devel] " Martin Mares
2002-01-06 22:19 ` Keith Owens
2002-01-09 17:16 ` Martin Mares
2002-01-01 8:55 ` Peter Samuelson
2001-12-28 22:31 ` Martin Dalecki
2001-12-28 23:02 ` Eric S. Raymond
2001-12-28 14:24 ` Alan Cox
2001-12-28 20:56 ` Kai Germaschewski
2001-12-28 21:16 ` Legacy Fishtank
2001-12-28 22:17 ` Linus Torvalds
2001-12-28 23:44 ` Kai Germaschewski
2001-12-30 12:05 ` [kbuild-devel] " Christoph Hellwig
2001-12-29 1:27 ` Keith Owens
2001-12-29 1:53 ` Alan Cox
2001-12-29 1:57 ` Keith Owens
2001-12-29 2:10 ` Alan Cox
2001-12-29 4:06 ` Legacy Fishtank
2001-12-29 13:32 ` Rik van Riel
2001-12-29 20:23 ` Linus Torvalds
2001-12-29 1:26 ` Keith Owens
2001-12-29 3:58 ` Legacy Fishtank
2001-12-29 4:21 ` Mike Castle
2001-12-29 4:44 ` Keith Owens
2001-12-29 4:52 ` Arnaldo Carvalho de Melo
2001-12-29 11:10 ` PORTUGUês EM?? Astinus
2001-12-29 6:59 ` State of the new config & build system Nicholas Knight
2001-12-29 7:41 ` Legacy Fishtank
2001-12-29 8:13 ` Andrew Morton
2001-12-29 9:40 ` Daniel Phillips
2002-01-03 10:46 ` Pavel Machek
2002-01-03 20:29 ` Dave Jones
2002-01-03 20:35 ` Alexander Viro
2002-01-03 20:46 ` Keith Owens
2002-01-03 21:30 ` Alexander Viro
2002-01-03 21:50 ` Keith Owens
2002-01-03 22:11 ` Alexander Viro
2002-01-03 22:44 ` Keith Owens
2002-01-04 1:49 ` Andreas Bombe
2002-01-04 2:31 ` Keith Owens
2002-01-04 21:40 ` Andreas Bombe
2001-12-29 7:42 ` Miles Lane
2001-12-29 8:02 ` Nicholas Knight
2001-12-29 8:11 ` Mike Castle
2001-12-28 22:51 ` Larry McVoy
2001-12-29 2:54 ` Keith Owens
2001-12-29 12:43 ` Kai Germaschewski [this message]
2001-12-28 1:22 ` Dave Jones
2001-12-28 1:36 ` [kbuild-devel] " Tom Rini
2001-12-28 1:36 ` Eric S. Raymond
2001-12-28 1:38 ` Keith Owens
2001-12-28 1:30 ` [kbuild-devel] " Keith Owens
2001-12-28 9:26 ` Legacy Fishtank
2001-12-28 9:42 ` Keith Owens
2001-12-28 16:34 ` Alan Cox
2001-12-28 20:01 ` Larry McVoy
2001-12-29 0:50 ` Keith Owens
2001-12-29 0:55 ` Larry McVoy
2001-12-28 20:38 ` Richard Gooch
2001-12-28 18:02 ` Linus Torvalds
2001-12-28 18:24 ` Alan Cox
2001-12-28 22:06 ` Linus Torvalds
2001-12-28 22:08 ` [kbuild-devel] " Eric S. Raymond
2001-12-28 22:29 ` Larry McVoy
2001-12-28 22:29 ` Linus Torvalds
2001-12-28 22:58 ` Eric S. Raymond
2001-12-29 9:18 ` Giacomo A. Catenazzi
2001-12-31 22:51 ` Horst von Brand
2001-12-31 22:55 ` Arnaldo Carvalho de Melo
2002-01-01 1:21 ` Peter Samuelson
2001-12-28 19:08 ` Riley Williams
2001-12-28 19:12 ` Eric S. Raymond
2001-12-28 20:26 ` Alexander Viro
2001-12-28 20:39 ` Eric S. Raymond
2001-12-30 13:58 ` [kbuild-devel] " Christoph Hellwig
2001-12-30 17:50 ` Jeff Garzik
2001-12-30 20:53 ` Hartmut Holz
2001-12-30 20:15 ` Adrian Bunk
2002-01-01 4:29 ` Horst von Brand
2001-12-31 23:32 ` Horst von Brand
2001-12-28 23:20 ` Alan Cox
2001-12-30 11:42 ` [kbuild-devel] " Kai Henningsen
2001-12-31 8:24 ` GOTO Masanori
2001-12-31 6:50 ` GOTO Masanori
2001-12-28 22:11 ` Linus Torvalds
2001-12-28 22:31 ` Eric S. Raymond
2001-12-29 21:24 ` [kbuild-devel] " Tom Rini
2001-12-29 22:43 ` Eric S. Raymond
2001-12-29 23:12 ` Tom Rini
2001-12-30 0:22 ` Russell King
2001-12-30 0:11 ` Eric S. Raymond
2001-12-30 5:39 ` Rob Landley
2001-12-30 13:59 ` Alan Cox
2001-12-30 17:14 ` David Woodhouse
2001-12-30 17:32 ` Tom Rini
2001-12-30 17:44 ` Russell King
2001-12-28 20:39 ` Legacy Fishtank
2001-12-28 20:41 ` Legacy Fishtank
2001-12-28 20:45 ` Eric S. Raymond
2001-12-28 21:19 ` Legacy Fishtank
2001-12-28 21:12 ` Eric S. Raymond
2001-12-28 22:27 ` Linus Torvalds
2001-12-28 23:05 ` Benjamin LaHaise
2001-12-29 0:59 ` Legacy Fishtank
2001-12-29 19:12 ` Linus Torvalds
2001-12-29 3:21 ` [kbuild-devel] " Keith Owens
2001-12-28 23:13 ` Alan Cox
2001-12-28 23:04 ` Eric S. Raymond
2001-12-28 23:10 ` Linus Torvalds
2001-12-28 23:12 ` Martin Dalecki
2001-12-29 13:01 ` Rik van Riel
2001-12-28 22:47 ` Martin Dalecki
2001-12-28 23:25 Stewart Smith
2001-12-29 12:01 Wayne.Brown
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=Pine.LNX.4.33.0112291324490.2889-102000@vaio \
--to=kai@tp1.ruhr-uni-bochum.de \
--cc=kaos@ocs.com.au \
--cc=kbuild-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.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
all inboxes | Powered by JetHome®