Re: State of the new config & build system

Keith Owens
2002-01-03T22:45:22Z

On Thu, 3 Jan 2002 17:11:37 -0500 (EST),
Alexander Viro <viro@math.psu.edu> wrote:
>On Fri, 4 Jan 2002, Keith Owens wrote:
>
>> * Mount COW layer over clean tree.
>> * Edit a file, writing to the COW layer.
>> * Build the kernel.
>> * Decide that you don't want the change, delete the COW version,
>> exposing the original version of the file, timestamp goes backwards.
>
>ITYM "creating a whiteout entry". unlink() on unionfs doesn't expose
>the underlying object.

It does in kbuild 2.5. You have a pristine source tree, start a
development layer, edit files, build a kernel, decide your edit was
wrong, delete the updated version, expose the original and kbuild 2.5
still gets it right. IMHO that model better fits kernel development.

The whiteout model makes it more difficult to revert to the standard
kernel, you have to copy the original code to your writeable layer to
back out changes. To satisfy the broken make design, you cannot copy
with timestamp. When the base layer changes to a new release, the COW
version does not get upgraded, even though it is supposed to be
identical to the base layer.

Again, I am not disagreeing with unionfs, it has its uses. kbuild
using make and relying solely on timestamps to detect changes is not
one of them. Especially when kbuild has to run on other operating
systems.