On Tue, 2003-09-30 at 02:24 -0700, David S. Miller wrote:
> I think they are the same. It's module building depending upon the
> kernel image being up to date.
> modules: vmlinux image
> ... blah blah blah
> or however you want to express it in the makefiles.
In the case of modversions, we are talking about the fact that it may be
physically _impossible_ to build a module referencing an in-kernel
symbol, if the checksum required for that symbol -- the 'version string'
-- is not yet calculated. If the version strings are generated as a
side-effect of compiling the files which actually export the symbols in
question, then it's necessary to do that before building any module
which attempts to use those symbols.
Note that it's not actually necessary to provide a vmlinux file, nor to
do any linking. It's only necessary to perform those steps which produce
the version strings for those symbols actually referenced by the modules
which are being built.
That is the requirement for correctness from the makefiles; nothing
more. Of course it's usually considered acceptable for the makefiles to
recompile _more_ than is necessary, so your way of expressing it above
could indeed be a first, extremely suboptimal, attempt at a 'fix' if the
build is indeed currently broken in the way that you suggest.
> I don't see how this changes the argument I'm trying to make.
> I'm saying that either you accept that the kernel image must be
> uptodate in order to build modules, or you don't. It doesn't matter
> what creates that dependency.
I agree with your assertion -- it is true that I either accept that fact
or I don't.
Furthermore, I agree that if it is physically necessary for the kernel
image to be up to date in order to build modules, then it would be a bug
for the build system not to do so.
That is all irrelevant to the question which started this thread though.
That would be correctly stated as follows:
I am saying that even if I run 'make all', I do not accept that the
resulting kernel image should be _different_ when I change any option
from 'n' to 'm'.