Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf revert from Ingo Molnar:
 "This fixes the 'perf top' regression Markus Trippelsdorf reported"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  Revert "perf symbols: Demangle cloned functions"
This commit is contained in:
Linus Torvalds 2013-09-29 10:04:03 -07:00
commit cac6653529

View File

@ -928,33 +928,8 @@ int dso__load_sym(struct dso *dso, struct map *map,
* to it... * to it...
*/ */
if (symbol_conf.demangle) { if (symbol_conf.demangle) {
/* demangled = bfd_demangle(NULL, elf_name,
* The demangler doesn't deal with cloned functions.
* XXXX.clone.NUM or similar
* Strip the dot part and readd it later.
*/
char *p = (char *)elf_name, *dot;
dot = strchr(elf_name, '.');
if (dot) {
p = strdup(elf_name);
if (!p)
goto new_symbol;
dot = strchr(p, '.');
*dot = 0;
}
demangled = bfd_demangle(NULL, p,
DMGL_PARAMS | DMGL_ANSI); DMGL_PARAMS | DMGL_ANSI);
if (dot)
*dot = '.';
if (demangled && dot) {
demangled = realloc(demangled, strlen(demangled) + strlen(dot) + 1);
if (!demangled)
goto new_symbol;
strcpy(demangled + (dot - p), dot);
}
if (p != elf_name)
free(p);
if (demangled != NULL) if (demangled != NULL)
elf_name = demangled; elf_name = demangled;
} }