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>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include "../libslang.h"
|
||||
#include <elf.h>
|
||||
#include <inttypes.h>
|
||||
#include <sys/ttydefaults.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
@@ -57,7 +58,7 @@ static void map_browser__write(struct ui_browser *self, void *nd, int row)
|
||||
int width;
|
||||
|
||||
ui_browser__set_percent_color(self, 0, current_entry);
|
||||
slsmg_printf("%*llx %*llx %c ",
|
||||
slsmg_printf("%*" PRIx64 " %*" PRIx64 " %c ",
|
||||
mb->addrlen, sym->start, mb->addrlen, sym->end,
|
||||
sym->binding == STB_GLOBAL ? 'g' :
|
||||
sym->binding == STB_LOCAL ? 'l' : 'w');
|
||||
@@ -150,6 +151,6 @@ int map__browse(struct map *self)
|
||||
++mb.b.nr_entries;
|
||||
}
|
||||
|
||||
mb.addrlen = snprintf(tmp, sizeof(tmp), "%llx", maxaddr);
|
||||
mb.addrlen = snprintf(tmp, sizeof(tmp), "%" PRIx64, maxaddr);
|
||||
return map_browser__run(&mb);
|
||||
}
|
||||
|
Reference in New Issue
Block a user