From: Dave Martin on
Applies to linux-2.6-tip/master or acme/perf-core

ARM ELF files use symbols with special names $a, $t, $d to
identify regions of ARM code, Thumb code and data within code
sections. This can cause confusing output from the perf tools,
especially for partially stripped binaries, or binaries
containing user-added zero-sized symbols (which may occur in
hand-written assembler which hasn't been fully annotated with
..size directives).

This patch filters out these symbols at load time.

Addressing architecture-specific cases in this way could get
quite messy-- if one architecture-specific hack is needed in
the symbol loading loop, more might be needed over time.
Adding a generic per-architecture symbol filtering hook might
help to mitigate this if more cases need to be supported.

Switching to libbfd as a generic image-handling backend for all
architectures might be a better long-term solution, since
libelf seems to be essentially a low-level parsing library only
at this stage, and doesn't deal with all the architecture
specifics. There's a generic bfd_is_target_special_symbol()
function which is used by binutils to filter out architecture-
specific symbols which are not "normal" symbols, which could
help us for this case.

Dave Martin (1):
perf symbols: ignore mapping symbols on ARM

tools/perf/util/symbol.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)
More majordomo info at
Please read the FAQ at