Skip to content

Commit

Permalink
Alpha Linux kernel fails with inconsistent kallsyms data
Browse files Browse the repository at this point in the history
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: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Bastian Blank authored and Linus Torvalds committed Jul 4, 2008
1 parent 1209726 commit 51597ac
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions arch/alpha/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@ SECTIONS
} :kernel
_etext = .; /* End of text section */

NOTES :kernel :note
.dummy : {
*(.dummy)
} :kernel

RODATA

/* Exception table */
. = ALIGN(16);
__ex_table : {
Expand All @@ -33,13 +40,6 @@ SECTIONS
__stop___ex_table = .;
}

NOTES :kernel :note
.dummy : {
*(.dummy)
} :kernel

RODATA

/* Will be freed after init */
. = ALIGN(PAGE_SIZE);
/* Init code and data */
Expand Down

0 comments on commit 51597ac

Please sign in to comment.