Re: kbuild 2.5 is ready for inclusion in the 2.5 kernel

Keith Owens
2002-05-07T04:17:28Z

On 6 May 2002 08:40:07 GMT,
Gerd Knorr <kraxel@bytesex.org> wrote:
>Just curious: If kbuild does all the work usually done by make (i.e.
>check timestamps, look what needs rebuilding, ...), why do you need make
>at all?

kbuild does not do all the work. It is a wrapper around make to
overcome problems which have bitten kbuild in the past and will
continue to bite us as long as we do things that make was not designed
to handle. Check out the replacements being written for make, you find
that almost all of them handle timestamps going backwards.

kbuild requires other processing that is not handled by make nor by any
of the proposed replacements. In particular, the two level dependency
chain on configs as well as timestamps.

>IMHO this is bad designed: People know what make is and how it
>works, but kbuild (ab)uses make in different ways. Which is bad from
>the usability point of view because people simply don't expect that.

kbuild has abused make for years. Look at all the code in the top
level Makefile, in Rules.make, the .depend and .hdepend files. All of
it is special processing for kbuild to do things that make does not do
automatically. Those requirements did not go away, I just handled it
in a cleaner method in kbuild 2.5.

>I think you should either use make the usual way, i.e. let make do all
>the timestamp checking (I know it is less strict, but I don't think it
>is a big issue because developers know how make works and what the
>pitfalls are).

You obviously believe in the "every kernel builder is an expert who
never makes mistakes" model. I don't. Everybody makes mistakes,
kernel build is too important to rely on fallible human actions.

>Or don't use make at all.

make does a very good job once it has been given a global makefile and
the timestamp skew has been handled. If I did not use make, I would
have write my own program which did exactly the same, pointless.