Re: [-mm PATCH] kallsyms should prefer non weak symbols

Mathieu Desnoyers
2007-12-04T21:38:20Z

* Andrew Morton (akpm@linux-foundation.org) wrote:
> On Tue, 04 Dec 2007 20:35:32 +0000
> Paulo Marques <pmarques@grupopie.com> wrote:
>
> > When resolving symbol names from addresses with aliased symbol names,
> > kallsyms_lookup always returns the first symbol, even if it is a weak
> > symbol.
> >
> > This patch changes this by sorting the symbols with the weak symbols
> > last before feeding them to the kernel. This way the kernel runtime
> > isn't changed at all, only the kallsyms build system is changed.
> >
> > Another side effect is that the symbols get sorted by address, too. So,
> > even if future binutils version have some bug in "nm" that makes it fail
> > to correctly sort symbols by address, the kernel won't be affected by this.
> >
> >
>
> I don't understand the reason for making this change.
>

I created a module in LTTng that uses kallsyms to get the symbol
corresponding to a specific system call address. Unfortunately, all the
unimplemented syscalls were all referring to the (same) weak symbol
identifying an unrelated system call rather that sys_ni (or whatever
non-weak symbol would be expected). Kallsyms was dumbly returning the
first symbol that matched.

This patch makes sure kallsyms returns the non-weak symbol when there is
one, which seems to be the expected result.

Mathieu

--
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68