Re: piggy broken in 2.5.24 build

Kai Germaschewski (kai@tp1.ruhr-uni-bochum.de)
Sat, 22 Jun 2002 16:08:45 -0500 (CDT)


On Sat, 22 Jun 2002, Diego Calleja wrote:

> I compiled 2.5.24, with make dep, make bzImage, make modules....
> After that, as usually, make dep; make bzImage ...doesn't change nor
> recompile anything After that, I changed an option with menuconfig,
> "VGA 16-color graphics console support",and "3DFX Banshee/Voodoo 3
> display support" (because i can't see somethnig when i boot with it)
> from built-in to module. Then I run make dep; and it did make some small
> changes, as expected.
>
>
> Then make bzImage compiled the entier kernel again, or at less a big big
> part of it, not only the changes made in menuconfig. make modules
> recompiled things again, wich are not affected with the changes (ie:
> iptables modules).
>
> My questions is:
>
> It's not expected to do the same as 2.4 kernels, i mean, recompile only
> the changes made, not the entire thing?

If you toggled VGA 16-color support, that adds or removes the symbols
from fbcon-vga-planes.c to the list of export symbols.

After the toggle, make dep detects that and adapts
include/linux/modversions.h accordingly.

Now, if you "make" again, all files which include/linux/modversions.h need
to be rebuilt, since it changed. And that's a lot of files, as you've
noticed. The problem is that in reality, only a file which also *uses* one
of these exported symbols really changes. But make cannot know that, so it
recompiles everything which is possibly affected.

There's no easy way out from that, what you can of course do is turning
off CONFIG_MODVERSIONS - in that case you'll see that only very little
will be affected and rebuilt.

The fact that 2.4 recompiles little even in that case is since kbuild
there has bugs in it which lead to it forgetting to recompile files
(sometimes eventually resulting in "unresolved symbols in ...", which can
only be cured with make mrproper).

For the current kbuild, you should never need to do make mrproper, it
should always recognize changes and rebuild what's necessary.

> PD: What are you doing with kbuild 2.5? What parts are you integrating?
> Wich parts you aren't going to integrate?

I'm currently still doing small bits, shipped files, asm-offsets
generation and the like. I'm also preparing for separate build / src tree,
which makes the current Makefiles and kbuild-2.5's Makefile.in's basically
equivalent information-wise (though not syntactically).

If switching to kbuild-2.5's preprocessing phase will be necessary or make
sense I do not even know myself yet. So some more patience is needed
there.

--Kai

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/