mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Keith Owens <kaos@ocs.com.au>
To: linux-kernel@vger.kernel.org
Subject: Re: Announce: Kernel Build for 2.5, Release 2.0 is available
Date: Fri, 05 Apr 2002 22:52:43 +1000	[thread overview]
Message-ID: <7853.1018011163@ocs3.intra.ocs.com.au> (raw)
In-Reply-To: Your message of "05 Apr 2002 14:01:13 +0200." <p73k7rms6ba.fsf@oldwotan.suse.de>

On 05 Apr 2002 14:01:13 +0200, 
Andi Kleen <ak@suse.de> wrote:
>Keith Owens <kaos@ocs.com.au> writes:
>
>> 
>> More accurate kernel build, easier to write and understand Makefiles,
>> 30% faster than kbuild 2.4.  Now the nay-sayers will have to find
>> something else to complain about!
>
>I assume with kbuild 2.4 you mean the current makefiles. How does it
>compare at a single threaded build without -j ? 

On a smaller config (full config takes too long when single threaded).

kbuild 2.4:
	make oldconfig dep bzImage modules	6:25
	make bzImage modules (no changes)	0:22

kbuild 2.5:
	make oldconfig installable		4:45
	make installable (no changes)		0:16

>You seem to have written an awful lot of code just to build something.
>Perhaps it would have been easier to just replace make completely with a 
>custom builder @)

Would not have helped.  Apart from all the people who complain about
needing extra tools to build the kernel (remember the Python wars for
CML2?), the kernel build has some really nasty requirements :-

* Most dependencies are not listed.  kbuild has to work out which
  sources depend on which headers, sometimes sources include other
  sources.

* 2,200+ config options, each of which can affect as little as one file
  or as much as the entire kernel.  kbuild has to work out what each
  config option affects.

* Changing a config option must only rebuild the affected targets, not
  the entire kernel.

* Changing a command must rebuild only the affected targets, not the
  entire kernel.

* You can change a command from the makefile, from the command line or
  as a side effect of changing a config option.

* After applying a patch, kbuild must work out what has changed and
  only rebuild the affected targets.  Even if the patch changes the
  dependencies or commands!

Most of the work of kbuild 2.5 is tracking all the special cases, as is
a lot of the code in kbuild 2.4 Rules.make.  Any custom builder would
have to do the same amount of work and tracking, so replacing make by
another tool would not save anything.  I looked at the various make
replacements like scons, but none of them were ready for the
complexities of kbuild.


  reply	other threads:[~2002-04-05 12:53 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <7022.1018005968@ocs3.intra.ocs.com.au.suse.lists.linux.kernel>
2002-04-05 12:01 ` Andi Kleen
2002-04-05 12:52   ` Keith Owens [this message]
2002-04-05 13:29     ` Russell King
2002-04-05 14:33       ` Keith Owens
2002-04-09 19:00 [kbuild-devel] " Thomas Duffy
2002-04-10  1:11 ` Keith Owens
  -- strict thread matches above, loose matches on Subject: below --
2002-04-06  7:20 Keith Owens
2002-04-07  0:51 ` Keith Owens
     [not found] <p73k7rms6ba.fsf@oldwotan.suse.de.suse.lists.linux.kernel>
     [not found] ` <7853.1018011163@ocs3.intra.ocs.com.au.suse.lists.linux.kernel>
2002-04-05 14:37   ` Andi Kleen
2002-04-05 14:52     ` Keith Owens
2002-04-05 11:26 Keith Owens
2002-04-06  2:03 ` Keith Owens
2002-04-06 16:35   ` Russell King
2002-04-06 23:12     ` Keith Owens
2002-04-06 18:17   ` Larry McVoy
2002-04-07 14:18 ` Roman Zippel
2002-04-07 14:28   ` Keith Owens
2002-04-07 14:51     ` Roman Zippel
2002-04-07 14:53       ` Keith Owens
2002-04-07 15:38         ` Roman Zippel
2002-04-08  8:50   ` Keith Owens
2002-04-08  9:06     ` Roman Zippel
2002-04-08 12:04 ` Keith Owens
2002-04-09 13:08   ` Keith Owens
2002-04-10 11:48     ` Keith Owens
2002-04-14 13:23     ` Keith Owens
2002-04-16  1:58       ` Keith Owens
2002-04-05 10:59 Keith Owens
2002-04-05 11:09 ` Pavel Machek
2002-04-05 11:23   ` Sebastian Heidl
2002-04-05 18:25     ` Mike Fedyk
2002-04-06 18:31       ` Peter Samuelson
2002-04-08 16:16   ` Matthias Andree

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=7853.1018011163@ocs3.intra.ocs.com.au \
    --to=kaos@ocs.com.au \
    --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®