Re: kbuild: fix section mismatch check for vmlinux

From: Sam Ravnborg
Date: Mon Jun 11 2007 - 17:49:58 EST

On Mon, Jun 11, 2007 at 10:25:59AM +0200, Jan Beulich wrote:
> >vmlinux does not contain relocation entries which is
> >used by the section mismatch checks.
> >Reported by: Atsushi Nemoto <anemo@xxxxxxxxxxxxx>
> >
> >Use the individual objects as inputs to overcome
> >this limitation.
> >In modpost check the .o files and skip non-ELF files.
> >
> >Signed-off-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
> This still doesn't appear to catch all cases - since the checking logic works
> on a per-module basis, references between the individual .o files aren't
> being checked. A current instance where this is visible is x86-64's recently
> added alloc_bootmem_high_node (non-__init, in arch/x86_64/mm/built-in.o)
> calling __alloc_bootmem_core (__init, in mm/built-in.o). I suppose there's
> no way around linking $(KBUILD_VMLINUX_OBJS) into vmlinux.o, and
> checking that file instead.

It is planned to do something around these lines.
Today we do a lot of linking in the final stages and the Makefile
magic involved is starting to make my head spinning.
So my plan is to redo all the "link vmlinux" stuff and
locate it in the top-level Kbuild file.
As part of this process I would then create vmlinux.o as one
of the steps - it will have all sections intact and allow
for a full modpost run.

We would then lack the hint about what subsystem caused the
warning bot most often a "git grep" tells me that in less than 10
seconds anyway.

The extra link step would also benefit kallsyms check I think so
it will not be waste of time.

But summer has hit us so it may be after next merge window.
The changes would anyway need to cook in -mm a while before
I would push them to mainstream.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at