diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-01-22 17:37:02 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-01-22 20:41:57 -0500 |
commit | 9486aa38771661e96fbb51c549b9901b5df609d8 (patch) | |
tree | 72cecbff0cb5124c960feeec3a6ac1fff75c649a /tools/perf/builtin-top.c | |
parent | 57b84e53171ce672683faf1cab2e660965a6bdaf (diff) |
perf tools: Fix 64 bit integer format strings
Using %L[uxd] has issues in some architectures, like on ppc64. Fix it
by making our 64 bit integers typedefs of stdint.h types and using
PRI[ux]64 like, for instance, git does.
Reported by Denis Kirjanov that provided a patch for one case, I went
and changed all cases.
Reported-by: Denis Kirjanov <dkirjanov@kernel.org>
Tested-by: Denis Kirjanov <dkirjanov@kernel.org>
LKML-Reference: <20110120093246.GA8031@hera.kernel.org>
Cc: Denis Kirjanov <dkirjanov@kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Pingtian Han <phan@redhat.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-top.c')
-rw-r--r-- | tools/perf/builtin-top.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 05344c6210ac..b6998e055767 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <stdio.h> | 40 | #include <stdio.h> |
41 | #include <termios.h> | 41 | #include <termios.h> |
42 | #include <unistd.h> | 42 | #include <unistd.h> |
43 | #include <inttypes.h> | ||
43 | 44 | ||
44 | #include <errno.h> | 45 | #include <errno.h> |
45 | #include <time.h> | 46 | #include <time.h> |
@@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme) | |||
214 | len = sym->end - sym->start; | 215 | len = sym->end - sym->start; |
215 | 216 | ||
216 | sprintf(command, | 217 | sprintf(command, |
217 | "objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s", | 218 | "objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s", |
218 | BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start), | 219 | BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start), |
219 | BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path); | 220 | BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path); |
220 | 221 | ||
@@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme) | |||
308 | struct source_line *line; | 309 | struct source_line *line; |
309 | char pattern[PATTERN_LEN + 1]; | 310 | char pattern[PATTERN_LEN + 1]; |
310 | 311 | ||
311 | sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4, | 312 | sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4, |
312 | map__rip_2objdump(syme->map, symbol->start)); | 313 | map__rip_2objdump(syme->map, symbol->start)); |
313 | 314 | ||
314 | pthread_mutex_lock(&syme->src->lock); | 315 | pthread_mutex_lock(&syme->src->lock); |
@@ -537,7 +538,7 @@ static void print_sym_table(void) | |||
537 | if (nr_counters == 1 || !display_weighted) { | 538 | if (nr_counters == 1 || !display_weighted) { |
538 | struct perf_evsel *first; | 539 | struct perf_evsel *first; |
539 | first = list_entry(evsel_list.next, struct perf_evsel, node); | 540 | first = list_entry(evsel_list.next, struct perf_evsel, node); |
540 | printf("%Ld", first->attr.sample_period); | 541 | printf("%" PRIu64, (uint64_t)first->attr.sample_period); |
541 | if (freq) | 542 | if (freq) |
542 | printf("Hz "); | 543 | printf("Hz "); |
543 | else | 544 | else |
@@ -640,7 +641,7 @@ static void print_sym_table(void) | |||
640 | 641 | ||
641 | percent_color_fprintf(stdout, "%4.1f%%", pcnt); | 642 | percent_color_fprintf(stdout, "%4.1f%%", pcnt); |
642 | if (verbose) | 643 | if (verbose) |
643 | printf(" %016llx", sym->start); | 644 | printf(" %016" PRIx64, sym->start); |
644 | printf(" %-*.*s", sym_width, sym_width, sym->name); | 645 | printf(" %-*.*s", sym_width, sym_width, sym->name); |
645 | printf(" %-*.*s\n", dso_width, dso_width, | 646 | printf(" %-*.*s\n", dso_width, dso_width, |
646 | dso_width >= syme->map->dso->long_name_len ? | 647 | dso_width >= syme->map->dso->long_name_len ? |