(fwd) Alpha Linux kernel fails with inconsistent kallsyms data

From: maximilian attems
Date: Fri Jun 27 2008 - 06:35:35 EST


according to the build log
http://buildd.debian.org/fetch.cgi?pkg=linux-2.6;ver=2.6.25-6;arch=alpha;stamp=1214551466
alpha linux image built fine with belows patch,
please have an eye.

thanks

--
maks

----- Forwarded message from Bastian Blank <waldi@xxxxxxxxxx> -----

Date: Sun, 22 Jun 2008 22:11:43 +0200
From: Bastian Blank <waldi@xxxxxxxxxx>
To: debian-kernel@xxxxxxxxxxxxxxxx, rth@xxxxxxxxxxx
Cc: debian-alpha@xxxxxxxxxxxxxxxx
Subject: Alpha Linux kernel fails with inconsistent kallsyms data

Hi folks

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.

Bastian

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

--
The face of war has never changed. Surely it is more logical to heal
than to kill.
-- Surak of Vulcan, "The Savage Curtain", stardate 5906.5

diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S
index f13249b..ef37fc1 100644
--- a/arch/alpha/kernel/vmlinux.lds.S
+++ b/arch/alpha/kernel/vmlinux.lds.S
@@ -25,6 +25,13 @@ SECTIONS
} :kernel
_etext = .; /* End of text section */

+ NOTES :kernel :note
+ .dummy : {
+ *(.dummy)
+ } :kernel
+
+ RODATA
+
/* Exception table */
. = ALIGN(16);
__ex_table : {
@@ -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 */




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