He Kuang has described this problem at [1] that, on ARM64, perf report output wrong symbol for a shared object.
These two patches solve this problem. The key is patch 2/2: force adjust symbol for shared object. However, after setting dso->adjust_symbols, map__rip_2objdump() also need to be adjust, or perf annotate reports incorrect result. Patch 1/1 prepare this change. [1] http://lkml.kernel.org/g/[email protected] Wang Nan (2): perf tools: Record text offset in dso to calculate objdump address perf tools: Adjust symbol for shared objects tools/perf/util/dso.h | 1 + tools/perf/util/map.c | 14 ++++++++++++++ tools/perf/util/symbol-elf.c | 13 +++++++------ 3 files changed, 22 insertions(+), 6 deletions(-) Signed-off-by: Wang Nan <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Cody P Schafer <[email protected]> Cc: He Kuang <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Kirill Smelkov <[email protected]> Cc: Masami Hiramatsu <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Li Zefan <[email protected]> Cc: [email protected] -- 1.8.3.4

