February 11, 2005

time for a real kernel build system

God I wish kernel builds used Cons or SCons (in a sensible way of course). I am so tired of changing one line in a kernel config file and watching everything get rebuilt, instead of only that-which-needs-rebuilding.

This goes for BSD as well as Linux. Today I'm getting my first in-depth Linux experience as I'm compiling a new kernel for a Knoppix hard disk install. Check this out from the make-kpkg man page:

"Please note that you must run a make-kpkg clean after configuring the kernel using ''make (x|menu)?config,'' since that creates the file include/linux/version.h without the append_to_version data (foo)."

Wait a second. I have to rebuild from scratch if I change the kernel config? Just so I can get some silly tag on end of the kernel version? What? FreeBSD doesn't require this--there's at least the possibility of some files not having to be rebuilt when you change the kernel config. (Though I'm not too sure this happens...it may be that every derived file is ultimately dependent on the kernel config file.)

But reading on:

"The simpliest solution is either to remove include/linux/version.h after configuring and before compiling, or running make-kpkg clean after configuring, before compiling."

Okay, so it's just a case of two tools fighting over a file, and resolving the problem requires a manual step. Which is sloppy automation, IMHO, but not as ridiculous a deal as I originally thought.

Somebody should write a tool to migrate Makefiles to Cons or SCons, then apply it to kernel builds & see how much gain there is in config tweak rebuilds. That could be the killer app for these tools.

Posted by Alan at February 11, 2005 03:17 PM
Comments
Post a comment












Remember personal info?