summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-29 10:04:03 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-29 10:04:03 -0700
commitcac6653529eeac9b661fc8342c47d849c3adb085 (patch)
treec65a3efd8149d065611b570fa330c67798fe3745
parentb97b869a83318c473aa5fce8dcd45edb0275004e (diff)
parent14951f22f1cc8375ead345d2ca08455e91f2152b (diff)
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"
-rw-r--r--tools/perf/util/symbol-elf.c27
1 files changed, 1 insertions, 26 deletions
diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index d2a888e2e058..a9c829be5216 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -928,33 +928,8 @@ int dso__load_sym(struct dso *dso, struct map *map,
* to it...
*/
if (symbol_conf.demangle) {
- /*
- * 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,
+ demangled = bfd_demangle(NULL, elf_name,
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)
elf_name = demangled;
}