Messages in this thread Patch in this message | | | Date | Thu, 24 Jan 2013 10:44:57 -0800 | From | tip-bot for Namhyung Kim <> | Subject | [tip:perf/core] perf symbols: Ignore ABS symbols when loading data maps |
| |
Commit-ID: 3843b05d6ef20acbd4b0043e4ab7536602eb10ae Gitweb: http://git.kernel.org/tip/3843b05d6ef20acbd4b0043e4ab7536602eb10ae Author: Namhyung Kim <namhyung.kim@lge.com> AuthorDate: Wed, 21 Nov 2012 13:49:44 +0100 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Sun, 9 Dec 2012 08:46:05 -0300
perf symbols: Ignore ABS symbols when loading data maps
When loading symbols in a data mapping, ABS symbols (which has a value of SHN_ABS in its st_shndx) failed at elf_getscn(). And it marks the loading as a failure so already loaded symbols cannot be fixed up.
I'm not sure what should be done. Just ignore them for now. :)
Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1353502185-26521-19-git-send-email-eranian@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/symbol-elf.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index db0cc92..f63557b 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -718,6 +718,17 @@ int dso__load_sym(struct dso *dso, struct map *map, sym.st_value); used_opd = true; } + /* + * When loading symbols in a data mapping, ABS symbols (which + * has a value of SHN_ABS in its st_shndx) failed at + * elf_getscn(). And it marks the loading as a failure so + * already loaded symbols cannot be fixed up. + * + * I'm not sure what should be done. Just ignore them for now. + * - Namhyung Kim + */ + if (sym.st_shndx == SHN_ABS) + continue; sec = elf_getscn(runtime_ss->elf, sym.st_shndx); if (!sec)
| |