Commit 51597acf authored by Bastian Blank's avatar Bastian Blank Committed by Linus Torvalds

Alpha Linux kernel fails with inconsistent kallsyms data

The build of the Alpha Linux kernel currently fails[1] with inconsistent
kallsyms data.  As I never saw that before, I thought about hardware
problems.  But in fact it is a bug in the Linux kernel.

The end of the rodata section is marked with the "__end_rodata" symbol.
This symbol have different aligning constraints than the inittext parts
and therefor the start marked "_sinittext".  Because of that the
__end_rodata symbol shifts between < _sinittext and == _sinittext.  The
later variant is seen as a code symbol and recorded in the kallsyms data.

On fix would be to move the exception table a little bit and get some
space between that two areas.

[1]: http://buildd.debian.org/fetch.cgi?pkg=linux-2.6&arch=alpha&ver=2.6.25-5&stamp=1213919009&file=log&as=raw

Cc: maximilian attems <max@stro.at>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 1209726c
...@@ -25,6 +25,13 @@ SECTIONS ...@@ -25,6 +25,13 @@ SECTIONS
} :kernel } :kernel
_etext = .; /* End of text section */ _etext = .; /* End of text section */
NOTES :kernel :note
.dummy : {
*(.dummy)
} :kernel
RODATA
/* Exception table */ /* Exception table */
. = ALIGN(16); . = ALIGN(16);
__ex_table : { __ex_table : {
...@@ -33,13 +40,6 @@ SECTIONS ...@@ -33,13 +40,6 @@ SECTIONS
__stop___ex_table = .; __stop___ex_table = .;
} }
NOTES :kernel :note
.dummy : {
*(.dummy)
} :kernel
RODATA
/* Will be freed after init */ /* Will be freed after init */
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
/* Init code and data */ /* Init code and data */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment