Messages in this thread | | | Date | Fri, 06 Jul 2012 12:17:44 +0100 | From | Paulo Marques <> | Subject | Re: "Inconsistent kallsyms data" error |
| |
Linus Torvalds wrote: > [...] > Notice how 'kallsyms_addresses' has the same value, but > 'kallsyms_num_syms' (and subsequent symbols until the page-aligned > __end_rodata symbol that gets them back in sync) do not. I have no > idea *why* this happens, but it definitely does. > > It seems the real difference is the size of the "kallsyms_addresses" > data structure. No idea why, though. > > This happens with current git (commit c4aed353b1b0), on an x86-64 > machine running current F17 as of today, with the attached config. > Maybe that makes somebody else able to recreate this and figure out > what is so magical about the layout that the exact kernel version and > config (and likely compiler/binutils versions) matter. > > Any ideas? Added a fairly random set of people who get mentioned in > the linker script commits etc.
Since kallsyms_addresses seems to change size, this means that there were symbols added in the second pass.
In the past, this usually happened when some symbols are near a section boundary and the alignment makes them included or excluded from the kernel symbol tables.
There was a recent thread from David Brown on the arm linux mailing list ("ARM: two possible fixes for the KALLSYMS build problem"). He tracked down the problem to having empty per_cpu sections on a non-smp build. The alignment of these sections made the symbols jump around and change from one build to the next. This particular problem might be ARM specific, though.
-- Paulo Marques - www.grupopie.com
"I used to be indecisive, but now I'm not so sure."
| |