[PATCH] fix for pseudo symbol swapping with scripts/kallsyms - linux-2.6.10-rc1-bk12 & gcc 3.4.2

From: Alexander Stohr
Date: Wed Nov 03 2004 - 09:35:17 EST


Hello,

when trying out gcc 3.4.2 (in contrast to my former gcc 3.3.3)
with a recent bitkeeper snapshot of the linux kernel (2.6.10-rc1-bk12)
i suddenly got a notification about problems with symbol check
and hinting me for turning on CONFIG_KALLSYMS_EXTRA_PASS, thus
suggesting me to turn on tripple pass bzImage linking as a
short term work around.

a deeper analysis of the symbols (using nm and a hacked in table
dump for kallsyms) showed me that the symbols "__sched_text_start"
and "__down" did fall onto the very same memory location in
linker run 2 and 3 and further did swap their order! (a-z sorted?)
in linker run 1, there was a small offset between them for whatever
reason which prevented them from beeing consolidated and swapped.
(i dont see what makes up the difference here. take it as a hint.)

as such names, like the *_start and *_end symbols, are only used
for the kernel integrated stack dumps range checking, and even
that is only needed for some two archs, my solution of choice
was to add all similar "no real data" symbols to the list of
stripped symbols in the sources of the kallsyms application.

Below you will find my patch for inclusion into the Linux kernel.

-Alex.

PS: please CC me on replys as i am not subscribed to the lkml.

--
Geschenkt: 3 Monate GMX ProMail + 3 Top-Spielfilme auf DVD
++ Jetzt kostenlos testen http://www.gmx.net/de/go/mail ++

Attachment: linux-2.6.10-rc1-bk12-kallsyms.patch.bz2
Description: Binary data