On Tue, 29 May 2001 11:28:28 +0200 (CEST), 
Kai Germaschewski <[EMAIL PROTECTED]> wrote:
>On Mon, 28 May 2001, Keith Owens wrote:
>> My aim is to detect if the command has changed and force the target to
>> be rebuilt.
>
>I started my own rewrite of kbuild some time ago, I never got around to
>publish it, but I believe it has some good ideas in it. Here's what I do
>in your case:
>
>[assorted make rules for CC snipped]

While your rules are good, they only handle the common case of
compiling a kernel source to a kernel object.  That is not really a
problem, there are several solutions for the common case.  I am looking
at the unusual cases that require explicit user commands.  Most are
$(HOSTCC) commands but some run special scripts, there is no kbuild
support for automatic rebuild in these cases.

>This means that I even get modversions etc. right.

I doubt it ;).  modversions is fundamentally broken as designed and has
been since day 1.  It is absolutely wrong to calculate a hash once at
the start then never recalculate it.  Config and code changes all
affect the hash but we rely on the user manually running make mrproper,
make dep to calculate the new hash.  Even if you move the hash
generation into the compile path so it is recalculated automatically,
you still have the problem of deciding where the changed symbols are
used.  The hash for foo() has changed, where is foo() used?

And don't get me started on the third party developers who tell users
to copy modversions.h and .config into other directories for external
compilation.  The theory is that modversions and .config are for the
current kernel but there is _NO_ verification that the files are in
sync, either with each other or with the kernel.

>Maybe I should mention that I achieve this without relying on any new
>external tools/parsers/whatever, except for a mkdep replacement, which is
>basically mec's dancing Makefile's fix_dep program, that handles the
>splitted autoconf.h :)

I want:

* Support for external source compilation.
* Add on patch sets.
* Separate source and object directories.
* Verification of rules, especially what gets linked into vmlinux.
* Detection of all changes, not just the common cases.

Now if you can do that without external tools, let me know.


_______________________________________________
kbuild-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/kbuild-devel

Reply via email to