perf symbols: Fix missing label symbols
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 31 Jul 2014 06:00:46 +0000 (09:00 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 13 Aug 2014 22:20:39 +0000 (19:20 -0300)
Label symbols are missing because elf_sec__is_a() fails to find the
section because the section strings do not match the section headers
because the sections headers are from the 'runtime' object and the
sections strings are from the 'symbol source' object.

Fix by getting the section strings from the 'runtime' object so that
they match the section headers.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1406786474-9306-4-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/symbol-elf.c

index ec5ec1c9d9b561f79a7cc0f5a64bda8cafcc9223..9fb5e9e9f1617beeb18aaecb92a71d7fce2a74ce 100644 (file)
@@ -736,7 +736,7 @@ int dso__load_sym(struct dso *dso, struct map *map,
        if (symstrs == NULL)
                goto out_elf_end;
 
-       sec_strndx = elf_getscn(elf, ehdr.e_shstrndx);
+       sec_strndx = elf_getscn(runtime_ss->elf, runtime_ss->ehdr.e_shstrndx);
        if (sec_strndx == NULL)
                goto out_elf_end;