Announce: Kernel Build for 2.5, Release 2.0 is available
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 9 lines · Keith Owens
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:22kbuild 2.5:
make oldconfig installable 4:45
make installable (no changes) 0:16
Hmm, can you explain the two minutes of difference ? Is the old build that inefficient?
-Andi
Quoted 7 lines · Andi Kleen
Quoted 6 lines · Keith Owens
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
Quoted 6 lines
Quoted 3 lines
kbuild 2.5:
make oldconfig installable 4:45
make installable (no changes) 0:16Hmm, can you explain the two minutes of difference ? Is the old build that inefficient?
Yes. kbuild 2.4 invokes a separate copy of make for each directory, with significant start up overhead. Plus it runs most directories twice, once for built in and once for modules, it was the only way to handle separate flags for kernel and module code. Rules.make has been trying to use make as a programming language, but it was never designed for that.
kbuild 2.5 does a lot of work up front (in C) to build a single, global makefile which only requires one copy of make and one pass over the entire kernel. When the global makefile has been built and the kernel is already up to date, make runs the global makefile with the entire kernel dependency tree in sub second time.
BTW, all kbuild 2.5 times so far have been using the unoptimized pre-processor programs, with all my debugging checks still turned on.