* [PATCH] perftools: Fix build error @ 2011-01-20 9:32 Denis Kirjanov 2011-01-20 11:47 ` Ingo Molnar 2011-01-23 18:01 ` [tip:perf/urgent] perf tools: Fix 64 bit integer format strings tip-bot for Arnaldo Carvalho de Melo 0 siblings, 2 replies; 15+ messages in thread From: Denis Kirjanov @ 2011-01-20 9:32 UTC (permalink / raw) To: linux-kernel; +Cc: a.p.zijlstra, paulus, mingo, acme Fix perftools build error (ppc64 box) with PERF_VERSION = 2.6.38.rc1.47.g12fcdb CC builtin-top.o cc1: warnings being treated as errors builtin-top.c: In function 'print_sym_table': builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> --- tools/perf/builtin-top.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 05344c6..8202a2e 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -537,7 +537,7 @@ static void print_sym_table(void) if (nr_counters == 1 || !display_weighted) { struct perf_evsel *first; first = list_entry(evsel_list.next, struct perf_evsel, node); - printf("%Ld", first->attr.sample_period); + printf("%Ld", (unsigned long long)first->attr.sample_period); if (freq) printf("Hz "); else -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-20 9:32 [PATCH] perftools: Fix build error Denis Kirjanov @ 2011-01-20 11:47 ` Ingo Molnar 2011-01-20 15:44 ` Denis Kirjanov 2011-01-23 18:01 ` [tip:perf/urgent] perf tools: Fix 64 bit integer format strings tip-bot for Arnaldo Carvalho de Melo 1 sibling, 1 reply; 15+ messages in thread From: Ingo Molnar @ 2011-01-20 11:47 UTC (permalink / raw) To: Denis Kirjanov; +Cc: linux-kernel, a.p.zijlstra, paulus, acme * Denis Kirjanov <dkirjanov@kernel.org> wrote: > Fix perftools build error (ppc64 box) with PERF_VERSION = 2.6.38.rc1.47.g12fcdb > CC builtin-top.o > cc1: warnings being treated as errors > builtin-top.c: In function 'print_sym_table': > builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' > > Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> > --- > tools/perf/builtin-top.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > index 05344c6..8202a2e 100644 > --- a/tools/perf/builtin-top.c > +++ b/tools/perf/builtin-top.c > @@ -537,7 +537,7 @@ static void print_sym_table(void) > if (nr_counters == 1 || !display_weighted) { > struct perf_evsel *first; > first = list_entry(evsel_list.next, struct perf_evsel, node); > - printf("%Ld", first->attr.sample_period); > + printf("%Ld", (unsigned long long)first->attr.sample_period); Wouldnt %Lu solve this in a cleaner way? Thanks, Ingo ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-20 11:47 ` Ingo Molnar @ 2011-01-20 15:44 ` Denis Kirjanov 2011-01-20 17:22 ` Arnaldo Carvalho de Melo 2011-01-21 18:53 ` Arnaldo Carvalho de Melo 0 siblings, 2 replies; 15+ messages in thread From: Denis Kirjanov @ 2011-01-20 15:44 UTC (permalink / raw) To: Ingo Molnar; +Cc: linux-kernel, a.p.zijlstra, paulus, acme On 01/20/2011 02:47 PM, Ingo Molnar wrote: > > * Denis Kirjanov <dkirjanov@kernel.org> wrote: > >> Fix perftools build error (ppc64 box) with PERF_VERSION = 2.6.38.rc1.47.g12fcdb >> CC builtin-top.o >> cc1: warnings being treated as errors >> builtin-top.c: In function 'print_sym_table': >> builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' >> >> Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> >> --- >> tools/perf/builtin-top.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c >> index 05344c6..8202a2e 100644 >> --- a/tools/perf/builtin-top.c >> +++ b/tools/perf/builtin-top.c >> @@ -537,7 +537,7 @@ static void print_sym_table(void) >> if (nr_counters == 1 || !display_weighted) { >> struct perf_evsel *first; >> first = list_entry(evsel_list.next, struct perf_evsel, node); >> - printf("%Ld", first->attr.sample_period); >> + printf("%Ld", (unsigned long long)first->attr.sample_period); > > Wouldnt %Lu solve this in a cleaner way? > > Thanks, > > Ingo > I think that cleaner way is to use PRIu64. >From 492bf54effdf8c154e76c4ca734f27ce1db46df6 Mon Sep 17 00:00:00 2001 From: Denis Kirjanov <dkirjanov@kernel.org> Date: Thu, 20 Jan 2011 18:34:56 +0300 Subject: [PATCH] perftools: Fix build error CC perf.o CC builtin-top.o cc1: warnings being treated as errors builtin-top.c: In function 'print_sym_table': builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' make: *** [builtin-top.o] Error 1 Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> --- tools/perf/builtin-top.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 05344c6..a7bc50b 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -40,6 +40,7 @@ #include <stdio.h> #include <termios.h> #include <unistd.h> +#include <inttypes.h> #include <errno.h> #include <time.h> @@ -537,7 +538,7 @@ static void print_sym_table(void) if (nr_counters == 1 || !display_weighted) { struct perf_evsel *first; first = list_entry(evsel_list.next, struct perf_evsel, node); - printf("%Ld", first->attr.sample_period); + printf("%" PRIu64, first->attr.sample_period); if (freq) printf("Hz "); else -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-20 15:44 ` Denis Kirjanov @ 2011-01-20 17:22 ` Arnaldo Carvalho de Melo 2011-01-21 8:57 ` Han Pingtian 2011-01-21 18:53 ` Arnaldo Carvalho de Melo 1 sibling, 1 reply; 15+ messages in thread From: Arnaldo Carvalho de Melo @ 2011-01-20 17:22 UTC (permalink / raw) To: Denis Kirjanov; +Cc: Ingo Molnar, linux-kernel, a.p.zijlstra, paulus Em Thu, Jan 20, 2011 at 06:44:38PM +0300, Denis Kirjanov escreveu: > On 01/20/2011 02:47 PM, Ingo Molnar wrote: > > > > * Denis Kirjanov <dkirjanov@kernel.org> wrote: > > > >> Fix perftools build error (ppc64 box) with PERF_VERSION = 2.6.38.rc1.47.g12fcdb > >> CC builtin-top.o > >> cc1: warnings being treated as errors > >> builtin-top.c: In function 'print_sym_table': > >> builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' > >> > >> Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> > >> --- > >> tools/perf/builtin-top.c | 2 +- > >> 1 files changed, 1 insertions(+), 1 deletions(-) > >> > >> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > >> index 05344c6..8202a2e 100644 > >> --- a/tools/perf/builtin-top.c > >> +++ b/tools/perf/builtin-top.c > >> @@ -537,7 +537,7 @@ static void print_sym_table(void) > >> if (nr_counters == 1 || !display_weighted) { > >> struct perf_evsel *first; > >> first = list_entry(evsel_list.next, struct perf_evsel, node); > >> - printf("%Ld", first->attr.sample_period); > >> + printf("%Ld", (unsigned long long)first->attr.sample_period); > > > > Wouldnt %Lu solve this in a cleaner way? > > > > Thanks, > > > > Ingo > > > I think that cleaner way is to use PRIu64. Fuglier, definetely, but indeed, more portable, as I noticed when trying to build the tools on a RHEL4/Fedora3 machine, as there are people using such old beasts with modern kernels. I'll take the patch for perf/urgent, as it prevents building in .38, please consider going thru tools/perf and patching the other %Ld and %Lu instances :-) - Arnaldo > > >From 492bf54effdf8c154e76c4ca734f27ce1db46df6 Mon Sep 17 00:00:00 2001 > From: Denis Kirjanov <dkirjanov@kernel.org> > Date: Thu, 20 Jan 2011 18:34:56 +0300 > Subject: [PATCH] perftools: Fix build error > > CC perf.o > CC builtin-top.o > cc1: warnings being treated as errors > builtin-top.c: In function 'print_sym_table': > builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' > make: *** [builtin-top.o] Error 1 > > > Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> > --- > tools/perf/builtin-top.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > index 05344c6..a7bc50b 100644 > --- a/tools/perf/builtin-top.c > +++ b/tools/perf/builtin-top.c > @@ -40,6 +40,7 @@ > #include <stdio.h> > #include <termios.h> > #include <unistd.h> > +#include <inttypes.h> > > #include <errno.h> > #include <time.h> > @@ -537,7 +538,7 @@ static void print_sym_table(void) > if (nr_counters == 1 || !display_weighted) { > struct perf_evsel *first; > first = list_entry(evsel_list.next, struct perf_evsel, node); > - printf("%Ld", first->attr.sample_period); > + printf("%" PRIu64, first->attr.sample_period); > if (freq) > printf("Hz "); > else > -- > 1.7.3.4 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-20 17:22 ` Arnaldo Carvalho de Melo @ 2011-01-21 8:57 ` Han Pingtian 2011-01-21 13:20 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 15+ messages in thread From: Han Pingtian @ 2011-01-21 8:57 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Denis Kirjanov, Ingo Molnar, linux-kernel, a.p.zijlstra, paulus On Thu, Jan 20, 2011 at 03:22:18PM -0200, Arnaldo Carvalho de Melo wrote: > Em Thu, Jan 20, 2011 at 06:44:38PM +0300, Denis Kirjanov escreveu: > > On 01/20/2011 02:47 PM, Ingo Molnar wrote: > > > > > > * Denis Kirjanov <dkirjanov@kernel.org> wrote: > > > > > >> Fix perftools build error (ppc64 box) with PERF_VERSION = 2.6.38.rc1.47.g12fcdb > > >> CC builtin-top.o > > >> cc1: warnings being treated as errors > > >> builtin-top.c: In function 'print_sym_table': > > >> builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' > > >> > > >> Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> > > >> --- > > >> tools/perf/builtin-top.c | 2 +- > > >> 1 files changed, 1 insertions(+), 1 deletions(-) > > >> > > >> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > > >> index 05344c6..8202a2e 100644 > > >> --- a/tools/perf/builtin-top.c > > >> +++ b/tools/perf/builtin-top.c > > >> @@ -537,7 +537,7 @@ static void print_sym_table(void) > > >> if (nr_counters == 1 || !display_weighted) { > > >> struct perf_evsel *first; > > >> first = list_entry(evsel_list.next, struct perf_evsel, node); > > >> - printf("%Ld", first->attr.sample_period); > > >> + printf("%Ld", (unsigned long long)first->attr.sample_period); > > > > > > Wouldnt %Lu solve this in a cleaner way? > > > > > > Thanks, > > > > > > Ingo > > > > > I think that cleaner way is to use PRIu64. > > Fuglier, definetely, but indeed, more portable, as I noticed when trying > to build the tools on a RHEL4/Fedora3 machine, as there are people using > such old beasts with modern kernels. > > I'll take the patch for perf/urgent, as it prevents building in .38, > please consider going thru tools/perf and patching the other %Ld and > %Lu instances :-) There are also some %Lx in code, shall we change them with PRIx64? > > - Arnaldo > > > > > >From 492bf54effdf8c154e76c4ca734f27ce1db46df6 Mon Sep 17 00:00:00 2001 > > From: Denis Kirjanov <dkirjanov@kernel.org> > > Date: Thu, 20 Jan 2011 18:34:56 +0300 > > Subject: [PATCH] perftools: Fix build error > > > > CC perf.o > > CC builtin-top.o > > cc1: warnings being treated as errors > > builtin-top.c: In function 'print_sym_table': > > builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' > > make: *** [builtin-top.o] Error 1 > > > > > > Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> > > --- > > tools/perf/builtin-top.c | 3 ++- > > 1 files changed, 2 insertions(+), 1 deletions(-) > > > > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > > index 05344c6..a7bc50b 100644 > > --- a/tools/perf/builtin-top.c > > +++ b/tools/perf/builtin-top.c > > @@ -40,6 +40,7 @@ > > #include <stdio.h> > > #include <termios.h> > > #include <unistd.h> > > +#include <inttypes.h> > > > > #include <errno.h> > > #include <time.h> > > @@ -537,7 +538,7 @@ static void print_sym_table(void) > > if (nr_counters == 1 || !display_weighted) { > > struct perf_evsel *first; > > first = list_entry(evsel_list.next, struct perf_evsel, node); > > - printf("%Ld", first->attr.sample_period); > > + printf("%" PRIu64, first->attr.sample_period); > > if (freq) > > printf("Hz "); > > else > > -- > > 1.7.3.4 > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Han Pingtian Quality Engineer hpt @ #kernel-qe Red Hat, Inc Freedom ... courage ... Commitment ... ACCOUNTABILITY ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-21 8:57 ` Han Pingtian @ 2011-01-21 13:20 ` Arnaldo Carvalho de Melo 2011-01-24 2:53 ` Han Pingtian 0 siblings, 1 reply; 15+ messages in thread From: Arnaldo Carvalho de Melo @ 2011-01-21 13:20 UTC (permalink / raw) To: Denis Kirjanov, Ingo Molnar, linux-kernel, a.p.zijlstra, paulus Em Fri, Jan 21, 2011 at 04:57:21PM +0800, Han Pingtian escreveu: > On Thu, Jan 20, 2011 at 03:22:18PM -0200, Arnaldo Carvalho de Melo wrote: > > Em Thu, Jan 20, 2011 at 06:44:38PM +0300, Denis Kirjanov escreveu: > > > On 01/20/2011 02:47 PM, Ingo Molnar wrote: > > > > Wouldnt %Lu solve this in a cleaner way? > > > I think that cleaner way is to use PRIu64. > > Fuglier, definetely, but indeed, more portable, as I noticed when trying > > to build the tools on a RHEL4/Fedora3 machine, as there are people using > > such old beasts with modern kernels. > > I'll take the patch for perf/urgent, as it prevents building in .38, > > please consider going thru tools/perf and patching the other %Ld and > > %Lu instances :-) > There are also some %Lx in code, shall we change them with PRIx64? Right, one patch doing the conversion for the whole tools/perf tree would be better. Han, if you can after the patch make sure it builds in an RHEL4 machine, that would be great, Thanks, - Arnaldo ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-21 13:20 ` Arnaldo Carvalho de Melo @ 2011-01-24 2:53 ` Han Pingtian 2011-01-24 4:15 ` Han Pingtian 0 siblings, 1 reply; 15+ messages in thread From: Han Pingtian @ 2011-01-24 2:53 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Denis Kirjanov, Ingo Molnar, linux-kernel, a.p.zijlstra, paulus On Fri, Jan 21, 2011 at 11:20:11AM -0200, Arnaldo Carvalho de Melo wrote: > Right, one patch doing the conversion for the whole tools/perf tree > would be better. > > Han, if you can after the patch make sure it builds in an RHEL4 machine, > that would be great, OK, I'll test perf/urgent on RHEL4 environments. > > Thanks, > > - Arnaldo > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Han Pingtian Quality Engineer hpt @ #kernel-qe Red Hat, Inc Freedom ... courage ... Commitment ... ACCOUNTABILITY ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-24 2:53 ` Han Pingtian @ 2011-01-24 4:15 ` Han Pingtian 2011-01-24 12:27 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 15+ messages in thread From: Han Pingtian @ 2011-01-24 4:15 UTC (permalink / raw) To: Arnaldo Carvalho de Melo, Denis Kirjanov, Ingo Molnar, linux-kernel, a.p.zijlstra, paulus On Mon, Jan 24, 2011 at 10:53:04AM +0800, Han Pingtian wrote: > On Fri, Jan 21, 2011 at 11:20:11AM -0200, Arnaldo Carvalho de Melo wrote: > > Right, one patch doing the conversion for the whole tools/perf tree > > would be better. > > > > Han, if you can after the patch make sure it builds in an RHEL4 machine, > > that would be great, > OK, I'll test perf/urgent on RHEL4 environments. > > I have tested on RHEL4, the building works fine. > > Thanks, > > > > - Arnaldo -- Han Pingtian Quality Engineer hpt @ #kernel-qe Red Hat, Inc Freedom ... courage ... Commitment ... ACCOUNTABILITY ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-24 4:15 ` Han Pingtian @ 2011-01-24 12:27 ` Arnaldo Carvalho de Melo 0 siblings, 0 replies; 15+ messages in thread From: Arnaldo Carvalho de Melo @ 2011-01-24 12:27 UTC (permalink / raw) To: Denis Kirjanov, Ingo Molnar, linux-kernel, a.p.zijlstra, paulus Em Mon, Jan 24, 2011 at 12:15:20PM +0800, Han Pingtian escreveu: > On Mon, Jan 24, 2011 at 10:53:04AM +0800, Han Pingtian wrote: > > On Fri, Jan 21, 2011 at 11:20:11AM -0200, Arnaldo Carvalho de Melo wrote: > > > Han, if you can after the patch make sure it builds in an RHEL4 machine, > > > that would be great, > > OK, I'll test perf/urgent on RHEL4 environments. > > > > I have tested on RHEL4, the building works fine. Thanks a lot for testing, - Arnaldo ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-20 15:44 ` Denis Kirjanov 2011-01-20 17:22 ` Arnaldo Carvalho de Melo @ 2011-01-21 18:53 ` Arnaldo Carvalho de Melo 2011-01-21 19:30 ` Arnaldo Carvalho de Melo 1 sibling, 1 reply; 15+ messages in thread From: Arnaldo Carvalho de Melo @ 2011-01-21 18:53 UTC (permalink / raw) To: Denis Kirjanov; +Cc: Ingo Molnar, linux-kernel, a.p.zijlstra, paulus Em Thu, Jan 20, 2011 at 06:44:38PM +0300, Denis Kirjanov escreveu: > On 01/20/2011 02:47 PM, Ingo Molnar wrote: > > > > * Denis Kirjanov <dkirjanov@kernel.org> wrote: > > > >> Fix perftools build error (ppc64 box) with PERF_VERSION = 2.6.38.rc1.47.g12fcdb > >> CC builtin-top.o > >> cc1: warnings being treated as errors > >> builtin-top.c: In function 'print_sym_table': > >> builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' > >> > >> Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org> > >> --- > >> tools/perf/builtin-top.c | 2 +- > >> 1 files changed, 1 insertions(+), 1 deletions(-) > >> > >> diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > >> index 05344c6..8202a2e 100644 > >> --- a/tools/perf/builtin-top.c > >> +++ b/tools/perf/builtin-top.c > >> @@ -537,7 +537,7 @@ static void print_sym_table(void) > >> if (nr_counters == 1 || !display_weighted) { > >> struct perf_evsel *first; > >> first = list_entry(evsel_list.next, struct perf_evsel, node); > >> - printf("%Ld", first->attr.sample_period); > >> + printf("%Ld", (unsigned long long)first->attr.sample_period); > > > > Wouldnt %Lu solve this in a cleaner way? > > > > Thanks, > > > > Ingo > > > I think that cleaner way is to use PRIu64. > > > >From 492bf54effdf8c154e76c4ca734f27ce1db46df6 Mon Sep 17 00:00:00 2001 > From: Denis Kirjanov <dkirjanov@kernel.org> > Date: Thu, 20 Jan 2011 18:34:56 +0300 > Subject: [PATCH] perftools: Fix build error > > CC perf.o > CC builtin-top.o > cc1: warnings being treated as errors > builtin-top.c: In function 'print_sym_table': > builtin-top.c:540: error: format '%Ld' expects type 'long long int', but argument 2 has type '__u64' > make: *** [builtin-top.o] Error 1 Now, after applying your patch, I get: [acme@felicio linux]$ make -j2 O=~acme/git/build/perf -C tools/perf/ install make: Entering directory `/media/tbs/acme/git/linux/tools/perf' GEN perf-archive CC /home/acme/git/build/perf/builtin-top.o cc1: warnings being treated as errors builtin-top.c: In function ‘print_sym_table’: builtin-top.c:541:3: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘__u64’ make: *** [/home/acme/git/build/perf/builtin-top.o] Error 1 make: Leaving directory `/media/tbs/acme/git/linux/tools/perf' [acme@felicio linux]$ gcc -v Using built-in specs. COLLECT_GCC=/usr/bin/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.5.1/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,lto --enable-plugin --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) [acme@felicio linux]$ cat /etc/fedora-release Fedora release 14 (Laughlin) [acme@felicio linux]$ - Arnaldo ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-21 18:53 ` Arnaldo Carvalho de Melo @ 2011-01-21 19:30 ` Arnaldo Carvalho de Melo 2011-01-22 5:08 ` Pingtian Han 2011-01-22 8:54 ` Denis Kirjanov 0 siblings, 2 replies; 15+ messages in thread From: Arnaldo Carvalho de Melo @ 2011-01-21 19:30 UTC (permalink / raw) To: Denis Kirjanov; +Cc: Ingo Molnar, linux-kernel, a.p.zijlstra, paulus Em Fri, Jan 21, 2011 at 04:53:37PM -0200, Arnaldo Carvalho de Melo escreveu: > Now, after applying your patch, I get: > > [acme@felicio linux]$ make -j2 O=~acme/git/build/perf -C tools/perf/ install > CC /home/acme/git/build/perf/builtin-top.o > cc1: warnings being treated as errors > builtin-top.c: In function ‘print_sym_table’: > builtin-top.c:541:3: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘__u64’ > make: *** [/home/acme/git/build/perf/builtin-top.o] Error 1 > make: Leaving directory `/media/tbs/acme/git/linux/tools/perf' > > [acme@felicio linux]$ gcc -v > gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) > [acme@felicio linux]$ cat /etc/fedora-release > Fedora release 14 (Laughlin) > [acme@felicio linux]$ Can you check the attached patch? I changed the typedef for u64 from 'unsigned long long' to uint64_t and fixed up the fallout, converting lots of places to use PRI[ux]64. - Arnaldo [acme@felicio linux]$ git diff --stat tools/perf/builtin-annotate.c | 6 +++--- tools/perf/builtin-kmem.c | 4 ++-- tools/perf/builtin-lock.c | 6 +++--- tools/perf/builtin-record.c | 2 +- tools/perf/builtin-report.c | 2 +- tools/perf/builtin-sched.c | 20 ++++++++++---------- tools/perf/builtin-script.c | 6 +++--- tools/perf/builtin-stat.c | 4 ++-- tools/perf/builtin-test.c | 14 +++++++------- tools/perf/builtin-top.c | 9 +++++---- tools/perf/util/event.c | 5 +++-- tools/perf/util/header.c | 4 ++-- tools/perf/util/hist.c | 17 +++++++++-------- tools/perf/util/map.c | 3 ++- tools/perf/util/parse-events.c | 2 +- tools/perf/util/probe-event.c | 2 +- tools/perf/util/session.c | 28 +++++++++++++++------------- tools/perf/util/svghelper.c | 5 +++-- tools/perf/util/symbol.c | 9 +++++---- tools/perf/util/types.h | 10 ++++++---- tools/perf/util/ui/browsers/hists.c | 2 +- tools/perf/util/ui/browsers/map.c | 5 +++-- tools/perf/util/values.c | 10 +++++----- 23 files changed, 93 insertions(+), 82 deletions(-) [acme@felicio linux]$ diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index c056cdc..8879463 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c @@ -212,7 +212,7 @@ get_source_line(struct hist_entry *he, int len, const char *filename) continue; offset = start + i; - sprintf(cmd, "addr2line -e %s %016llx", filename, offset); + sprintf(cmd, "addr2line -e %s %016" PRIx64, filename, offset); fp = popen(cmd, "r"); if (!fp) continue; @@ -270,9 +270,9 @@ static void hist_entry__print_hits(struct hist_entry *self) for (offset = 0; offset < len; ++offset) if (h->ip[offset] != 0) - printf("%*Lx: %Lu\n", BITS_PER_LONG / 2, + printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2, sym->start + offset, h->ip[offset]); - printf("%*s: %Lu\n", BITS_PER_LONG / 2, "h->sum", h->sum); + printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum); } static int hist_entry__tty_annotate(struct hist_entry *he) diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c index def7ddc..d97256d 100644 --- a/tools/perf/builtin-kmem.c +++ b/tools/perf/builtin-kmem.c @@ -371,10 +371,10 @@ static void __print_result(struct rb_root *root, struct perf_session *session, addr = data->ptr; if (sym != NULL) - snprintf(buf, sizeof(buf), "%s+%Lx", sym->name, + snprintf(buf, sizeof(buf), "%s+%" PRIx64 "", sym->name, addr - map->unmap_ip(map, sym->start)); else - snprintf(buf, sizeof(buf), "%#Lx", addr); + snprintf(buf, sizeof(buf), "%#" PRIx64 "", addr); printf(" %-34s |", buf); printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n", diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c index b9c6e54..2b36def 100644 --- a/tools/perf/builtin-lock.c +++ b/tools/perf/builtin-lock.c @@ -782,9 +782,9 @@ static void print_result(void) pr_info("%10u ", st->nr_acquired); pr_info("%10u ", st->nr_contended); - pr_info("%15llu ", st->wait_time_total); - pr_info("%15llu ", st->wait_time_max); - pr_info("%15llu ", st->wait_time_min == ULLONG_MAX ? + pr_info("%15" PRIu64 " ", st->wait_time_total); + pr_info("%15" PRIu64 " ", st->wait_time_max); + pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ? 0 : st->wait_time_min); pr_info("\n"); } diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index fcd29e8..b2f729f 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -817,7 +817,7 @@ static int __cmd_record(int argc, const char **argv) * Approximate RIP event size: 24 bytes. */ fprintf(stderr, - "[ perf record: Captured and wrote %.3f MB %s (~%lld samples) ]\n", + "[ perf record: Captured and wrote %.3f MB %s (~%" PRIu64 " samples) ]\n", (double)bytes_written / 1024.0 / 1024.0, output_name, bytes_written / 24); diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 75183a4..c27e31f 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -197,7 +197,7 @@ static int process_read_event(event_t *event, struct sample_data *sample __used, event->read.value); } - dump_printf(": %d %d %s %Lu\n", event->read.pid, event->read.tid, + dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid, attr ? __event_name(attr->type, attr->config) : "FAIL", event->read.value); diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index 29e7ffd..29acb89 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -193,7 +193,7 @@ static void calibrate_run_measurement_overhead(void) } run_measurement_overhead = min_delta; - printf("run measurement overhead: %Ld nsecs\n", min_delta); + printf("run measurement overhead: %" PRIu64 " nsecs\n", min_delta); } static void calibrate_sleep_measurement_overhead(void) @@ -211,7 +211,7 @@ static void calibrate_sleep_measurement_overhead(void) min_delta -= 10000; sleep_measurement_overhead = min_delta; - printf("sleep measurement overhead: %Ld nsecs\n", min_delta); + printf("sleep measurement overhead: %" PRIu64 " nsecs\n", min_delta); } static struct sched_atom * @@ -617,13 +617,13 @@ static void test_calibrations(void) burn_nsecs(1e6); T1 = get_nsecs(); - printf("the run test took %Ld nsecs\n", T1-T0); + printf("the run test took %" PRIu64 " nsecs\n", T1 - T0); T0 = get_nsecs(); sleep_nsecs(1e6); T1 = get_nsecs(); - printf("the sleep test took %Ld nsecs\n", T1-T0); + printf("the sleep test took %" PRIu64 " nsecs\n", T1 - T0); } #define FILL_FIELD(ptr, field, event, data) \ @@ -816,10 +816,10 @@ replay_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); if (verbose) { - printf(" ... switch from %s/%d to %s/%d [ran %Ld nsecs]\n", + printf(" ... switch from %s/%d to %s/%d [ran %" PRIu64 " nsecs]\n", switch_event->prev_comm, switch_event->prev_pid, switch_event->next_comm, switch_event->next_pid, delta); @@ -1048,7 +1048,7 @@ latency_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); sched_out = perf_session__findnew(session, switch_event->prev_pid); @@ -1221,7 +1221,7 @@ static void output_lat_thread(struct work_atoms *work_list) avg = work_list->total_lat / work_list->nb_atoms; - printf("|%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", + printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", (double)work_list->total_runtime / 1e6, work_list->nb_atoms, (double)avg / 1e6, (double)work_list->max_lat / 1e6, @@ -1423,7 +1423,7 @@ map_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); sched_out = perf_session__findnew(session, switch_event->prev_pid); @@ -1713,7 +1713,7 @@ static void __cmd_lat(void) } printf(" -----------------------------------------------------------------------------------------\n"); - printf(" TOTAL: |%11.3f ms |%9Ld |\n", + printf(" TOTAL: |%11.3f ms |%9" PRIu64 " |\n", (double)all_runtime/1e6, all_count); printf(" ---------------------------------------------------\n"); diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 150a606..b766c2a 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -77,8 +77,8 @@ static int process_sample_event(event_t *event, struct sample_data *sample, if (session->sample_type & PERF_SAMPLE_RAW) { if (debug_mode) { if (sample->time < last_timestamp) { - pr_err("Samples misordered, previous: %llu " - "this: %llu\n", last_timestamp, + pr_err("Samples misordered, previous: %" PRIu64 + " this: %" PRIu64 "\n", last_timestamp, sample->time); nr_unordered++; } @@ -126,7 +126,7 @@ static int __cmd_script(struct perf_session *session) ret = perf_session__process_events(session, &event_ops); if (debug_mode) - pr_err("Misordered timestamps: %llu\n", nr_unordered); + pr_err("Misordered timestamps: %" PRIu64 "\n", nr_unordered); return ret; } diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 0ff11d9..a482a19 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -206,8 +206,8 @@ static int read_counter_aggr(struct perf_evsel *counter) update_stats(&ps->res_stats[i], count[i]); if (verbose) { - fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter), - count[0], count[1], count[2]); + fprintf(stderr, "%s: %" PRIu64 " %" PRIu64 " %" PRIu64 "\n", + event_name(counter), count[0], count[1], count[2]); } /* diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c index 02958d6..1c9060f 100644 --- a/tools/perf/builtin-test.c +++ b/tools/perf/builtin-test.c @@ -146,7 +146,7 @@ next_pair: if (llabs(skew) < page_size) continue; - pr_debug("%#Lx: diff end addr for %s v: %#Lx k: %#Lx\n", + pr_debug("%#" PRIx64 ": diff end addr for %s v: %#" PRIx64 " k: %#" PRIx64 "\n", sym->start, sym->name, sym->end, pair->end); } else { struct rb_node *nnd; @@ -168,11 +168,11 @@ detour: goto detour; } - pr_debug("%#Lx: diff name v: %s k: %s\n", + pr_debug("%#" PRIx64 ": diff name v: %s k: %s\n", sym->start, sym->name, pair->name); } } else - pr_debug("%#Lx: %s not on kallsyms\n", sym->start, sym->name); + pr_debug("%#" PRIx64 ": %s not on kallsyms\n", sym->start, sym->name); err = -1; } @@ -211,10 +211,10 @@ detour: if (pair->start == pos->start) { pair->priv = 1; - pr_info(" %Lx-%Lx %Lx %s in kallsyms as", + pr_info(" %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as", pos->start, pos->end, pos->pgoff, pos->dso->name); if (pos->pgoff != pair->pgoff || pos->end != pair->end) - pr_info(": \n*%Lx-%Lx %Lx", + pr_info(": \n*%" PRIx64 "-%" PRIx64 " %" PRIx64 "", pair->start, pair->end, pair->pgoff); pr_info(" %s\n", pair->dso->name); pair->priv = 1; @@ -307,7 +307,7 @@ static int test__open_syscall_event(void) } if (evsel->counts->cpu[0].val != nr_open_calls) { - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %Ld\n", + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %" PRIu64 "\n", nr_open_calls, evsel->counts->cpu[0].val); goto out_close_fd; } @@ -414,7 +414,7 @@ static int test__open_syscall_event_on_all_cpus(void) expected = nr_open_calls + cpu; if (evsel->counts->cpu[cpu].val != expected) { - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %Ld\n", + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n", expected, cpus->map[cpu], evsel->counts->cpu[cpu].val); goto out_close_fd; } diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 05344c6..b6998e0 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -40,6 +40,7 @@ #include <stdio.h> #include <termios.h> #include <unistd.h> +#include <inttypes.h> #include <errno.h> #include <time.h> @@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme) len = sym->end - sym->start; sprintf(command, - "objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s", + "objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s", BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start), BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path); @@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme) struct source_line *line; char pattern[PATTERN_LEN + 1]; - sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4, + sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4, map__rip_2objdump(syme->map, symbol->start)); pthread_mutex_lock(&syme->src->lock); @@ -537,7 +538,7 @@ static void print_sym_table(void) if (nr_counters == 1 || !display_weighted) { struct perf_evsel *first; first = list_entry(evsel_list.next, struct perf_evsel, node); - printf("%Ld", first->attr.sample_period); + printf("%" PRIu64, (uint64_t)first->attr.sample_period); if (freq) printf("Hz "); else @@ -640,7 +641,7 @@ static void print_sym_table(void) percent_color_fprintf(stdout, "%4.1f%%", pcnt); if (verbose) - printf(" %016llx", sym->start); + printf(" %016" PRIx64, sym->start); printf(" %-*.*s", sym_width, sym_width, sym->name); printf(" %-*.*s\n", dso_width, dso_width, dso_width >= syme->map->dso->long_name_len ? diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 2302ec0..1478ab4 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c @@ -459,7 +459,8 @@ int event__process_comm(event_t *self, struct sample_data *sample __used, int event__process_lost(event_t *self, struct sample_data *sample __used, struct perf_session *session) { - dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost); + dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n", + self->lost.id, self->lost.lost); session->hists.stats.total_lost += self->lost.lost; return 0; } @@ -575,7 +576,7 @@ int event__process_mmap(event_t *self, struct sample_data *sample __used, u8 cpumode = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; int ret = 0; - dump_printf(" %d/%d: [%#Lx(%#Lx) @ %#Lx]: %s\n", + dump_printf(" %d/%d: [%#" PRIx64 "(%#" PRIx64 ") @ %#" PRIx64 "]: %s\n", self->mmap.pid, self->mmap.tid, self->mmap.start, self->mmap.len, self->mmap.pgoff, self->mmap.filename); diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 989fa2d..f6a929e7 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -798,8 +798,8 @@ static int perf_file_section__process(struct perf_file_section *self, int feat, int fd) { if (lseek(fd, self->offset, SEEK_SET) == (off_t)-1) { - pr_debug("Failed to lseek to %Ld offset for feature %d, " - "continuing...\n", self->offset, feat); + pr_debug("Failed to lseek to %" PRIu64 " offset for feature " + "%d, continuing...\n", self->offset, feat); return 0; } diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index c749ba6..32f4f1f 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -636,13 +636,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size, } } } else - ret = snprintf(s, size, sep ? "%lld" : "%12lld ", period); + ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); if (symbol_conf.show_nr_samples) { if (sep) - ret += snprintf(s + ret, size - ret, "%c%lld", *sep, period); + ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); else - ret += snprintf(s + ret, size - ret, "%11lld", period); + ret += snprintf(s + ret, size - ret, "%11" PRIu64, period); } if (pair_hists) { @@ -971,7 +971,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) sym_size = sym->end - sym->start; offset = ip - sym->start; - pr_debug3("%s: ip=%#Lx\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); + pr_debug3("%s: ip=%#" PRIx64 "\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); if (offset >= sym_size) return 0; @@ -980,8 +980,9 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) h->sum++; h->ip[offset]++; - pr_debug3("%#Lx %s: period++ [ip: %#Lx, %#Lx] => %Ld\n", self->ms.sym->start, - self->ms.sym->name, ip, ip - self->ms.sym->start, h->ip[offset]); + pr_debug3("%#" PRIx64 " %s: period++ [ip: %#" PRIx64 ", %#" PRIx64 + "] => %" PRIu64 "\n", self->ms.sym->start, self->ms.sym->name, + ip, ip - self->ms.sym->start, h->ip[offset]); return 0; } @@ -1132,7 +1133,7 @@ fallback: goto out_free_filename; } - pr_debug("%s: filename=%s, sym=%s, start=%#Lx, end=%#Lx\n", __func__, + pr_debug("%s: filename=%s, sym=%s, start=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__, filename, sym->name, map->unmap_ip(map, sym->start), map->unmap_ip(map, sym->end)); @@ -1142,7 +1143,7 @@ fallback: dso, dso->long_name, sym, sym->name); snprintf(command, sizeof(command), - "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS -C %s|grep -v %s|expand", + "objdump --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand", map__rip_2objdump(map, sym->start), map__rip_2objdump(map, sym->end), symfs_filename, filename); diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 3a7eb6e..a16ecab 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -1,5 +1,6 @@ #include "symbol.h" #include <errno.h> +#include <inttypes.h> #include <limits.h> #include <stdlib.h> #include <string.h> @@ -195,7 +196,7 @@ int map__overlap(struct map *l, struct map *r) size_t map__fprintf(struct map *self, FILE *fp) { - return fprintf(fp, " %Lx-%Lx %Lx %s\n", + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n", self->start, self->end, self->pgoff, self->dso->name); } diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index bc2732e..135f69b 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -279,7 +279,7 @@ const char *__event_name(int type, u64 config) static char buf[32]; if (type == PERF_TYPE_RAW) { - sprintf(buf, "raw 0x%llx", config); + sprintf(buf, "raw 0x%" PRIx64, config); return buf; } diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 128aaab..6e29d9c 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -172,7 +172,7 @@ static int kprobe_convert_to_perf_probe(struct probe_trace_point *tp, sym = __find_kernel_function_by_name(tp->symbol, &map); if (sym) { addr = map->unmap_ip(map, sym->start + tp->offset); - pr_debug("try to find %s+%ld@%llx\n", tp->symbol, + pr_debug("try to find %s+%ld@%" PRIx64 "\n", tp->symbol, tp->offset, addr); ret = find_perf_probe_point((unsigned long)addr, pp); } diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 313dac2..105f00b 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -652,10 +652,11 @@ static void callchain__printf(struct sample_data *sample) { unsigned int i; - printf("... chain: nr:%Lu\n", sample->callchain->nr); + printf("... chain: nr:%" PRIu64 "\n", sample->callchain->nr); for (i = 0; i < sample->callchain->nr; i++) - printf("..... %2d: %016Lx\n", i, sample->callchain->ips[i]); + printf("..... %2d: %016" PRIx64 "\n", + i, sample->callchain->ips[i]); } static void perf_session__print_tstamp(struct perf_session *session, @@ -672,7 +673,7 @@ static void perf_session__print_tstamp(struct perf_session *session, printf("%u ", sample->cpu); if (session->sample_type & PERF_SAMPLE_TIME) - printf("%Lu ", sample->time); + printf("%" PRIu64 " ", sample->time); } static void dump_event(struct perf_session *session, event_t *event, @@ -681,16 +682,16 @@ static void dump_event(struct perf_session *session, event_t *event, if (!dump_trace) return; - printf("\n%#Lx [%#x]: event: %d\n", file_offset, event->header.size, - event->header.type); + printf("\n%#" PRIx64 " [%#x]: event: %d\n", + file_offset, event->header.size, event->header.type); trace_event(event); if (sample) perf_session__print_tstamp(session, event, sample); - printf("%#Lx [%#x]: PERF_RECORD_%s", file_offset, event->header.size, - event__get_event_name(event->header.type)); + printf("%#" PRIx64 " [%#x]: PERF_RECORD_%s", file_offset, + event->header.size, event__get_event_name(event->header.type)); } static void dump_sample(struct perf_session *session, event_t *event, @@ -699,8 +700,9 @@ static void dump_sample(struct perf_session *session, event_t *event, if (!dump_trace) return; - printf("(IP, %d): %d/%d: %#Lx period: %Ld\n", event->header.misc, - sample->pid, sample->tid, sample->ip, sample->period); + printf("(IP, %d): %d/%d: %#" PRIx64 " period: %" PRIu64 "\n", + event->header.misc, sample->pid, sample->tid, sample->ip, + sample->period); if (session->sample_type & PERF_SAMPLE_CALLCHAIN) callchain__printf(sample); @@ -843,8 +845,8 @@ static void perf_session__warn_about_errors(const struct perf_session *session, { if (ops->lost == event__process_lost && session->hists.stats.total_lost != 0) { - ui__warning("Processed %Lu events and LOST %Lu!\n\n" - "Check IO/CPU overload!\n\n", + ui__warning("Processed %" PRIu64 " events and LOST %" PRIu64 + "!\n\nCheck IO/CPU overload!\n\n", session->hists.stats.total_period, session->hists.stats.total_lost); } @@ -918,7 +920,7 @@ more: if (size == 0 || (skip = perf_session__process_event(self, &event, ops, head)) < 0) { - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", head, event.header.size, event.header.type); /* * assume we lost track of the stream, check alignment, and @@ -1023,7 +1025,7 @@ more: if (size == 0 || perf_session__process_event(session, event, ops, file_pos) < 0) { - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", file_offset + head, event->header.size, event->header.type); /* diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c index b3637db..805220a 100644 --- a/tools/perf/util/svghelper.c +++ b/tools/perf/util/svghelper.c @@ -12,6 +12,7 @@ * of the License. */ +#include <inttypes.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -94,7 +95,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end) total_height = (1 + rows + cpu2slot(cpus)) * SLOT_MULT; fprintf(svgfile, "<?xml version=\"1.0\" standalone=\"no\"?> \n"); - fprintf(svgfile, "<svg width=\"%i\" height=\"%llu\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); + fprintf(svgfile, "<svg width=\"%i\" height=\"%" PRIu64 "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); fprintf(svgfile, "<defs>\n <style type=\"text/css\">\n <![CDATA[\n"); @@ -483,7 +484,7 @@ void svg_time_grid(void) color = 128; } - fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%llu\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", + fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%" PRIu64 "\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", time2pixels(i), SLOT_MULT/2, time2pixels(i), total_height, color, color, color, thickness); i += 10000000; diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index e32478e..7821d0e 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -11,6 +11,7 @@ #include <sys/param.h> #include <fcntl.h> #include <unistd.h> +#include <inttypes.h> #include "build-id.h" #include "debug.h" #include "symbol.h" @@ -153,7 +154,7 @@ static struct symbol *symbol__new(u64 start, u64 len, u8 binding, self->binding = binding; self->namelen = namelen - 1; - pr_debug4("%s: %s %#Lx-%#Lx\n", __func__, name, start, self->end); + pr_debug4("%s: %s %#" PRIx64 "-%#" PRIx64 "\n", __func__, name, start, self->end); memcpy(self->name, name, namelen); @@ -167,7 +168,7 @@ void symbol__delete(struct symbol *self) static size_t symbol__fprintf(struct symbol *self, FILE *fp) { - return fprintf(fp, " %llx-%llx %c %s\n", + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %c %s\n", self->start, self->end, self->binding == STB_GLOBAL ? 'g' : self->binding == STB_LOCAL ? 'l' : 'w', @@ -1215,8 +1216,8 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name, } if (curr_dso->adjust_symbols) { - pr_debug4("%s: adjusting symbol: st_value: %#Lx " - "sh_addr: %#Lx sh_offset: %#Lx\n", __func__, + pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " " + "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", __func__, (u64)sym.st_value, (u64)shdr.sh_addr, (u64)shdr.sh_offset); sym.st_value -= shdr.sh_addr - shdr.sh_offset; diff --git a/tools/perf/util/types.h b/tools/perf/util/types.h index 7d6b833..5f3689a 100644 --- a/tools/perf/util/types.h +++ b/tools/perf/util/types.h @@ -1,12 +1,14 @@ #ifndef __PERF_TYPES_H #define __PERF_TYPES_H +#include <stdint.h> + /* - * We define u64 as unsigned long long for every architecture - * so that we can print it with %Lx without getting warnings. + * We define u64 as uint64_t for every architecture + * so that we can print it with "%"PRIx64 without getting warnings. */ -typedef unsigned long long u64; -typedef signed long long s64; +typedef uint64_t u64; +typedef int64_t s64; typedef unsigned int u32; typedef signed int s32; typedef unsigned short u16; diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c index ebda8c3..60c463c 100644 --- a/tools/perf/util/ui/browsers/hists.c +++ b/tools/perf/util/ui/browsers/hists.c @@ -350,7 +350,7 @@ static char *callchain_list__sym_name(struct callchain_list *self, if (self->ms.sym) return self->ms.sym->name; - snprintf(bf, bfsize, "%#Lx", self->ip); + snprintf(bf, bfsize, "%#" PRIx64, self->ip); return bf; } diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c index e35437d..e515836 100644 --- a/tools/perf/util/ui/browsers/map.c +++ b/tools/perf/util/ui/browsers/map.c @@ -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); } diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c index cfa55d6..bdd3347 100644 --- a/tools/perf/util/values.c +++ b/tools/perf/util/values.c @@ -150,7 +150,7 @@ static void perf_read_values__display_pretty(FILE *fp, if (width > tidwidth) tidwidth = width; for (j = 0; j < values->counters; j++) { - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); if (width > counterwidth[j]) counterwidth[j] = width; } @@ -165,7 +165,7 @@ static void perf_read_values__display_pretty(FILE *fp, fprintf(fp, " %*d %*d", pidwidth, values->pid[i], tidwidth, values->tid[i]); for (j = 0; j < values->counters; j++) - fprintf(fp, " %*Lu", + fprintf(fp, " %*" PRIu64, counterwidth[j], values->value[i][j]); fprintf(fp, "\n"); } @@ -196,13 +196,13 @@ static void perf_read_values__display_raw(FILE *fp, width = strlen(values->countername[j]); if (width > namewidth) namewidth = width; - width = snprintf(NULL, 0, "%llx", values->counterrawid[j]); + width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]); if (width > rawwidth) rawwidth = width; } for (i = 0; i < values->threads; i++) { for (j = 0; j < values->counters; j++) { - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); if (width > countwidth) countwidth = width; } @@ -214,7 +214,7 @@ static void perf_read_values__display_raw(FILE *fp, countwidth, "Count"); for (i = 0; i < values->threads; i++) for (j = 0; j < values->counters; j++) - fprintf(fp, " %*d %*d %*s %*llx %*Lu\n", + fprintf(fp, " %*d %*d %*s %*" PRIx64 " %*" PRIu64, pidwidth, values->pid[i], tidwidth, values->tid[i], namewidth, values->countername[j], ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-21 19:30 ` Arnaldo Carvalho de Melo @ 2011-01-22 5:08 ` Pingtian Han 2011-01-22 9:13 ` Denis Kirjanov 2011-01-22 8:54 ` Denis Kirjanov 1 sibling, 1 reply; 15+ messages in thread From: Pingtian Han @ 2011-01-22 5:08 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Ingo Molnar, linux-kernel, a p zijlstra, paulus, Denis Kirjanov It seems that the patch of Denis works in my envriments. The original build failure only occurs on ppc64 systems. The type '__u64' on ppc64 seems equal to 'long int'. Maybe we needn't change the definition of 'u64' because the macro 'PRIu64' will be 'lu' on ppc64, too. ----- Original Message ----- From: "Arnaldo Carvalho de Melo" <acme@ghostprotocols.net> To: "Denis Kirjanov" <dkirjanov@kernel.org> Cc: "Ingo Molnar" <mingo@elte.hu>, linux-kernel@vger.kernel.org, "a p zijlstra" <a.p.zijlstra@chello.nl>, paulus@samba.org Sent: Saturday, January 22, 2011 3:30:03 AM Subject: Re: [PATCH] perftools: Fix build error Em Fri, Jan 21, 2011 at 04:53:37PM -0200, Arnaldo Carvalho de Melo escreveu: > Now, after applying your patch, I get: > > [acme@felicio linux]$ make -j2 O=~acme/git/build/perf -C tools/perf/ install > CC /home/acme/git/build/perf/builtin-top.o > cc1: warnings being treated as errors > builtin-top.c: In function ‘print_sym_table’: > builtin-top.c:541:3: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘__u64’ > make: *** [/home/acme/git/build/perf/builtin-top.o] Error 1 > make: Leaving directory `/media/tbs/acme/git/linux/tools/perf' > > [acme@felicio linux]$ gcc -v > gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) > [acme@felicio linux]$ cat /etc/fedora-release > Fedora release 14 (Laughlin) > [acme@felicio linux]$ Can you check the attached patch? I changed the typedef for u64 from 'unsigned long long' to uint64_t and fixed up the fallout, converting lots of places to use PRI[ux]64. - Arnaldo [acme@felicio linux]$ git diff --stat tools/perf/builtin-annotate.c | 6 +++--- tools/perf/builtin-kmem.c | 4 ++-- tools/perf/builtin-lock.c | 6 +++--- tools/perf/builtin-record.c | 2 +- tools/perf/builtin-report.c | 2 +- tools/perf/builtin-sched.c | 20 ++++++++++---------- tools/perf/builtin-script.c | 6 +++--- tools/perf/builtin-stat.c | 4 ++-- tools/perf/builtin-test.c | 14 +++++++------- tools/perf/builtin-top.c | 9 +++++---- tools/perf/util/event.c | 5 +++-- tools/perf/util/header.c | 4 ++-- tools/perf/util/hist.c | 17 +++++++++-------- tools/perf/util/map.c | 3 ++- tools/perf/util/parse-events.c | 2 +- tools/perf/util/probe-event.c | 2 +- tools/perf/util/session.c | 28 +++++++++++++++------------- tools/perf/util/svghelper.c | 5 +++-- tools/perf/util/symbol.c | 9 +++++---- tools/perf/util/types.h | 10 ++++++---- tools/perf/util/ui/browsers/hists.c | 2 +- tools/perf/util/ui/browsers/map.c | 5 +++-- tools/perf/util/values.c | 10 +++++----- 23 files changed, 93 insertions(+), 82 deletions(-) [acme@felicio linux]$ diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index c056cdc..8879463 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c @@ -212,7 +212,7 @@ get_source_line(struct hist_entry *he, int len, const char *filename) continue; offset = start + i; - sprintf(cmd, "addr2line -e %s %016llx", filename, offset); + sprintf(cmd, "addr2line -e %s %016" PRIx64, filename, offset); fp = popen(cmd, "r"); if (!fp) continue; @@ -270,9 +270,9 @@ static void hist_entry__print_hits(struct hist_entry *self) for (offset = 0; offset < len; ++offset) if (h->ip[offset] != 0) - printf("%*Lx: %Lu\n", BITS_PER_LONG / 2, + printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2, sym->start + offset, h->ip[offset]); - printf("%*s: %Lu\n", BITS_PER_LONG / 2, "h->sum", h->sum); + printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum); } static int hist_entry__tty_annotate(struct hist_entry *he) diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c index def7ddc..d97256d 100644 --- a/tools/perf/builtin-kmem.c +++ b/tools/perf/builtin-kmem.c @@ -371,10 +371,10 @@ static void __print_result(struct rb_root *root, struct perf_session *session, addr = data->ptr; if (sym != NULL) - snprintf(buf, sizeof(buf), "%s+%Lx", sym->name, + snprintf(buf, sizeof(buf), "%s+%" PRIx64 "", sym->name, addr - map->unmap_ip(map, sym->start)); else - snprintf(buf, sizeof(buf), "%#Lx", addr); + snprintf(buf, sizeof(buf), "%#" PRIx64 "", addr); printf(" %-34s |", buf); printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n", diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c index b9c6e54..2b36def 100644 --- a/tools/perf/builtin-lock.c +++ b/tools/perf/builtin-lock.c @@ -782,9 +782,9 @@ static void print_result(void) pr_info("%10u ", st->nr_acquired); pr_info("%10u ", st->nr_contended); - pr_info("%15llu ", st->wait_time_total); - pr_info("%15llu ", st->wait_time_max); - pr_info("%15llu ", st->wait_time_min == ULLONG_MAX ? + pr_info("%15" PRIu64 " ", st->wait_time_total); + pr_info("%15" PRIu64 " ", st->wait_time_max); + pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ? 0 : st->wait_time_min); pr_info("\n"); } diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index fcd29e8..b2f729f 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -817,7 +817,7 @@ static int __cmd_record(int argc, const char **argv) * Approximate RIP event size: 24 bytes. */ fprintf(stderr, - "[ perf record: Captured and wrote %.3f MB %s (~%lld samples) ]\n", + "[ perf record: Captured and wrote %.3f MB %s (~%" PRIu64 " samples) ]\n", (double)bytes_written / 1024.0 / 1024.0, output_name, bytes_written / 24); diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 75183a4..c27e31f 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -197,7 +197,7 @@ static int process_read_event(event_t *event, struct sample_data *sample __used, event->read.value); } - dump_printf(": %d %d %s %Lu\n", event->read.pid, event->read.tid, + dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid, attr ? __event_name(attr->type, attr->config) : "FAIL", event->read.value); diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index 29e7ffd..29acb89 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -193,7 +193,7 @@ static void calibrate_run_measurement_overhead(void) } run_measurement_overhead = min_delta; - printf("run measurement overhead: %Ld nsecs\n", min_delta); + printf("run measurement overhead: %" PRIu64 " nsecs\n", min_delta); } static void calibrate_sleep_measurement_overhead(void) @@ -211,7 +211,7 @@ static void calibrate_sleep_measurement_overhead(void) min_delta -= 10000; sleep_measurement_overhead = min_delta; - printf("sleep measurement overhead: %Ld nsecs\n", min_delta); + printf("sleep measurement overhead: %" PRIu64 " nsecs\n", min_delta); } static struct sched_atom * @@ -617,13 +617,13 @@ static void test_calibrations(void) burn_nsecs(1e6); T1 = get_nsecs(); - printf("the run test took %Ld nsecs\n", T1-T0); + printf("the run test took %" PRIu64 " nsecs\n", T1 - T0); T0 = get_nsecs(); sleep_nsecs(1e6); T1 = get_nsecs(); - printf("the sleep test took %Ld nsecs\n", T1-T0); + printf("the sleep test took %" PRIu64 " nsecs\n", T1 - T0); } #define FILL_FIELD(ptr, field, event, data) \ @@ -816,10 +816,10 @@ replay_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); if (verbose) { - printf(" ... switch from %s/%d to %s/%d [ran %Ld nsecs]\n", + printf(" ... switch from %s/%d to %s/%d [ran %" PRIu64 " nsecs]\n", switch_event->prev_comm, switch_event->prev_pid, switch_event->next_comm, switch_event->next_pid, delta); @@ -1048,7 +1048,7 @@ latency_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); sched_out = perf_session__findnew(session, switch_event->prev_pid); @@ -1221,7 +1221,7 @@ static void output_lat_thread(struct work_atoms *work_list) avg = work_list->total_lat / work_list->nb_atoms; - printf("|%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", + printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", (double)work_list->total_runtime / 1e6, work_list->nb_atoms, (double)avg / 1e6, (double)work_list->max_lat / 1e6, @@ -1423,7 +1423,7 @@ map_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); sched_out = perf_session__findnew(session, switch_event->prev_pid); @@ -1713,7 +1713,7 @@ static void __cmd_lat(void) } printf(" -----------------------------------------------------------------------------------------\n"); - printf(" TOTAL: |%11.3f ms |%9Ld |\n", + printf(" TOTAL: |%11.3f ms |%9" PRIu64 " |\n", (double)all_runtime/1e6, all_count); printf(" ---------------------------------------------------\n"); diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 150a606..b766c2a 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -77,8 +77,8 @@ static int process_sample_event(event_t *event, struct sample_data *sample, if (session->sample_type & PERF_SAMPLE_RAW) { if (debug_mode) { if (sample->time < last_timestamp) { - pr_err("Samples misordered, previous: %llu " - "this: %llu\n", last_timestamp, + pr_err("Samples misordered, previous: %" PRIu64 + " this: %" PRIu64 "\n", last_timestamp, sample->time); nr_unordered++; } @@ -126,7 +126,7 @@ static int __cmd_script(struct perf_session *session) ret = perf_session__process_events(session, &event_ops); if (debug_mode) - pr_err("Misordered timestamps: %llu\n", nr_unordered); + pr_err("Misordered timestamps: %" PRIu64 "\n", nr_unordered); return ret; } diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 0ff11d9..a482a19 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -206,8 +206,8 @@ static int read_counter_aggr(struct perf_evsel *counter) update_stats(&ps->res_stats[i], count[i]); if (verbose) { - fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter), - count[0], count[1], count[2]); + fprintf(stderr, "%s: %" PRIu64 " %" PRIu64 " %" PRIu64 "\n", + event_name(counter), count[0], count[1], count[2]); } /* diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c index 02958d6..1c9060f 100644 --- a/tools/perf/builtin-test.c +++ b/tools/perf/builtin-test.c @@ -146,7 +146,7 @@ next_pair: if (llabs(skew) < page_size) continue; - pr_debug("%#Lx: diff end addr for %s v: %#Lx k: %#Lx\n", + pr_debug("%#" PRIx64 ": diff end addr for %s v: %#" PRIx64 " k: %#" PRIx64 "\n", sym->start, sym->name, sym->end, pair->end); } else { struct rb_node *nnd; @@ -168,11 +168,11 @@ detour: goto detour; } - pr_debug("%#Lx: diff name v: %s k: %s\n", + pr_debug("%#" PRIx64 ": diff name v: %s k: %s\n", sym->start, sym->name, pair->name); } } else - pr_debug("%#Lx: %s not on kallsyms\n", sym->start, sym->name); + pr_debug("%#" PRIx64 ": %s not on kallsyms\n", sym->start, sym->name); err = -1; } @@ -211,10 +211,10 @@ detour: if (pair->start == pos->start) { pair->priv = 1; - pr_info(" %Lx-%Lx %Lx %s in kallsyms as", + pr_info(" %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as", pos->start, pos->end, pos->pgoff, pos->dso->name); if (pos->pgoff != pair->pgoff || pos->end != pair->end) - pr_info(": \n*%Lx-%Lx %Lx", + pr_info(": \n*%" PRIx64 "-%" PRIx64 " %" PRIx64 "", pair->start, pair->end, pair->pgoff); pr_info(" %s\n", pair->dso->name); pair->priv = 1; @@ -307,7 +307,7 @@ static int test__open_syscall_event(void) } if (evsel->counts->cpu[0].val != nr_open_calls) { - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %Ld\n", + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %" PRIu64 "\n", nr_open_calls, evsel->counts->cpu[0].val); goto out_close_fd; } @@ -414,7 +414,7 @@ static int test__open_syscall_event_on_all_cpus(void) expected = nr_open_calls + cpu; if (evsel->counts->cpu[cpu].val != expected) { - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %Ld\n", + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n", expected, cpus->map[cpu], evsel->counts->cpu[cpu].val); goto out_close_fd; } diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 05344c6..b6998e0 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -40,6 +40,7 @@ #include <stdio.h> #include <termios.h> #include <unistd.h> +#include <inttypes.h> #include <errno.h> #include <time.h> @@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme) len = sym->end - sym->start; sprintf(command, - "objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s", + "objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s", BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start), BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path); @@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme) struct source_line *line; char pattern[PATTERN_LEN + 1]; - sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4, + sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4, map__rip_2objdump(syme->map, symbol->start)); pthread_mutex_lock(&syme->src->lock); @@ -537,7 +538,7 @@ static void print_sym_table(void) if (nr_counters == 1 || !display_weighted) { struct perf_evsel *first; first = list_entry(evsel_list.next, struct perf_evsel, node); - printf("%Ld", first->attr.sample_period); + printf("%" PRIu64, (uint64_t)first->attr.sample_period); if (freq) printf("Hz "); else @@ -640,7 +641,7 @@ static void print_sym_table(void) percent_color_fprintf(stdout, "%4.1f%%", pcnt); if (verbose) - printf(" %016llx", sym->start); + printf(" %016" PRIx64, sym->start); printf(" %-*.*s", sym_width, sym_width, sym->name); printf(" %-*.*s\n", dso_width, dso_width, dso_width >= syme->map->dso->long_name_len ? diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 2302ec0..1478ab4 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c @@ -459,7 +459,8 @@ int event__process_comm(event_t *self, struct sample_data *sample __used, int event__process_lost(event_t *self, struct sample_data *sample __used, struct perf_session *session) { - dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost); + dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n", + self->lost.id, self->lost.lost); session->hists.stats.total_lost += self->lost.lost; return 0; } @@ -575,7 +576,7 @@ int event__process_mmap(event_t *self, struct sample_data *sample __used, u8 cpumode = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; int ret = 0; - dump_printf(" %d/%d: [%#Lx(%#Lx) @ %#Lx]: %s\n", + dump_printf(" %d/%d: [%#" PRIx64 "(%#" PRIx64 ") @ %#" PRIx64 "]: %s\n", self->mmap.pid, self->mmap.tid, self->mmap.start, self->mmap.len, self->mmap.pgoff, self->mmap.filename); diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 989fa2d..f6a929e7 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -798,8 +798,8 @@ static int perf_file_section__process(struct perf_file_section *self, int feat, int fd) { if (lseek(fd, self->offset, SEEK_SET) == (off_t)-1) { - pr_debug("Failed to lseek to %Ld offset for feature %d, " - "continuing...\n", self->offset, feat); + pr_debug("Failed to lseek to %" PRIu64 " offset for feature " + "%d, continuing...\n", self->offset, feat); return 0; } diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index c749ba6..32f4f1f 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -636,13 +636,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size, } } } else - ret = snprintf(s, size, sep ? "%lld" : "%12lld ", period); + ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); if (symbol_conf.show_nr_samples) { if (sep) - ret += snprintf(s + ret, size - ret, "%c%lld", *sep, period); + ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); else - ret += snprintf(s + ret, size - ret, "%11lld", period); + ret += snprintf(s + ret, size - ret, "%11" PRIu64, period); } if (pair_hists) { @@ -971,7 +971,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) sym_size = sym->end - sym->start; offset = ip - sym->start; - pr_debug3("%s: ip=%#Lx\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); + pr_debug3("%s: ip=%#" PRIx64 "\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); if (offset >= sym_size) return 0; @@ -980,8 +980,9 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) h->sum++; h->ip[offset]++; - pr_debug3("%#Lx %s: period++ [ip: %#Lx, %#Lx] => %Ld\n", self->ms.sym->start, - self->ms.sym->name, ip, ip - self->ms.sym->start, h->ip[offset]); + pr_debug3("%#" PRIx64 " %s: period++ [ip: %#" PRIx64 ", %#" PRIx64 + "] => %" PRIu64 "\n", self->ms.sym->start, self->ms.sym->name, + ip, ip - self->ms.sym->start, h->ip[offset]); return 0; } @@ -1132,7 +1133,7 @@ fallback: goto out_free_filename; } - pr_debug("%s: filename=%s, sym=%s, start=%#Lx, end=%#Lx\n", __func__, + pr_debug("%s: filename=%s, sym=%s, start=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__, filename, sym->name, map->unmap_ip(map, sym->start), map->unmap_ip(map, sym->end)); @@ -1142,7 +1143,7 @@ fallback: dso, dso->long_name, sym, sym->name); snprintf(command, sizeof(command), - "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS -C %s|grep -v %s|expand", + "objdump --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand", map__rip_2objdump(map, sym->start), map__rip_2objdump(map, sym->end), symfs_filename, filename); diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 3a7eb6e..a16ecab 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -1,5 +1,6 @@ #include "symbol.h" #include <errno.h> +#include <inttypes.h> #include <limits.h> #include <stdlib.h> #include <string.h> @@ -195,7 +196,7 @@ int map__overlap(struct map *l, struct map *r) size_t map__fprintf(struct map *self, FILE *fp) { - return fprintf(fp, " %Lx-%Lx %Lx %s\n", + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n", self->start, self->end, self->pgoff, self->dso->name); } diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index bc2732e..135f69b 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -279,7 +279,7 @@ const char *__event_name(int type, u64 config) static char buf[32]; if (type == PERF_TYPE_RAW) { - sprintf(buf, "raw 0x%llx", config); + sprintf(buf, "raw 0x%" PRIx64, config); return buf; } diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 128aaab..6e29d9c 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -172,7 +172,7 @@ static int kprobe_convert_to_perf_probe(struct probe_trace_point *tp, sym = __find_kernel_function_by_name(tp->symbol, &map); if (sym) { addr = map->unmap_ip(map, sym->start + tp->offset); - pr_debug("try to find %s+%ld@%llx\n", tp->symbol, + pr_debug("try to find %s+%ld@%" PRIx64 "\n", tp->symbol, tp->offset, addr); ret = find_perf_probe_point((unsigned long)addr, pp); } diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 313dac2..105f00b 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -652,10 +652,11 @@ static void callchain__printf(struct sample_data *sample) { unsigned int i; - printf("... chain: nr:%Lu\n", sample->callchain->nr); + printf("... chain: nr:%" PRIu64 "\n", sample->callchain->nr); for (i = 0; i < sample->callchain->nr; i++) - printf("..... %2d: %016Lx\n", i, sample->callchain->ips[i]); + printf("..... %2d: %016" PRIx64 "\n", + i, sample->callchain->ips[i]); } static void perf_session__print_tstamp(struct perf_session *session, @@ -672,7 +673,7 @@ static void perf_session__print_tstamp(struct perf_session *session, printf("%u ", sample->cpu); if (session->sample_type & PERF_SAMPLE_TIME) - printf("%Lu ", sample->time); + printf("%" PRIu64 " ", sample->time); } static void dump_event(struct perf_session *session, event_t *event, @@ -681,16 +682,16 @@ static void dump_event(struct perf_session *session, event_t *event, if (!dump_trace) return; - printf("\n%#Lx [%#x]: event: %d\n", file_offset, event->header.size, - event->header.type); + printf("\n%#" PRIx64 " [%#x]: event: %d\n", + file_offset, event->header.size, event->header.type); trace_event(event); if (sample) perf_session__print_tstamp(session, event, sample); - printf("%#Lx [%#x]: PERF_RECORD_%s", file_offset, event->header.size, - event__get_event_name(event->header.type)); + printf("%#" PRIx64 " [%#x]: PERF_RECORD_%s", file_offset, + event->header.size, event__get_event_name(event->header.type)); } static void dump_sample(struct perf_session *session, event_t *event, @@ -699,8 +700,9 @@ static void dump_sample(struct perf_session *session, event_t *event, if (!dump_trace) return; - printf("(IP, %d): %d/%d: %#Lx period: %Ld\n", event->header.misc, - sample->pid, sample->tid, sample->ip, sample->period); + printf("(IP, %d): %d/%d: %#" PRIx64 " period: %" PRIu64 "\n", + event->header.misc, sample->pid, sample->tid, sample->ip, + sample->period); if (session->sample_type & PERF_SAMPLE_CALLCHAIN) callchain__printf(sample); @@ -843,8 +845,8 @@ static void perf_session__warn_about_errors(const struct perf_session *session, { if (ops->lost == event__process_lost && session->hists.stats.total_lost != 0) { - ui__warning("Processed %Lu events and LOST %Lu!\n\n" - "Check IO/CPU overload!\n\n", + ui__warning("Processed %" PRIu64 " events and LOST %" PRIu64 + "!\n\nCheck IO/CPU overload!\n\n", session->hists.stats.total_period, session->hists.stats.total_lost); } @@ -918,7 +920,7 @@ more: if (size == 0 || (skip = perf_session__process_event(self, &event, ops, head)) < 0) { - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", head, event.header.size, event.header.type); /* * assume we lost track of the stream, check alignment, and @@ -1023,7 +1025,7 @@ more: if (size == 0 || perf_session__process_event(session, event, ops, file_pos) < 0) { - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", file_offset + head, event->header.size, event->header.type); /* diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c index b3637db..805220a 100644 --- a/tools/perf/util/svghelper.c +++ b/tools/perf/util/svghelper.c @@ -12,6 +12,7 @@ * of the License. */ +#include <inttypes.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -94,7 +95,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end) total_height = (1 + rows + cpu2slot(cpus)) * SLOT_MULT; fprintf(svgfile, "<?xml version=\"1.0\" standalone=\"no\"?> \n"); - fprintf(svgfile, "<svg width=\"%i\" height=\"%llu\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); + fprintf(svgfile, "<svg width=\"%i\" height=\"%" PRIu64 "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); fprintf(svgfile, "<defs>\n <style type=\"text/css\">\n <![CDATA[\n"); @@ -483,7 +484,7 @@ void svg_time_grid(void) color = 128; } - fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%llu\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", + fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%" PRIu64 "\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", time2pixels(i), SLOT_MULT/2, time2pixels(i), total_height, color, color, color, thickness); i += 10000000; diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index e32478e..7821d0e 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -11,6 +11,7 @@ #include <sys/param.h> #include <fcntl.h> #include <unistd.h> +#include <inttypes.h> #include "build-id.h" #include "debug.h" #include "symbol.h" @@ -153,7 +154,7 @@ static struct symbol *symbol__new(u64 start, u64 len, u8 binding, self->binding = binding; self->namelen = namelen - 1; - pr_debug4("%s: %s %#Lx-%#Lx\n", __func__, name, start, self->end); + pr_debug4("%s: %s %#" PRIx64 "-%#" PRIx64 "\n", __func__, name, start, self->end); memcpy(self->name, name, namelen); @@ -167,7 +168,7 @@ void symbol__delete(struct symbol *self) static size_t symbol__fprintf(struct symbol *self, FILE *fp) { - return fprintf(fp, " %llx-%llx %c %s\n", + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %c %s\n", self->start, self->end, self->binding == STB_GLOBAL ? 'g' : self->binding == STB_LOCAL ? 'l' : 'w', @@ -1215,8 +1216,8 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name, } if (curr_dso->adjust_symbols) { - pr_debug4("%s: adjusting symbol: st_value: %#Lx " - "sh_addr: %#Lx sh_offset: %#Lx\n", __func__, + pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " " + "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", __func__, (u64)sym.st_value, (u64)shdr.sh_addr, (u64)shdr.sh_offset); sym.st_value -= shdr.sh_addr - shdr.sh_offset; diff --git a/tools/perf/util/types.h b/tools/perf/util/types.h index 7d6b833..5f3689a 100644 --- a/tools/perf/util/types.h +++ b/tools/perf/util/types.h @@ -1,12 +1,14 @@ #ifndef __PERF_TYPES_H #define __PERF_TYPES_H +#include <stdint.h> + /* - * We define u64 as unsigned long long for every architecture - * so that we can print it with %Lx without getting warnings. + * We define u64 as uint64_t for every architecture + * so that we can print it with "%"PRIx64 without getting warnings. */ -typedef unsigned long long u64; -typedef signed long long s64; +typedef uint64_t u64; +typedef int64_t s64; typedef unsigned int u32; typedef signed int s32; typedef unsigned short u16; diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c index ebda8c3..60c463c 100644 --- a/tools/perf/util/ui/browsers/hists.c +++ b/tools/perf/util/ui/browsers/hists.c @@ -350,7 +350,7 @@ static char *callchain_list__sym_name(struct callchain_list *self, if (self->ms.sym) return self->ms.sym->name; - snprintf(bf, bfsize, "%#Lx", self->ip); + snprintf(bf, bfsize, "%#" PRIx64, self->ip); return bf; } diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c index e35437d..e515836 100644 --- a/tools/perf/util/ui/browsers/map.c +++ b/tools/perf/util/ui/browsers/map.c @@ -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); } diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c index cfa55d6..bdd3347 100644 --- a/tools/perf/util/values.c +++ b/tools/perf/util/values.c @@ -150,7 +150,7 @@ static void perf_read_values__display_pretty(FILE *fp, if (width > tidwidth) tidwidth = width; for (j = 0; j < values->counters; j++) { - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); if (width > counterwidth[j]) counterwidth[j] = width; } @@ -165,7 +165,7 @@ static void perf_read_values__display_pretty(FILE *fp, fprintf(fp, " %*d %*d", pidwidth, values->pid[i], tidwidth, values->tid[i]); for (j = 0; j < values->counters; j++) - fprintf(fp, " %*Lu", + fprintf(fp, " %*" PRIu64, counterwidth[j], values->value[i][j]); fprintf(fp, "\n"); } @@ -196,13 +196,13 @@ static void perf_read_values__display_raw(FILE *fp, width = strlen(values->countername[j]); if (width > namewidth) namewidth = width; - width = snprintf(NULL, 0, "%llx", values->counterrawid[j]); + width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]); if (width > rawwidth) rawwidth = width; } for (i = 0; i < values->threads; i++) { for (j = 0; j < values->counters; j++) { - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); if (width > countwidth) countwidth = width; } @@ -214,7 +214,7 @@ static void perf_read_values__display_raw(FILE *fp, countwidth, "Count"); for (i = 0; i < values->threads; i++) for (j = 0; j < values->counters; j++) - fprintf(fp, " %*d %*d %*s %*llx %*Lu\n", + fprintf(fp, " %*d %*d %*s %*" PRIx64 " %*" PRIu64, pidwidth, values->pid[i], tidwidth, values->tid[i], namewidth, values->countername[j], -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-22 5:08 ` Pingtian Han @ 2011-01-22 9:13 ` Denis Kirjanov 0 siblings, 0 replies; 15+ messages in thread From: Denis Kirjanov @ 2011-01-22 9:13 UTC (permalink / raw) To: Pingtian Han Cc: Arnaldo Carvalho de Melo, Ingo Molnar, linux-kernel, a p zijlstra, paulus On Sat, Jan 22, 2011 at 12:08:39AM -0500, Pingtian Han wrote: > It seems that the patch of Denis works in my envriments. The original build failure only occurs on > ppc64 systems. The type '__u64' on ppc64 seems equal to 'long int'. Maybe we needn't change the definition of 'u64' because the macro 'PRIu64' will be 'lu' on ppc64, too. > I see what you mean, but the right way to fix this in my view is to use inttypes.h specifiers with the types from the stdint.h header (PRIu64 with uint64_t for ex.) > ----- Original Message ----- > From: "Arnaldo Carvalho de Melo" <acme@ghostprotocols.net> > To: "Denis Kirjanov" <dkirjanov@kernel.org> > Cc: "Ingo Molnar" <mingo@elte.hu>, linux-kernel@vger.kernel.org, "a p zijlstra" <a.p.zijlstra@chello.nl>, paulus@samba.org > Sent: Saturday, January 22, 2011 3:30:03 AM > Subject: Re: [PATCH] perftools: Fix build error > > Em Fri, Jan 21, 2011 at 04:53:37PM -0200, Arnaldo Carvalho de Melo escreveu: > > Now, after applying your patch, I get: > > > > [acme@felicio linux]$ make -j2 O=~acme/git/build/perf -C tools/perf/ install > > CC /home/acme/git/build/perf/builtin-top.o > > cc1: warnings being treated as errors > > builtin-top.c: In function ‘print_sym_table’: > > builtin-top.c:541:3: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘__u64’ > > make: *** [/home/acme/git/build/perf/builtin-top.o] Error 1 > > make: Leaving directory `/media/tbs/acme/git/linux/tools/perf' > > > > [acme@felicio linux]$ gcc -v > > gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) > > [acme@felicio linux]$ cat /etc/fedora-release > > Fedora release 14 (Laughlin) > > [acme@felicio linux]$ > > Can you check the attached patch? > > I changed the typedef for u64 from 'unsigned long long' to uint64_t and > fixed up the fallout, converting lots of places to use PRI[ux]64. > > - Arnaldo > > [acme@felicio linux]$ git diff --stat > tools/perf/builtin-annotate.c | 6 +++--- > tools/perf/builtin-kmem.c | 4 ++-- > tools/perf/builtin-lock.c | 6 +++--- > tools/perf/builtin-record.c | 2 +- > tools/perf/builtin-report.c | 2 +- > tools/perf/builtin-sched.c | 20 ++++++++++---------- > tools/perf/builtin-script.c | 6 +++--- > tools/perf/builtin-stat.c | 4 ++-- > tools/perf/builtin-test.c | 14 +++++++------- > tools/perf/builtin-top.c | 9 +++++---- > tools/perf/util/event.c | 5 +++-- > tools/perf/util/header.c | 4 ++-- > tools/perf/util/hist.c | 17 +++++++++-------- > tools/perf/util/map.c | 3 ++- > tools/perf/util/parse-events.c | 2 +- > tools/perf/util/probe-event.c | 2 +- > tools/perf/util/session.c | 28 +++++++++++++++------------- > tools/perf/util/svghelper.c | 5 +++-- > tools/perf/util/symbol.c | 9 +++++---- > tools/perf/util/types.h | 10 ++++++---- > tools/perf/util/ui/browsers/hists.c | 2 +- > tools/perf/util/ui/browsers/map.c | 5 +++-- > tools/perf/util/values.c | 10 +++++----- > 23 files changed, 93 insertions(+), 82 deletions(-) > [acme@felicio linux]$ > > diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c > index c056cdc..8879463 100644 > --- a/tools/perf/builtin-annotate.c > +++ b/tools/perf/builtin-annotate.c > @@ -212,7 +212,7 @@ get_source_line(struct hist_entry *he, int len, const char *filename) > continue; > > offset = start + i; > - sprintf(cmd, "addr2line -e %s %016llx", filename, offset); > + sprintf(cmd, "addr2line -e %s %016" PRIx64, filename, offset); > fp = popen(cmd, "r"); > if (!fp) > continue; > @@ -270,9 +270,9 @@ static void hist_entry__print_hits(struct hist_entry *self) > > for (offset = 0; offset < len; ++offset) > if (h->ip[offset] != 0) > - printf("%*Lx: %Lu\n", BITS_PER_LONG / 2, > + printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2, > sym->start + offset, h->ip[offset]); > - printf("%*s: %Lu\n", BITS_PER_LONG / 2, "h->sum", h->sum); > + printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum); > } > > static int hist_entry__tty_annotate(struct hist_entry *he) > diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c > index def7ddc..d97256d 100644 > --- a/tools/perf/builtin-kmem.c > +++ b/tools/perf/builtin-kmem.c > @@ -371,10 +371,10 @@ static void __print_result(struct rb_root *root, struct perf_session *session, > addr = data->ptr; > > if (sym != NULL) > - snprintf(buf, sizeof(buf), "%s+%Lx", sym->name, > + snprintf(buf, sizeof(buf), "%s+%" PRIx64 "", sym->name, > addr - map->unmap_ip(map, sym->start)); > else > - snprintf(buf, sizeof(buf), "%#Lx", addr); > + snprintf(buf, sizeof(buf), "%#" PRIx64 "", addr); > printf(" %-34s |", buf); > > printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n", > diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c > index b9c6e54..2b36def 100644 > --- a/tools/perf/builtin-lock.c > +++ b/tools/perf/builtin-lock.c > @@ -782,9 +782,9 @@ static void print_result(void) > pr_info("%10u ", st->nr_acquired); > pr_info("%10u ", st->nr_contended); > > - pr_info("%15llu ", st->wait_time_total); > - pr_info("%15llu ", st->wait_time_max); > - pr_info("%15llu ", st->wait_time_min == ULLONG_MAX ? > + pr_info("%15" PRIu64 " ", st->wait_time_total); > + pr_info("%15" PRIu64 " ", st->wait_time_max); > + pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ? > 0 : st->wait_time_min); > pr_info("\n"); > } > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index fcd29e8..b2f729f 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -817,7 +817,7 @@ static int __cmd_record(int argc, const char **argv) > * Approximate RIP event size: 24 bytes. > */ > fprintf(stderr, > - "[ perf record: Captured and wrote %.3f MB %s (~%lld samples) ]\n", > + "[ perf record: Captured and wrote %.3f MB %s (~%" PRIu64 " samples) ]\n", > (double)bytes_written / 1024.0 / 1024.0, > output_name, > bytes_written / 24); > diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c > index 75183a4..c27e31f 100644 > --- a/tools/perf/builtin-report.c > +++ b/tools/perf/builtin-report.c > @@ -197,7 +197,7 @@ static int process_read_event(event_t *event, struct sample_data *sample __used, > event->read.value); > } > > - dump_printf(": %d %d %s %Lu\n", event->read.pid, event->read.tid, > + dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid, > attr ? __event_name(attr->type, attr->config) : "FAIL", > event->read.value); > > diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c > index 29e7ffd..29acb89 100644 > --- a/tools/perf/builtin-sched.c > +++ b/tools/perf/builtin-sched.c > @@ -193,7 +193,7 @@ static void calibrate_run_measurement_overhead(void) > } > run_measurement_overhead = min_delta; > > - printf("run measurement overhead: %Ld nsecs\n", min_delta); > + printf("run measurement overhead: %" PRIu64 " nsecs\n", min_delta); > } > > static void calibrate_sleep_measurement_overhead(void) > @@ -211,7 +211,7 @@ static void calibrate_sleep_measurement_overhead(void) > min_delta -= 10000; > sleep_measurement_overhead = min_delta; > > - printf("sleep measurement overhead: %Ld nsecs\n", min_delta); > + printf("sleep measurement overhead: %" PRIu64 " nsecs\n", min_delta); > } > > static struct sched_atom * > @@ -617,13 +617,13 @@ static void test_calibrations(void) > burn_nsecs(1e6); > T1 = get_nsecs(); > > - printf("the run test took %Ld nsecs\n", T1-T0); > + printf("the run test took %" PRIu64 " nsecs\n", T1 - T0); > > T0 = get_nsecs(); > sleep_nsecs(1e6); > T1 = get_nsecs(); > > - printf("the sleep test took %Ld nsecs\n", T1-T0); > + printf("the sleep test took %" PRIu64 " nsecs\n", T1 - T0); > } > > #define FILL_FIELD(ptr, field, event, data) \ > @@ -816,10 +816,10 @@ replay_switch_event(struct trace_switch_event *switch_event, > delta = 0; > > if (delta < 0) > - die("hm, delta: %Ld < 0 ?\n", delta); > + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); > > if (verbose) { > - printf(" ... switch from %s/%d to %s/%d [ran %Ld nsecs]\n", > + printf(" ... switch from %s/%d to %s/%d [ran %" PRIu64 " nsecs]\n", > switch_event->prev_comm, switch_event->prev_pid, > switch_event->next_comm, switch_event->next_pid, > delta); > @@ -1048,7 +1048,7 @@ latency_switch_event(struct trace_switch_event *switch_event, > delta = 0; > > if (delta < 0) > - die("hm, delta: %Ld < 0 ?\n", delta); > + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); > > > sched_out = perf_session__findnew(session, switch_event->prev_pid); > @@ -1221,7 +1221,7 @@ static void output_lat_thread(struct work_atoms *work_list) > > avg = work_list->total_lat / work_list->nb_atoms; > > - printf("|%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", > + printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", > (double)work_list->total_runtime / 1e6, > work_list->nb_atoms, (double)avg / 1e6, > (double)work_list->max_lat / 1e6, > @@ -1423,7 +1423,7 @@ map_switch_event(struct trace_switch_event *switch_event, > delta = 0; > > if (delta < 0) > - die("hm, delta: %Ld < 0 ?\n", delta); > + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); > > > sched_out = perf_session__findnew(session, switch_event->prev_pid); > @@ -1713,7 +1713,7 @@ static void __cmd_lat(void) > } > > printf(" -----------------------------------------------------------------------------------------\n"); > - printf(" TOTAL: |%11.3f ms |%9Ld |\n", > + printf(" TOTAL: |%11.3f ms |%9" PRIu64 " |\n", > (double)all_runtime/1e6, all_count); > > printf(" ---------------------------------------------------\n"); > diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c > index 150a606..b766c2a 100644 > --- a/tools/perf/builtin-script.c > +++ b/tools/perf/builtin-script.c > @@ -77,8 +77,8 @@ static int process_sample_event(event_t *event, struct sample_data *sample, > if (session->sample_type & PERF_SAMPLE_RAW) { > if (debug_mode) { > if (sample->time < last_timestamp) { > - pr_err("Samples misordered, previous: %llu " > - "this: %llu\n", last_timestamp, > + pr_err("Samples misordered, previous: %" PRIu64 > + " this: %" PRIu64 "\n", last_timestamp, > sample->time); > nr_unordered++; > } > @@ -126,7 +126,7 @@ static int __cmd_script(struct perf_session *session) > ret = perf_session__process_events(session, &event_ops); > > if (debug_mode) > - pr_err("Misordered timestamps: %llu\n", nr_unordered); > + pr_err("Misordered timestamps: %" PRIu64 "\n", nr_unordered); > > return ret; > } > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > index 0ff11d9..a482a19 100644 > --- a/tools/perf/builtin-stat.c > +++ b/tools/perf/builtin-stat.c > @@ -206,8 +206,8 @@ static int read_counter_aggr(struct perf_evsel *counter) > update_stats(&ps->res_stats[i], count[i]); > > if (verbose) { > - fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter), > - count[0], count[1], count[2]); > + fprintf(stderr, "%s: %" PRIu64 " %" PRIu64 " %" PRIu64 "\n", > + event_name(counter), count[0], count[1], count[2]); > } > > /* > diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c > index 02958d6..1c9060f 100644 > --- a/tools/perf/builtin-test.c > +++ b/tools/perf/builtin-test.c > @@ -146,7 +146,7 @@ next_pair: > if (llabs(skew) < page_size) > continue; > > - pr_debug("%#Lx: diff end addr for %s v: %#Lx k: %#Lx\n", > + pr_debug("%#" PRIx64 ": diff end addr for %s v: %#" PRIx64 " k: %#" PRIx64 "\n", > sym->start, sym->name, sym->end, pair->end); > } else { > struct rb_node *nnd; > @@ -168,11 +168,11 @@ detour: > goto detour; > } > > - pr_debug("%#Lx: diff name v: %s k: %s\n", > + pr_debug("%#" PRIx64 ": diff name v: %s k: %s\n", > sym->start, sym->name, pair->name); > } > } else > - pr_debug("%#Lx: %s not on kallsyms\n", sym->start, sym->name); > + pr_debug("%#" PRIx64 ": %s not on kallsyms\n", sym->start, sym->name); > > err = -1; > } > @@ -211,10 +211,10 @@ detour: > > if (pair->start == pos->start) { > pair->priv = 1; > - pr_info(" %Lx-%Lx %Lx %s in kallsyms as", > + pr_info(" %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as", > pos->start, pos->end, pos->pgoff, pos->dso->name); > if (pos->pgoff != pair->pgoff || pos->end != pair->end) > - pr_info(": \n*%Lx-%Lx %Lx", > + pr_info(": \n*%" PRIx64 "-%" PRIx64 " %" PRIx64 "", > pair->start, pair->end, pair->pgoff); > pr_info(" %s\n", pair->dso->name); > pair->priv = 1; > @@ -307,7 +307,7 @@ static int test__open_syscall_event(void) > } > > if (evsel->counts->cpu[0].val != nr_open_calls) { > - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %Ld\n", > + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %" PRIu64 "\n", > nr_open_calls, evsel->counts->cpu[0].val); > goto out_close_fd; > } > @@ -414,7 +414,7 @@ static int test__open_syscall_event_on_all_cpus(void) > > expected = nr_open_calls + cpu; > if (evsel->counts->cpu[cpu].val != expected) { > - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %Ld\n", > + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n", > expected, cpus->map[cpu], evsel->counts->cpu[cpu].val); > goto out_close_fd; > } > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > index 05344c6..b6998e0 100644 > --- a/tools/perf/builtin-top.c > +++ b/tools/perf/builtin-top.c > @@ -40,6 +40,7 @@ > #include <stdio.h> > #include <termios.h> > #include <unistd.h> > +#include <inttypes.h> > > #include <errno.h> > #include <time.h> > @@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme) > len = sym->end - sym->start; > > sprintf(command, > - "objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s", > + "objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s", > BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start), > BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path); > > @@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme) > struct source_line *line; > char pattern[PATTERN_LEN + 1]; > > - sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4, > + sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4, > map__rip_2objdump(syme->map, symbol->start)); > > pthread_mutex_lock(&syme->src->lock); > @@ -537,7 +538,7 @@ static void print_sym_table(void) > if (nr_counters == 1 || !display_weighted) { > struct perf_evsel *first; > first = list_entry(evsel_list.next, struct perf_evsel, node); > - printf("%Ld", first->attr.sample_period); > + printf("%" PRIu64, (uint64_t)first->attr.sample_period); > if (freq) > printf("Hz "); > else > @@ -640,7 +641,7 @@ static void print_sym_table(void) > > percent_color_fprintf(stdout, "%4.1f%%", pcnt); > if (verbose) > - printf(" %016llx", sym->start); > + printf(" %016" PRIx64, sym->start); > printf(" %-*.*s", sym_width, sym_width, sym->name); > printf(" %-*.*s\n", dso_width, dso_width, > dso_width >= syme->map->dso->long_name_len ? > diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c > index 2302ec0..1478ab4 100644 > --- a/tools/perf/util/event.c > +++ b/tools/perf/util/event.c > @@ -459,7 +459,8 @@ int event__process_comm(event_t *self, struct sample_data *sample __used, > int event__process_lost(event_t *self, struct sample_data *sample __used, > struct perf_session *session) > { > - dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost); > + dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n", > + self->lost.id, self->lost.lost); > session->hists.stats.total_lost += self->lost.lost; > return 0; > } > @@ -575,7 +576,7 @@ int event__process_mmap(event_t *self, struct sample_data *sample __used, > u8 cpumode = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; > int ret = 0; > > - dump_printf(" %d/%d: [%#Lx(%#Lx) @ %#Lx]: %s\n", > + dump_printf(" %d/%d: [%#" PRIx64 "(%#" PRIx64 ") @ %#" PRIx64 "]: %s\n", > self->mmap.pid, self->mmap.tid, self->mmap.start, > self->mmap.len, self->mmap.pgoff, self->mmap.filename); > > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c > index 989fa2d..f6a929e7 100644 > --- a/tools/perf/util/header.c > +++ b/tools/perf/util/header.c > @@ -798,8 +798,8 @@ static int perf_file_section__process(struct perf_file_section *self, > int feat, int fd) > { > if (lseek(fd, self->offset, SEEK_SET) == (off_t)-1) { > - pr_debug("Failed to lseek to %Ld offset for feature %d, " > - "continuing...\n", self->offset, feat); > + pr_debug("Failed to lseek to %" PRIu64 " offset for feature " > + "%d, continuing...\n", self->offset, feat); > return 0; > } > > diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c > index c749ba6..32f4f1f 100644 > --- a/tools/perf/util/hist.c > +++ b/tools/perf/util/hist.c > @@ -636,13 +636,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size, > } > } > } else > - ret = snprintf(s, size, sep ? "%lld" : "%12lld ", period); > + ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); > > if (symbol_conf.show_nr_samples) { > if (sep) > - ret += snprintf(s + ret, size - ret, "%c%lld", *sep, period); > + ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); > else > - ret += snprintf(s + ret, size - ret, "%11lld", period); > + ret += snprintf(s + ret, size - ret, "%11" PRIu64, period); > } > > if (pair_hists) { > @@ -971,7 +971,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) > sym_size = sym->end - sym->start; > offset = ip - sym->start; > > - pr_debug3("%s: ip=%#Lx\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); > + pr_debug3("%s: ip=%#" PRIx64 "\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); > > if (offset >= sym_size) > return 0; > @@ -980,8 +980,9 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) > h->sum++; > h->ip[offset]++; > > - pr_debug3("%#Lx %s: period++ [ip: %#Lx, %#Lx] => %Ld\n", self->ms.sym->start, > - self->ms.sym->name, ip, ip - self->ms.sym->start, h->ip[offset]); > + pr_debug3("%#" PRIx64 " %s: period++ [ip: %#" PRIx64 ", %#" PRIx64 > + "] => %" PRIu64 "\n", self->ms.sym->start, self->ms.sym->name, > + ip, ip - self->ms.sym->start, h->ip[offset]); > return 0; > } > > @@ -1132,7 +1133,7 @@ fallback: > goto out_free_filename; > } > > - pr_debug("%s: filename=%s, sym=%s, start=%#Lx, end=%#Lx\n", __func__, > + pr_debug("%s: filename=%s, sym=%s, start=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__, > filename, sym->name, map->unmap_ip(map, sym->start), > map->unmap_ip(map, sym->end)); > > @@ -1142,7 +1143,7 @@ fallback: > dso, dso->long_name, sym, sym->name); > > snprintf(command, sizeof(command), > - "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS -C %s|grep -v %s|expand", > + "objdump --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand", > map__rip_2objdump(map, sym->start), > map__rip_2objdump(map, sym->end), > symfs_filename, filename); > diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c > index 3a7eb6e..a16ecab 100644 > --- a/tools/perf/util/map.c > +++ b/tools/perf/util/map.c > @@ -1,5 +1,6 @@ > #include "symbol.h" > #include <errno.h> > +#include <inttypes.h> > #include <limits.h> > #include <stdlib.h> > #include <string.h> > @@ -195,7 +196,7 @@ int map__overlap(struct map *l, struct map *r) > > size_t map__fprintf(struct map *self, FILE *fp) > { > - return fprintf(fp, " %Lx-%Lx %Lx %s\n", > + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n", > self->start, self->end, self->pgoff, self->dso->name); > } > > diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c > index bc2732e..135f69b 100644 > --- a/tools/perf/util/parse-events.c > +++ b/tools/perf/util/parse-events.c > @@ -279,7 +279,7 @@ const char *__event_name(int type, u64 config) > static char buf[32]; > > if (type == PERF_TYPE_RAW) { > - sprintf(buf, "raw 0x%llx", config); > + sprintf(buf, "raw 0x%" PRIx64, config); > return buf; > } > > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c > index 128aaab..6e29d9c 100644 > --- a/tools/perf/util/probe-event.c > +++ b/tools/perf/util/probe-event.c > @@ -172,7 +172,7 @@ static int kprobe_convert_to_perf_probe(struct probe_trace_point *tp, > sym = __find_kernel_function_by_name(tp->symbol, &map); > if (sym) { > addr = map->unmap_ip(map, sym->start + tp->offset); > - pr_debug("try to find %s+%ld@%llx\n", tp->symbol, > + pr_debug("try to find %s+%ld@%" PRIx64 "\n", tp->symbol, > tp->offset, addr); > ret = find_perf_probe_point((unsigned long)addr, pp); > } > diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c > index 313dac2..105f00b 100644 > --- a/tools/perf/util/session.c > +++ b/tools/perf/util/session.c > @@ -652,10 +652,11 @@ static void callchain__printf(struct sample_data *sample) > { > unsigned int i; > > - printf("... chain: nr:%Lu\n", sample->callchain->nr); > + printf("... chain: nr:%" PRIu64 "\n", sample->callchain->nr); > > for (i = 0; i < sample->callchain->nr; i++) > - printf("..... %2d: %016Lx\n", i, sample->callchain->ips[i]); > + printf("..... %2d: %016" PRIx64 "\n", > + i, sample->callchain->ips[i]); > } > > static void perf_session__print_tstamp(struct perf_session *session, > @@ -672,7 +673,7 @@ static void perf_session__print_tstamp(struct perf_session *session, > printf("%u ", sample->cpu); > > if (session->sample_type & PERF_SAMPLE_TIME) > - printf("%Lu ", sample->time); > + printf("%" PRIu64 " ", sample->time); > } > > static void dump_event(struct perf_session *session, event_t *event, > @@ -681,16 +682,16 @@ static void dump_event(struct perf_session *session, event_t *event, > if (!dump_trace) > return; > > - printf("\n%#Lx [%#x]: event: %d\n", file_offset, event->header.size, > - event->header.type); > + printf("\n%#" PRIx64 " [%#x]: event: %d\n", > + file_offset, event->header.size, event->header.type); > > trace_event(event); > > if (sample) > perf_session__print_tstamp(session, event, sample); > > - printf("%#Lx [%#x]: PERF_RECORD_%s", file_offset, event->header.size, > - event__get_event_name(event->header.type)); > + printf("%#" PRIx64 " [%#x]: PERF_RECORD_%s", file_offset, > + event->header.size, event__get_event_name(event->header.type)); > } > > static void dump_sample(struct perf_session *session, event_t *event, > @@ -699,8 +700,9 @@ static void dump_sample(struct perf_session *session, event_t *event, > if (!dump_trace) > return; > > - printf("(IP, %d): %d/%d: %#Lx period: %Ld\n", event->header.misc, > - sample->pid, sample->tid, sample->ip, sample->period); > + printf("(IP, %d): %d/%d: %#" PRIx64 " period: %" PRIu64 "\n", > + event->header.misc, sample->pid, sample->tid, sample->ip, > + sample->period); > > if (session->sample_type & PERF_SAMPLE_CALLCHAIN) > callchain__printf(sample); > @@ -843,8 +845,8 @@ static void perf_session__warn_about_errors(const struct perf_session *session, > { > if (ops->lost == event__process_lost && > session->hists.stats.total_lost != 0) { > - ui__warning("Processed %Lu events and LOST %Lu!\n\n" > - "Check IO/CPU overload!\n\n", > + ui__warning("Processed %" PRIu64 " events and LOST %" PRIu64 > + "!\n\nCheck IO/CPU overload!\n\n", > session->hists.stats.total_period, > session->hists.stats.total_lost); > } > @@ -918,7 +920,7 @@ more: > > if (size == 0 || > (skip = perf_session__process_event(self, &event, ops, head)) < 0) { > - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", > + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", > head, event.header.size, event.header.type); > /* > * assume we lost track of the stream, check alignment, and > @@ -1023,7 +1025,7 @@ more: > > if (size == 0 || > perf_session__process_event(session, event, ops, file_pos) < 0) { > - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", > + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", > file_offset + head, event->header.size, > event->header.type); > /* > diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c > index b3637db..805220a 100644 > --- a/tools/perf/util/svghelper.c > +++ b/tools/perf/util/svghelper.c > @@ -12,6 +12,7 @@ > * of the License. > */ > > +#include <inttypes.h> > #include <stdio.h> > #include <stdlib.h> > #include <unistd.h> > @@ -94,7 +95,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end) > > total_height = (1 + rows + cpu2slot(cpus)) * SLOT_MULT; > fprintf(svgfile, "<?xml version=\"1.0\" standalone=\"no\"?> \n"); > - fprintf(svgfile, "<svg width=\"%i\" height=\"%llu\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); > + fprintf(svgfile, "<svg width=\"%i\" height=\"%" PRIu64 "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); > > fprintf(svgfile, "<defs>\n <style type=\"text/css\">\n <![CDATA[\n"); > > @@ -483,7 +484,7 @@ void svg_time_grid(void) > color = 128; > } > > - fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%llu\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", > + fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%" PRIu64 "\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", > time2pixels(i), SLOT_MULT/2, time2pixels(i), total_height, color, color, color, thickness); > > i += 10000000; > diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c > index e32478e..7821d0e 100644 > --- a/tools/perf/util/symbol.c > +++ b/tools/perf/util/symbol.c > @@ -11,6 +11,7 @@ > #include <sys/param.h> > #include <fcntl.h> > #include <unistd.h> > +#include <inttypes.h> > #include "build-id.h" > #include "debug.h" > #include "symbol.h" > @@ -153,7 +154,7 @@ static struct symbol *symbol__new(u64 start, u64 len, u8 binding, > self->binding = binding; > self->namelen = namelen - 1; > > - pr_debug4("%s: %s %#Lx-%#Lx\n", __func__, name, start, self->end); > + pr_debug4("%s: %s %#" PRIx64 "-%#" PRIx64 "\n", __func__, name, start, self->end); > > memcpy(self->name, name, namelen); > > @@ -167,7 +168,7 @@ void symbol__delete(struct symbol *self) > > static size_t symbol__fprintf(struct symbol *self, FILE *fp) > { > - return fprintf(fp, " %llx-%llx %c %s\n", > + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %c %s\n", > self->start, self->end, > self->binding == STB_GLOBAL ? 'g' : > self->binding == STB_LOCAL ? 'l' : 'w', > @@ -1215,8 +1216,8 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name, > } > > if (curr_dso->adjust_symbols) { > - pr_debug4("%s: adjusting symbol: st_value: %#Lx " > - "sh_addr: %#Lx sh_offset: %#Lx\n", __func__, > + pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " " > + "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", __func__, > (u64)sym.st_value, (u64)shdr.sh_addr, > (u64)shdr.sh_offset); > sym.st_value -= shdr.sh_addr - shdr.sh_offset; > diff --git a/tools/perf/util/types.h b/tools/perf/util/types.h > index 7d6b833..5f3689a 100644 > --- a/tools/perf/util/types.h > +++ b/tools/perf/util/types.h > @@ -1,12 +1,14 @@ > #ifndef __PERF_TYPES_H > #define __PERF_TYPES_H > > +#include <stdint.h> > + > /* > - * We define u64 as unsigned long long for every architecture > - * so that we can print it with %Lx without getting warnings. > + * We define u64 as uint64_t for every architecture > + * so that we can print it with "%"PRIx64 without getting warnings. > */ > -typedef unsigned long long u64; > -typedef signed long long s64; > +typedef uint64_t u64; > +typedef int64_t s64; > typedef unsigned int u32; > typedef signed int s32; > typedef unsigned short u16; > diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c > index ebda8c3..60c463c 100644 > --- a/tools/perf/util/ui/browsers/hists.c > +++ b/tools/perf/util/ui/browsers/hists.c > @@ -350,7 +350,7 @@ static char *callchain_list__sym_name(struct callchain_list *self, > if (self->ms.sym) > return self->ms.sym->name; > > - snprintf(bf, bfsize, "%#Lx", self->ip); > + snprintf(bf, bfsize, "%#" PRIx64, self->ip); > return bf; > } > > diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c > index e35437d..e515836 100644 > --- a/tools/perf/util/ui/browsers/map.c > +++ b/tools/perf/util/ui/browsers/map.c > @@ -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); > } > diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c > index cfa55d6..bdd3347 100644 > --- a/tools/perf/util/values.c > +++ b/tools/perf/util/values.c > @@ -150,7 +150,7 @@ static void perf_read_values__display_pretty(FILE *fp, > if (width > tidwidth) > tidwidth = width; > for (j = 0; j < values->counters; j++) { > - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); > + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); > if (width > counterwidth[j]) > counterwidth[j] = width; > } > @@ -165,7 +165,7 @@ static void perf_read_values__display_pretty(FILE *fp, > fprintf(fp, " %*d %*d", pidwidth, values->pid[i], > tidwidth, values->tid[i]); > for (j = 0; j < values->counters; j++) > - fprintf(fp, " %*Lu", > + fprintf(fp, " %*" PRIu64, > counterwidth[j], values->value[i][j]); > fprintf(fp, "\n"); > } > @@ -196,13 +196,13 @@ static void perf_read_values__display_raw(FILE *fp, > width = strlen(values->countername[j]); > if (width > namewidth) > namewidth = width; > - width = snprintf(NULL, 0, "%llx", values->counterrawid[j]); > + width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]); > if (width > rawwidth) > rawwidth = width; > } > for (i = 0; i < values->threads; i++) { > for (j = 0; j < values->counters; j++) { > - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); > + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); > if (width > countwidth) > countwidth = width; > } > @@ -214,7 +214,7 @@ static void perf_read_values__display_raw(FILE *fp, > countwidth, "Count"); > for (i = 0; i < values->threads; i++) > for (j = 0; j < values->counters; j++) > - fprintf(fp, " %*d %*d %*s %*llx %*Lu\n", > + fprintf(fp, " %*d %*d %*s %*" PRIx64 " %*" PRIu64, > pidwidth, values->pid[i], > tidwidth, values->tid[i], > namewidth, values->countername[j], > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] perftools: Fix build error 2011-01-21 19:30 ` Arnaldo Carvalho de Melo 2011-01-22 5:08 ` Pingtian Han @ 2011-01-22 8:54 ` Denis Kirjanov 1 sibling, 0 replies; 15+ messages in thread From: Denis Kirjanov @ 2011-01-22 8:54 UTC (permalink / raw) To: Arnaldo Carvalho de Melo; +Cc: Ingo Molnar, linux-kernel, a.p.zijlstra, paulus On Fri, Jan 21, 2011 at 05:30:03PM -0200, Arnaldo Carvalho de Melo wrote: > Em Fri, Jan 21, 2011 at 04:53:37PM -0200, Arnaldo Carvalho de Melo escreveu: > > Now, after applying your patch, I get: > > > > [acme@felicio linux]$ make -j2 O=~acme/git/build/perf -C tools/perf/ install > > CC /home/acme/git/build/perf/builtin-top.o > > cc1: warnings being treated as errors > > builtin-top.c: In function ‘print_sym_table’: > > builtin-top.c:541:3: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘__u64’ > > make: *** [/home/acme/git/build/perf/builtin-top.o] Error 1 > > make: Leaving directory `/media/tbs/acme/git/linux/tools/perf' > > > > [acme@felicio linux]$ gcc -v > > gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) > > [acme@felicio linux]$ cat /etc/fedora-release > > Fedora release 14 (Laughlin) > > [acme@felicio linux]$ > > Can you check the attached patch? > > I changed the typedef for u64 from 'unsigned long long' to uint64_t and > fixed up the fallout, converting lots of places to use PRI[ux]64. > > - Arnaldo Oops, sorry for delayed response. Yep, this works for both ppc32 and ppc64. Thanks. > > [acme@felicio linux]$ git diff --stat > tools/perf/builtin-annotate.c | 6 +++--- > tools/perf/builtin-kmem.c | 4 ++-- > tools/perf/builtin-lock.c | 6 +++--- > tools/perf/builtin-record.c | 2 +- > tools/perf/builtin-report.c | 2 +- > tools/perf/builtin-sched.c | 20 ++++++++++---------- > tools/perf/builtin-script.c | 6 +++--- > tools/perf/builtin-stat.c | 4 ++-- > tools/perf/builtin-test.c | 14 +++++++------- > tools/perf/builtin-top.c | 9 +++++---- > tools/perf/util/event.c | 5 +++-- > tools/perf/util/header.c | 4 ++-- > tools/perf/util/hist.c | 17 +++++++++-------- > tools/perf/util/map.c | 3 ++- > tools/perf/util/parse-events.c | 2 +- > tools/perf/util/probe-event.c | 2 +- > tools/perf/util/session.c | 28 +++++++++++++++------------- > tools/perf/util/svghelper.c | 5 +++-- > tools/perf/util/symbol.c | 9 +++++---- > tools/perf/util/types.h | 10 ++++++---- > tools/perf/util/ui/browsers/hists.c | 2 +- > tools/perf/util/ui/browsers/map.c | 5 +++-- > tools/perf/util/values.c | 10 +++++----- > 23 files changed, 93 insertions(+), 82 deletions(-) > [acme@felicio linux]$ > > diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c > index c056cdc..8879463 100644 > --- a/tools/perf/builtin-annotate.c > +++ b/tools/perf/builtin-annotate.c > @@ -212,7 +212,7 @@ get_source_line(struct hist_entry *he, int len, const char *filename) > continue; > > offset = start + i; > - sprintf(cmd, "addr2line -e %s %016llx", filename, offset); > + sprintf(cmd, "addr2line -e %s %016" PRIx64, filename, offset); > fp = popen(cmd, "r"); > if (!fp) > continue; > @@ -270,9 +270,9 @@ static void hist_entry__print_hits(struct hist_entry *self) > > for (offset = 0; offset < len; ++offset) > if (h->ip[offset] != 0) > - printf("%*Lx: %Lu\n", BITS_PER_LONG / 2, > + printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2, > sym->start + offset, h->ip[offset]); > - printf("%*s: %Lu\n", BITS_PER_LONG / 2, "h->sum", h->sum); > + printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum); > } > > static int hist_entry__tty_annotate(struct hist_entry *he) > diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c > index def7ddc..d97256d 100644 > --- a/tools/perf/builtin-kmem.c > +++ b/tools/perf/builtin-kmem.c > @@ -371,10 +371,10 @@ static void __print_result(struct rb_root *root, struct perf_session *session, > addr = data->ptr; > > if (sym != NULL) > - snprintf(buf, sizeof(buf), "%s+%Lx", sym->name, > + snprintf(buf, sizeof(buf), "%s+%" PRIx64 "", sym->name, > addr - map->unmap_ip(map, sym->start)); > else > - snprintf(buf, sizeof(buf), "%#Lx", addr); > + snprintf(buf, sizeof(buf), "%#" PRIx64 "", addr); > printf(" %-34s |", buf); > > printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n", > diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c > index b9c6e54..2b36def 100644 > --- a/tools/perf/builtin-lock.c > +++ b/tools/perf/builtin-lock.c > @@ -782,9 +782,9 @@ static void print_result(void) > pr_info("%10u ", st->nr_acquired); > pr_info("%10u ", st->nr_contended); > > - pr_info("%15llu ", st->wait_time_total); > - pr_info("%15llu ", st->wait_time_max); > - pr_info("%15llu ", st->wait_time_min == ULLONG_MAX ? > + pr_info("%15" PRIu64 " ", st->wait_time_total); > + pr_info("%15" PRIu64 " ", st->wait_time_max); > + pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ? > 0 : st->wait_time_min); > pr_info("\n"); > } > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index fcd29e8..b2f729f 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -817,7 +817,7 @@ static int __cmd_record(int argc, const char **argv) > * Approximate RIP event size: 24 bytes. > */ > fprintf(stderr, > - "[ perf record: Captured and wrote %.3f MB %s (~%lld samples) ]\n", > + "[ perf record: Captured and wrote %.3f MB %s (~%" PRIu64 " samples) ]\n", > (double)bytes_written / 1024.0 / 1024.0, > output_name, > bytes_written / 24); > diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c > index 75183a4..c27e31f 100644 > --- a/tools/perf/builtin-report.c > +++ b/tools/perf/builtin-report.c > @@ -197,7 +197,7 @@ static int process_read_event(event_t *event, struct sample_data *sample __used, > event->read.value); > } > > - dump_printf(": %d %d %s %Lu\n", event->read.pid, event->read.tid, > + dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid, > attr ? __event_name(attr->type, attr->config) : "FAIL", > event->read.value); > > diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c > index 29e7ffd..29acb89 100644 > --- a/tools/perf/builtin-sched.c > +++ b/tools/perf/builtin-sched.c > @@ -193,7 +193,7 @@ static void calibrate_run_measurement_overhead(void) > } > run_measurement_overhead = min_delta; > > - printf("run measurement overhead: %Ld nsecs\n", min_delta); > + printf("run measurement overhead: %" PRIu64 " nsecs\n", min_delta); > } > > static void calibrate_sleep_measurement_overhead(void) > @@ -211,7 +211,7 @@ static void calibrate_sleep_measurement_overhead(void) > min_delta -= 10000; > sleep_measurement_overhead = min_delta; > > - printf("sleep measurement overhead: %Ld nsecs\n", min_delta); > + printf("sleep measurement overhead: %" PRIu64 " nsecs\n", min_delta); > } > > static struct sched_atom * > @@ -617,13 +617,13 @@ static void test_calibrations(void) > burn_nsecs(1e6); > T1 = get_nsecs(); > > - printf("the run test took %Ld nsecs\n", T1-T0); > + printf("the run test took %" PRIu64 " nsecs\n", T1 - T0); > > T0 = get_nsecs(); > sleep_nsecs(1e6); > T1 = get_nsecs(); > > - printf("the sleep test took %Ld nsecs\n", T1-T0); > + printf("the sleep test took %" PRIu64 " nsecs\n", T1 - T0); > } > > #define FILL_FIELD(ptr, field, event, data) \ > @@ -816,10 +816,10 @@ replay_switch_event(struct trace_switch_event *switch_event, > delta = 0; > > if (delta < 0) > - die("hm, delta: %Ld < 0 ?\n", delta); > + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); > > if (verbose) { > - printf(" ... switch from %s/%d to %s/%d [ran %Ld nsecs]\n", > + printf(" ... switch from %s/%d to %s/%d [ran %" PRIu64 " nsecs]\n", > switch_event->prev_comm, switch_event->prev_pid, > switch_event->next_comm, switch_event->next_pid, > delta); > @@ -1048,7 +1048,7 @@ latency_switch_event(struct trace_switch_event *switch_event, > delta = 0; > > if (delta < 0) > - die("hm, delta: %Ld < 0 ?\n", delta); > + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); > > > sched_out = perf_session__findnew(session, switch_event->prev_pid); > @@ -1221,7 +1221,7 @@ static void output_lat_thread(struct work_atoms *work_list) > > avg = work_list->total_lat / work_list->nb_atoms; > > - printf("|%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", > + printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", > (double)work_list->total_runtime / 1e6, > work_list->nb_atoms, (double)avg / 1e6, > (double)work_list->max_lat / 1e6, > @@ -1423,7 +1423,7 @@ map_switch_event(struct trace_switch_event *switch_event, > delta = 0; > > if (delta < 0) > - die("hm, delta: %Ld < 0 ?\n", delta); > + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); > > > sched_out = perf_session__findnew(session, switch_event->prev_pid); > @@ -1713,7 +1713,7 @@ static void __cmd_lat(void) > } > > printf(" -----------------------------------------------------------------------------------------\n"); > - printf(" TOTAL: |%11.3f ms |%9Ld |\n", > + printf(" TOTAL: |%11.3f ms |%9" PRIu64 " |\n", > (double)all_runtime/1e6, all_count); > > printf(" ---------------------------------------------------\n"); > diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c > index 150a606..b766c2a 100644 > --- a/tools/perf/builtin-script.c > +++ b/tools/perf/builtin-script.c > @@ -77,8 +77,8 @@ static int process_sample_event(event_t *event, struct sample_data *sample, > if (session->sample_type & PERF_SAMPLE_RAW) { > if (debug_mode) { > if (sample->time < last_timestamp) { > - pr_err("Samples misordered, previous: %llu " > - "this: %llu\n", last_timestamp, > + pr_err("Samples misordered, previous: %" PRIu64 > + " this: %" PRIu64 "\n", last_timestamp, > sample->time); > nr_unordered++; > } > @@ -126,7 +126,7 @@ static int __cmd_script(struct perf_session *session) > ret = perf_session__process_events(session, &event_ops); > > if (debug_mode) > - pr_err("Misordered timestamps: %llu\n", nr_unordered); > + pr_err("Misordered timestamps: %" PRIu64 "\n", nr_unordered); > > return ret; > } > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > index 0ff11d9..a482a19 100644 > --- a/tools/perf/builtin-stat.c > +++ b/tools/perf/builtin-stat.c > @@ -206,8 +206,8 @@ static int read_counter_aggr(struct perf_evsel *counter) > update_stats(&ps->res_stats[i], count[i]); > > if (verbose) { > - fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter), > - count[0], count[1], count[2]); > + fprintf(stderr, "%s: %" PRIu64 " %" PRIu64 " %" PRIu64 "\n", > + event_name(counter), count[0], count[1], count[2]); > } > > /* > diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c > index 02958d6..1c9060f 100644 > --- a/tools/perf/builtin-test.c > +++ b/tools/perf/builtin-test.c > @@ -146,7 +146,7 @@ next_pair: > if (llabs(skew) < page_size) > continue; > > - pr_debug("%#Lx: diff end addr for %s v: %#Lx k: %#Lx\n", > + pr_debug("%#" PRIx64 ": diff end addr for %s v: %#" PRIx64 " k: %#" PRIx64 "\n", > sym->start, sym->name, sym->end, pair->end); > } else { > struct rb_node *nnd; > @@ -168,11 +168,11 @@ detour: > goto detour; > } > > - pr_debug("%#Lx: diff name v: %s k: %s\n", > + pr_debug("%#" PRIx64 ": diff name v: %s k: %s\n", > sym->start, sym->name, pair->name); > } > } else > - pr_debug("%#Lx: %s not on kallsyms\n", sym->start, sym->name); > + pr_debug("%#" PRIx64 ": %s not on kallsyms\n", sym->start, sym->name); > > err = -1; > } > @@ -211,10 +211,10 @@ detour: > > if (pair->start == pos->start) { > pair->priv = 1; > - pr_info(" %Lx-%Lx %Lx %s in kallsyms as", > + pr_info(" %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as", > pos->start, pos->end, pos->pgoff, pos->dso->name); > if (pos->pgoff != pair->pgoff || pos->end != pair->end) > - pr_info(": \n*%Lx-%Lx %Lx", > + pr_info(": \n*%" PRIx64 "-%" PRIx64 " %" PRIx64 "", > pair->start, pair->end, pair->pgoff); > pr_info(" %s\n", pair->dso->name); > pair->priv = 1; > @@ -307,7 +307,7 @@ static int test__open_syscall_event(void) > } > > if (evsel->counts->cpu[0].val != nr_open_calls) { > - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %Ld\n", > + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %" PRIu64 "\n", > nr_open_calls, evsel->counts->cpu[0].val); > goto out_close_fd; > } > @@ -414,7 +414,7 @@ static int test__open_syscall_event_on_all_cpus(void) > > expected = nr_open_calls + cpu; > if (evsel->counts->cpu[cpu].val != expected) { > - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %Ld\n", > + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n", > expected, cpus->map[cpu], evsel->counts->cpu[cpu].val); > goto out_close_fd; > } > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > index 05344c6..b6998e0 100644 > --- a/tools/perf/builtin-top.c > +++ b/tools/perf/builtin-top.c > @@ -40,6 +40,7 @@ > #include <stdio.h> > #include <termios.h> > #include <unistd.h> > +#include <inttypes.h> > > #include <errno.h> > #include <time.h> > @@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme) > len = sym->end - sym->start; > > sprintf(command, > - "objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s", > + "objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s", > BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start), > BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path); > > @@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme) > struct source_line *line; > char pattern[PATTERN_LEN + 1]; > > - sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4, > + sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4, > map__rip_2objdump(syme->map, symbol->start)); > > pthread_mutex_lock(&syme->src->lock); > @@ -537,7 +538,7 @@ static void print_sym_table(void) > if (nr_counters == 1 || !display_weighted) { > struct perf_evsel *first; > first = list_entry(evsel_list.next, struct perf_evsel, node); > - printf("%Ld", first->attr.sample_period); > + printf("%" PRIu64, (uint64_t)first->attr.sample_period); > if (freq) > printf("Hz "); > else > @@ -640,7 +641,7 @@ static void print_sym_table(void) > > percent_color_fprintf(stdout, "%4.1f%%", pcnt); > if (verbose) > - printf(" %016llx", sym->start); > + printf(" %016" PRIx64, sym->start); > printf(" %-*.*s", sym_width, sym_width, sym->name); > printf(" %-*.*s\n", dso_width, dso_width, > dso_width >= syme->map->dso->long_name_len ? > diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c > index 2302ec0..1478ab4 100644 > --- a/tools/perf/util/event.c > +++ b/tools/perf/util/event.c > @@ -459,7 +459,8 @@ int event__process_comm(event_t *self, struct sample_data *sample __used, > int event__process_lost(event_t *self, struct sample_data *sample __used, > struct perf_session *session) > { > - dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost); > + dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n", > + self->lost.id, self->lost.lost); > session->hists.stats.total_lost += self->lost.lost; > return 0; > } > @@ -575,7 +576,7 @@ int event__process_mmap(event_t *self, struct sample_data *sample __used, > u8 cpumode = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; > int ret = 0; > > - dump_printf(" %d/%d: [%#Lx(%#Lx) @ %#Lx]: %s\n", > + dump_printf(" %d/%d: [%#" PRIx64 "(%#" PRIx64 ") @ %#" PRIx64 "]: %s\n", > self->mmap.pid, self->mmap.tid, self->mmap.start, > self->mmap.len, self->mmap.pgoff, self->mmap.filename); > > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c > index 989fa2d..f6a929e7 100644 > --- a/tools/perf/util/header.c > +++ b/tools/perf/util/header.c > @@ -798,8 +798,8 @@ static int perf_file_section__process(struct perf_file_section *self, > int feat, int fd) > { > if (lseek(fd, self->offset, SEEK_SET) == (off_t)-1) { > - pr_debug("Failed to lseek to %Ld offset for feature %d, " > - "continuing...\n", self->offset, feat); > + pr_debug("Failed to lseek to %" PRIu64 " offset for feature " > + "%d, continuing...\n", self->offset, feat); > return 0; > } > > diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c > index c749ba6..32f4f1f 100644 > --- a/tools/perf/util/hist.c > +++ b/tools/perf/util/hist.c > @@ -636,13 +636,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size, > } > } > } else > - ret = snprintf(s, size, sep ? "%lld" : "%12lld ", period); > + ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); > > if (symbol_conf.show_nr_samples) { > if (sep) > - ret += snprintf(s + ret, size - ret, "%c%lld", *sep, period); > + ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); > else > - ret += snprintf(s + ret, size - ret, "%11lld", period); > + ret += snprintf(s + ret, size - ret, "%11" PRIu64, period); > } > > if (pair_hists) { > @@ -971,7 +971,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) > sym_size = sym->end - sym->start; > offset = ip - sym->start; > > - pr_debug3("%s: ip=%#Lx\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); > + pr_debug3("%s: ip=%#" PRIx64 "\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); > > if (offset >= sym_size) > return 0; > @@ -980,8 +980,9 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) > h->sum++; > h->ip[offset]++; > > - pr_debug3("%#Lx %s: period++ [ip: %#Lx, %#Lx] => %Ld\n", self->ms.sym->start, > - self->ms.sym->name, ip, ip - self->ms.sym->start, h->ip[offset]); > + pr_debug3("%#" PRIx64 " %s: period++ [ip: %#" PRIx64 ", %#" PRIx64 > + "] => %" PRIu64 "\n", self->ms.sym->start, self->ms.sym->name, > + ip, ip - self->ms.sym->start, h->ip[offset]); > return 0; > } > > @@ -1132,7 +1133,7 @@ fallback: > goto out_free_filename; > } > > - pr_debug("%s: filename=%s, sym=%s, start=%#Lx, end=%#Lx\n", __func__, > + pr_debug("%s: filename=%s, sym=%s, start=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__, > filename, sym->name, map->unmap_ip(map, sym->start), > map->unmap_ip(map, sym->end)); > > @@ -1142,7 +1143,7 @@ fallback: > dso, dso->long_name, sym, sym->name); > > snprintf(command, sizeof(command), > - "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS -C %s|grep -v %s|expand", > + "objdump --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand", > map__rip_2objdump(map, sym->start), > map__rip_2objdump(map, sym->end), > symfs_filename, filename); > diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c > index 3a7eb6e..a16ecab 100644 > --- a/tools/perf/util/map.c > +++ b/tools/perf/util/map.c > @@ -1,5 +1,6 @@ > #include "symbol.h" > #include <errno.h> > +#include <inttypes.h> > #include <limits.h> > #include <stdlib.h> > #include <string.h> > @@ -195,7 +196,7 @@ int map__overlap(struct map *l, struct map *r) > > size_t map__fprintf(struct map *self, FILE *fp) > { > - return fprintf(fp, " %Lx-%Lx %Lx %s\n", > + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n", > self->start, self->end, self->pgoff, self->dso->name); > } > > diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c > index bc2732e..135f69b 100644 > --- a/tools/perf/util/parse-events.c > +++ b/tools/perf/util/parse-events.c > @@ -279,7 +279,7 @@ const char *__event_name(int type, u64 config) > static char buf[32]; > > if (type == PERF_TYPE_RAW) { > - sprintf(buf, "raw 0x%llx", config); > + sprintf(buf, "raw 0x%" PRIx64, config); > return buf; > } > > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c > index 128aaab..6e29d9c 100644 > --- a/tools/perf/util/probe-event.c > +++ b/tools/perf/util/probe-event.c > @@ -172,7 +172,7 @@ static int kprobe_convert_to_perf_probe(struct probe_trace_point *tp, > sym = __find_kernel_function_by_name(tp->symbol, &map); > if (sym) { > addr = map->unmap_ip(map, sym->start + tp->offset); > - pr_debug("try to find %s+%ld@%llx\n", tp->symbol, > + pr_debug("try to find %s+%ld@%" PRIx64 "\n", tp->symbol, > tp->offset, addr); > ret = find_perf_probe_point((unsigned long)addr, pp); > } > diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c > index 313dac2..105f00b 100644 > --- a/tools/perf/util/session.c > +++ b/tools/perf/util/session.c > @@ -652,10 +652,11 @@ static void callchain__printf(struct sample_data *sample) > { > unsigned int i; > > - printf("... chain: nr:%Lu\n", sample->callchain->nr); > + printf("... chain: nr:%" PRIu64 "\n", sample->callchain->nr); > > for (i = 0; i < sample->callchain->nr; i++) > - printf("..... %2d: %016Lx\n", i, sample->callchain->ips[i]); > + printf("..... %2d: %016" PRIx64 "\n", > + i, sample->callchain->ips[i]); > } > > static void perf_session__print_tstamp(struct perf_session *session, > @@ -672,7 +673,7 @@ static void perf_session__print_tstamp(struct perf_session *session, > printf("%u ", sample->cpu); > > if (session->sample_type & PERF_SAMPLE_TIME) > - printf("%Lu ", sample->time); > + printf("%" PRIu64 " ", sample->time); > } > > static void dump_event(struct perf_session *session, event_t *event, > @@ -681,16 +682,16 @@ static void dump_event(struct perf_session *session, event_t *event, > if (!dump_trace) > return; > > - printf("\n%#Lx [%#x]: event: %d\n", file_offset, event->header.size, > - event->header.type); > + printf("\n%#" PRIx64 " [%#x]: event: %d\n", > + file_offset, event->header.size, event->header.type); > > trace_event(event); > > if (sample) > perf_session__print_tstamp(session, event, sample); > > - printf("%#Lx [%#x]: PERF_RECORD_%s", file_offset, event->header.size, > - event__get_event_name(event->header.type)); > + printf("%#" PRIx64 " [%#x]: PERF_RECORD_%s", file_offset, > + event->header.size, event__get_event_name(event->header.type)); > } > > static void dump_sample(struct perf_session *session, event_t *event, > @@ -699,8 +700,9 @@ static void dump_sample(struct perf_session *session, event_t *event, > if (!dump_trace) > return; > > - printf("(IP, %d): %d/%d: %#Lx period: %Ld\n", event->header.misc, > - sample->pid, sample->tid, sample->ip, sample->period); > + printf("(IP, %d): %d/%d: %#" PRIx64 " period: %" PRIu64 "\n", > + event->header.misc, sample->pid, sample->tid, sample->ip, > + sample->period); > > if (session->sample_type & PERF_SAMPLE_CALLCHAIN) > callchain__printf(sample); > @@ -843,8 +845,8 @@ static void perf_session__warn_about_errors(const struct perf_session *session, > { > if (ops->lost == event__process_lost && > session->hists.stats.total_lost != 0) { > - ui__warning("Processed %Lu events and LOST %Lu!\n\n" > - "Check IO/CPU overload!\n\n", > + ui__warning("Processed %" PRIu64 " events and LOST %" PRIu64 > + "!\n\nCheck IO/CPU overload!\n\n", > session->hists.stats.total_period, > session->hists.stats.total_lost); > } > @@ -918,7 +920,7 @@ more: > > if (size == 0 || > (skip = perf_session__process_event(self, &event, ops, head)) < 0) { > - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", > + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", > head, event.header.size, event.header.type); > /* > * assume we lost track of the stream, check alignment, and > @@ -1023,7 +1025,7 @@ more: > > if (size == 0 || > perf_session__process_event(session, event, ops, file_pos) < 0) { > - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", > + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", > file_offset + head, event->header.size, > event->header.type); > /* > diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c > index b3637db..805220a 100644 > --- a/tools/perf/util/svghelper.c > +++ b/tools/perf/util/svghelper.c > @@ -12,6 +12,7 @@ > * of the License. > */ > > +#include <inttypes.h> > #include <stdio.h> > #include <stdlib.h> > #include <unistd.h> > @@ -94,7 +95,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end) > > total_height = (1 + rows + cpu2slot(cpus)) * SLOT_MULT; > fprintf(svgfile, "<?xml version=\"1.0\" standalone=\"no\"?> \n"); > - fprintf(svgfile, "<svg width=\"%i\" height=\"%llu\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); > + fprintf(svgfile, "<svg width=\"%i\" height=\"%" PRIu64 "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); > > fprintf(svgfile, "<defs>\n <style type=\"text/css\">\n <![CDATA[\n"); > > @@ -483,7 +484,7 @@ void svg_time_grid(void) > color = 128; > } > > - fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%llu\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", > + fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%" PRIu64 "\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", > time2pixels(i), SLOT_MULT/2, time2pixels(i), total_height, color, color, color, thickness); > > i += 10000000; > diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c > index e32478e..7821d0e 100644 > --- a/tools/perf/util/symbol.c > +++ b/tools/perf/util/symbol.c > @@ -11,6 +11,7 @@ > #include <sys/param.h> > #include <fcntl.h> > #include <unistd.h> > +#include <inttypes.h> > #include "build-id.h" > #include "debug.h" > #include "symbol.h" > @@ -153,7 +154,7 @@ static struct symbol *symbol__new(u64 start, u64 len, u8 binding, > self->binding = binding; > self->namelen = namelen - 1; > > - pr_debug4("%s: %s %#Lx-%#Lx\n", __func__, name, start, self->end); > + pr_debug4("%s: %s %#" PRIx64 "-%#" PRIx64 "\n", __func__, name, start, self->end); > > memcpy(self->name, name, namelen); > > @@ -167,7 +168,7 @@ void symbol__delete(struct symbol *self) > > static size_t symbol__fprintf(struct symbol *self, FILE *fp) > { > - return fprintf(fp, " %llx-%llx %c %s\n", > + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %c %s\n", > self->start, self->end, > self->binding == STB_GLOBAL ? 'g' : > self->binding == STB_LOCAL ? 'l' : 'w', > @@ -1215,8 +1216,8 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name, > } > > if (curr_dso->adjust_symbols) { > - pr_debug4("%s: adjusting symbol: st_value: %#Lx " > - "sh_addr: %#Lx sh_offset: %#Lx\n", __func__, > + pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " " > + "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", __func__, > (u64)sym.st_value, (u64)shdr.sh_addr, > (u64)shdr.sh_offset); > sym.st_value -= shdr.sh_addr - shdr.sh_offset; > diff --git a/tools/perf/util/types.h b/tools/perf/util/types.h > index 7d6b833..5f3689a 100644 > --- a/tools/perf/util/types.h > +++ b/tools/perf/util/types.h > @@ -1,12 +1,14 @@ > #ifndef __PERF_TYPES_H > #define __PERF_TYPES_H > > +#include <stdint.h> > + > /* > - * We define u64 as unsigned long long for every architecture > - * so that we can print it with %Lx without getting warnings. > + * We define u64 as uint64_t for every architecture > + * so that we can print it with "%"PRIx64 without getting warnings. > */ > -typedef unsigned long long u64; > -typedef signed long long s64; > +typedef uint64_t u64; > +typedef int64_t s64; > typedef unsigned int u32; > typedef signed int s32; > typedef unsigned short u16; > diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c > index ebda8c3..60c463c 100644 > --- a/tools/perf/util/ui/browsers/hists.c > +++ b/tools/perf/util/ui/browsers/hists.c > @@ -350,7 +350,7 @@ static char *callchain_list__sym_name(struct callchain_list *self, > if (self->ms.sym) > return self->ms.sym->name; > > - snprintf(bf, bfsize, "%#Lx", self->ip); > + snprintf(bf, bfsize, "%#" PRIx64, self->ip); > return bf; > } > > diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c > index e35437d..e515836 100644 > --- a/tools/perf/util/ui/browsers/map.c > +++ b/tools/perf/util/ui/browsers/map.c > @@ -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); > } > diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c > index cfa55d6..bdd3347 100644 > --- a/tools/perf/util/values.c > +++ b/tools/perf/util/values.c > @@ -150,7 +150,7 @@ static void perf_read_values__display_pretty(FILE *fp, > if (width > tidwidth) > tidwidth = width; > for (j = 0; j < values->counters; j++) { > - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); > + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); > if (width > counterwidth[j]) > counterwidth[j] = width; > } > @@ -165,7 +165,7 @@ static void perf_read_values__display_pretty(FILE *fp, > fprintf(fp, " %*d %*d", pidwidth, values->pid[i], > tidwidth, values->tid[i]); > for (j = 0; j < values->counters; j++) > - fprintf(fp, " %*Lu", > + fprintf(fp, " %*" PRIu64, > counterwidth[j], values->value[i][j]); > fprintf(fp, "\n"); > } > @@ -196,13 +196,13 @@ static void perf_read_values__display_raw(FILE *fp, > width = strlen(values->countername[j]); > if (width > namewidth) > namewidth = width; > - width = snprintf(NULL, 0, "%llx", values->counterrawid[j]); > + width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]); > if (width > rawwidth) > rawwidth = width; > } > for (i = 0; i < values->threads; i++) { > for (j = 0; j < values->counters; j++) { > - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); > + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); > if (width > countwidth) > countwidth = width; > } > @@ -214,7 +214,7 @@ static void perf_read_values__display_raw(FILE *fp, > countwidth, "Count"); > for (i = 0; i < values->threads; i++) > for (j = 0; j < values->counters; j++) > - fprintf(fp, " %*d %*d %*s %*llx %*Lu\n", > + fprintf(fp, " %*d %*d %*s %*" PRIx64 " %*" PRIu64, > pidwidth, values->pid[i], > tidwidth, values->tid[i], > namewidth, values->countername[j], ^ permalink raw reply [flat|nested] 15+ messages in thread
* [tip:perf/urgent] perf tools: Fix 64 bit integer format strings 2011-01-20 9:32 [PATCH] perftools: Fix build error Denis Kirjanov 2011-01-20 11:47 ` Ingo Molnar @ 2011-01-23 18:01 ` tip-bot for Arnaldo Carvalho de Melo 1 sibling, 0 replies; 15+ messages in thread From: tip-bot for Arnaldo Carvalho de Melo @ 2011-01-23 18:01 UTC (permalink / raw) To: linux-tip-commits Cc: eranian, paulus, linux-kernel, acme, hpa, mingo, tzanussi, peterz, efault, phan, fweisbec, dkirjanov, tglx, mingo Commit-ID: 9486aa38771661e96fbb51c549b9901b5df609d8 Gitweb: http://git.kernel.org/tip/9486aa38771661e96fbb51c549b9901b5df609d8 Author: Arnaldo Carvalho de Melo <acme@redhat.com> AuthorDate: Sat, 22 Jan 2011 20:37:02 -0200 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Sat, 22 Jan 2011 23:41:57 -0200 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> --- tools/perf/builtin-annotate.c | 6 +++--- tools/perf/builtin-kmem.c | 4 ++-- tools/perf/builtin-lock.c | 6 +++--- tools/perf/builtin-record.c | 2 +- tools/perf/builtin-report.c | 2 +- tools/perf/builtin-sched.c | 20 ++++++++++---------- tools/perf/builtin-script.c | 6 +++--- tools/perf/builtin-stat.c | 4 ++-- tools/perf/builtin-test.c | 14 +++++++------- tools/perf/builtin-top.c | 9 +++++---- tools/perf/util/event.c | 5 +++-- tools/perf/util/header.c | 4 ++-- tools/perf/util/hist.c | 17 +++++++++-------- tools/perf/util/map.c | 3 ++- tools/perf/util/parse-events.c | 2 +- tools/perf/util/probe-event.c | 2 +- tools/perf/util/session.c | 28 +++++++++++++++------------- tools/perf/util/svghelper.c | 5 +++-- tools/perf/util/symbol.c | 9 +++++---- tools/perf/util/types.h | 10 ++++++---- tools/perf/util/ui/browsers/hists.c | 2 +- tools/perf/util/ui/browsers/map.c | 5 +++-- tools/perf/util/values.c | 10 +++++----- 23 files changed, 93 insertions(+), 82 deletions(-) diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index c056cdc..8879463 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c @@ -212,7 +212,7 @@ get_source_line(struct hist_entry *he, int len, const char *filename) continue; offset = start + i; - sprintf(cmd, "addr2line -e %s %016llx", filename, offset); + sprintf(cmd, "addr2line -e %s %016" PRIx64, filename, offset); fp = popen(cmd, "r"); if (!fp) continue; @@ -270,9 +270,9 @@ static void hist_entry__print_hits(struct hist_entry *self) for (offset = 0; offset < len; ++offset) if (h->ip[offset] != 0) - printf("%*Lx: %Lu\n", BITS_PER_LONG / 2, + printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2, sym->start + offset, h->ip[offset]); - printf("%*s: %Lu\n", BITS_PER_LONG / 2, "h->sum", h->sum); + printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum); } static int hist_entry__tty_annotate(struct hist_entry *he) diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c index def7ddc..d97256d 100644 --- a/tools/perf/builtin-kmem.c +++ b/tools/perf/builtin-kmem.c @@ -371,10 +371,10 @@ static void __print_result(struct rb_root *root, struct perf_session *session, addr = data->ptr; if (sym != NULL) - snprintf(buf, sizeof(buf), "%s+%Lx", sym->name, + snprintf(buf, sizeof(buf), "%s+%" PRIx64 "", sym->name, addr - map->unmap_ip(map, sym->start)); else - snprintf(buf, sizeof(buf), "%#Lx", addr); + snprintf(buf, sizeof(buf), "%#" PRIx64 "", addr); printf(" %-34s |", buf); printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n", diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c index b9c6e54..2b36def 100644 --- a/tools/perf/builtin-lock.c +++ b/tools/perf/builtin-lock.c @@ -782,9 +782,9 @@ static void print_result(void) pr_info("%10u ", st->nr_acquired); pr_info("%10u ", st->nr_contended); - pr_info("%15llu ", st->wait_time_total); - pr_info("%15llu ", st->wait_time_max); - pr_info("%15llu ", st->wait_time_min == ULLONG_MAX ? + pr_info("%15" PRIu64 " ", st->wait_time_total); + pr_info("%15" PRIu64 " ", st->wait_time_max); + pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ? 0 : st->wait_time_min); pr_info("\n"); } diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index fcd29e8..b2f729f 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -817,7 +817,7 @@ static int __cmd_record(int argc, const char **argv) * Approximate RIP event size: 24 bytes. */ fprintf(stderr, - "[ perf record: Captured and wrote %.3f MB %s (~%lld samples) ]\n", + "[ perf record: Captured and wrote %.3f MB %s (~%" PRIu64 " samples) ]\n", (double)bytes_written / 1024.0 / 1024.0, output_name, bytes_written / 24); diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 75183a4..c27e31f 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -197,7 +197,7 @@ static int process_read_event(event_t *event, struct sample_data *sample __used, event->read.value); } - dump_printf(": %d %d %s %Lu\n", event->read.pid, event->read.tid, + dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid, attr ? __event_name(attr->type, attr->config) : "FAIL", event->read.value); diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index 29e7ffd..29acb89 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c @@ -193,7 +193,7 @@ static void calibrate_run_measurement_overhead(void) } run_measurement_overhead = min_delta; - printf("run measurement overhead: %Ld nsecs\n", min_delta); + printf("run measurement overhead: %" PRIu64 " nsecs\n", min_delta); } static void calibrate_sleep_measurement_overhead(void) @@ -211,7 +211,7 @@ static void calibrate_sleep_measurement_overhead(void) min_delta -= 10000; sleep_measurement_overhead = min_delta; - printf("sleep measurement overhead: %Ld nsecs\n", min_delta); + printf("sleep measurement overhead: %" PRIu64 " nsecs\n", min_delta); } static struct sched_atom * @@ -617,13 +617,13 @@ static void test_calibrations(void) burn_nsecs(1e6); T1 = get_nsecs(); - printf("the run test took %Ld nsecs\n", T1-T0); + printf("the run test took %" PRIu64 " nsecs\n", T1 - T0); T0 = get_nsecs(); sleep_nsecs(1e6); T1 = get_nsecs(); - printf("the sleep test took %Ld nsecs\n", T1-T0); + printf("the sleep test took %" PRIu64 " nsecs\n", T1 - T0); } #define FILL_FIELD(ptr, field, event, data) \ @@ -816,10 +816,10 @@ replay_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); if (verbose) { - printf(" ... switch from %s/%d to %s/%d [ran %Ld nsecs]\n", + printf(" ... switch from %s/%d to %s/%d [ran %" PRIu64 " nsecs]\n", switch_event->prev_comm, switch_event->prev_pid, switch_event->next_comm, switch_event->next_pid, delta); @@ -1048,7 +1048,7 @@ latency_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); sched_out = perf_session__findnew(session, switch_event->prev_pid); @@ -1221,7 +1221,7 @@ static void output_lat_thread(struct work_atoms *work_list) avg = work_list->total_lat / work_list->nb_atoms; - printf("|%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", + printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n", (double)work_list->total_runtime / 1e6, work_list->nb_atoms, (double)avg / 1e6, (double)work_list->max_lat / 1e6, @@ -1423,7 +1423,7 @@ map_switch_event(struct trace_switch_event *switch_event, delta = 0; if (delta < 0) - die("hm, delta: %Ld < 0 ?\n", delta); + die("hm, delta: %" PRIu64 " < 0 ?\n", delta); sched_out = perf_session__findnew(session, switch_event->prev_pid); @@ -1713,7 +1713,7 @@ static void __cmd_lat(void) } printf(" -----------------------------------------------------------------------------------------\n"); - printf(" TOTAL: |%11.3f ms |%9Ld |\n", + printf(" TOTAL: |%11.3f ms |%9" PRIu64 " |\n", (double)all_runtime/1e6, all_count); printf(" ---------------------------------------------------\n"); diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 150a606..b766c2a 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -77,8 +77,8 @@ static int process_sample_event(event_t *event, struct sample_data *sample, if (session->sample_type & PERF_SAMPLE_RAW) { if (debug_mode) { if (sample->time < last_timestamp) { - pr_err("Samples misordered, previous: %llu " - "this: %llu\n", last_timestamp, + pr_err("Samples misordered, previous: %" PRIu64 + " this: %" PRIu64 "\n", last_timestamp, sample->time); nr_unordered++; } @@ -126,7 +126,7 @@ static int __cmd_script(struct perf_session *session) ret = perf_session__process_events(session, &event_ops); if (debug_mode) - pr_err("Misordered timestamps: %llu\n", nr_unordered); + pr_err("Misordered timestamps: %" PRIu64 "\n", nr_unordered); return ret; } diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 0ff11d9..a482a19 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -206,8 +206,8 @@ static int read_counter_aggr(struct perf_evsel *counter) update_stats(&ps->res_stats[i], count[i]); if (verbose) { - fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter), - count[0], count[1], count[2]); + fprintf(stderr, "%s: %" PRIu64 " %" PRIu64 " %" PRIu64 "\n", + event_name(counter), count[0], count[1], count[2]); } /* diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c index 0e01834..5dcdba6 100644 --- a/tools/perf/builtin-test.c +++ b/tools/perf/builtin-test.c @@ -146,7 +146,7 @@ next_pair: if (llabs(skew) < page_size) continue; - pr_debug("%#Lx: diff end addr for %s v: %#Lx k: %#Lx\n", + pr_debug("%#" PRIx64 ": diff end addr for %s v: %#" PRIx64 " k: %#" PRIx64 "\n", sym->start, sym->name, sym->end, pair->end); } else { struct rb_node *nnd; @@ -168,11 +168,11 @@ detour: goto detour; } - pr_debug("%#Lx: diff name v: %s k: %s\n", + pr_debug("%#" PRIx64 ": diff name v: %s k: %s\n", sym->start, sym->name, pair->name); } } else - pr_debug("%#Lx: %s not on kallsyms\n", sym->start, sym->name); + pr_debug("%#" PRIx64 ": %s not on kallsyms\n", sym->start, sym->name); err = -1; } @@ -211,10 +211,10 @@ detour: if (pair->start == pos->start) { pair->priv = 1; - pr_info(" %Lx-%Lx %Lx %s in kallsyms as", + pr_info(" %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as", pos->start, pos->end, pos->pgoff, pos->dso->name); if (pos->pgoff != pair->pgoff || pos->end != pair->end) - pr_info(": \n*%Lx-%Lx %Lx", + pr_info(": \n*%" PRIx64 "-%" PRIx64 " %" PRIx64 "", pair->start, pair->end, pair->pgoff); pr_info(" %s\n", pair->dso->name); pair->priv = 1; @@ -307,7 +307,7 @@ static int test__open_syscall_event(void) } if (evsel->counts->cpu[0].val != nr_open_calls) { - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %Ld\n", + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %" PRIu64 "\n", nr_open_calls, evsel->counts->cpu[0].val); goto out_close_fd; } @@ -421,7 +421,7 @@ static int test__open_syscall_event_on_all_cpus(void) expected = nr_open_calls + cpu; if (evsel->counts->cpu[cpu].val != expected) { - pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %Ld\n", + pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n", expected, cpus->map[cpu], evsel->counts->cpu[cpu].val); goto out_close_fd; } diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 05344c6..b6998e0 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -40,6 +40,7 @@ #include <stdio.h> #include <termios.h> #include <unistd.h> +#include <inttypes.h> #include <errno.h> #include <time.h> @@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme) len = sym->end - sym->start; sprintf(command, - "objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s", + "objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s", BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start), BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path); @@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme) struct source_line *line; char pattern[PATTERN_LEN + 1]; - sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4, + sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4, map__rip_2objdump(syme->map, symbol->start)); pthread_mutex_lock(&syme->src->lock); @@ -537,7 +538,7 @@ static void print_sym_table(void) if (nr_counters == 1 || !display_weighted) { struct perf_evsel *first; first = list_entry(evsel_list.next, struct perf_evsel, node); - printf("%Ld", first->attr.sample_period); + printf("%" PRIu64, (uint64_t)first->attr.sample_period); if (freq) printf("Hz "); else @@ -640,7 +641,7 @@ static void print_sym_table(void) percent_color_fprintf(stdout, "%4.1f%%", pcnt); if (verbose) - printf(" %016llx", sym->start); + printf(" %016" PRIx64, sym->start); printf(" %-*.*s", sym_width, sym_width, sym->name); printf(" %-*.*s\n", dso_width, dso_width, dso_width >= syme->map->dso->long_name_len ? diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 2302ec0..1478ab4 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c @@ -459,7 +459,8 @@ int event__process_comm(event_t *self, struct sample_data *sample __used, int event__process_lost(event_t *self, struct sample_data *sample __used, struct perf_session *session) { - dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost); + dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n", + self->lost.id, self->lost.lost); session->hists.stats.total_lost += self->lost.lost; return 0; } @@ -575,7 +576,7 @@ int event__process_mmap(event_t *self, struct sample_data *sample __used, u8 cpumode = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; int ret = 0; - dump_printf(" %d/%d: [%#Lx(%#Lx) @ %#Lx]: %s\n", + dump_printf(" %d/%d: [%#" PRIx64 "(%#" PRIx64 ") @ %#" PRIx64 "]: %s\n", self->mmap.pid, self->mmap.tid, self->mmap.start, self->mmap.len, self->mmap.pgoff, self->mmap.filename); diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 989fa2d..f6a929e7 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -798,8 +798,8 @@ static int perf_file_section__process(struct perf_file_section *self, int feat, int fd) { if (lseek(fd, self->offset, SEEK_SET) == (off_t)-1) { - pr_debug("Failed to lseek to %Ld offset for feature %d, " - "continuing...\n", self->offset, feat); + pr_debug("Failed to lseek to %" PRIu64 " offset for feature " + "%d, continuing...\n", self->offset, feat); return 0; } diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index c749ba6..32f4f1f 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -636,13 +636,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size, } } } else - ret = snprintf(s, size, sep ? "%lld" : "%12lld ", period); + ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); if (symbol_conf.show_nr_samples) { if (sep) - ret += snprintf(s + ret, size - ret, "%c%lld", *sep, period); + ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); else - ret += snprintf(s + ret, size - ret, "%11lld", period); + ret += snprintf(s + ret, size - ret, "%11" PRIu64, period); } if (pair_hists) { @@ -971,7 +971,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) sym_size = sym->end - sym->start; offset = ip - sym->start; - pr_debug3("%s: ip=%#Lx\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); + pr_debug3("%s: ip=%#" PRIx64 "\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip)); if (offset >= sym_size) return 0; @@ -980,8 +980,9 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip) h->sum++; h->ip[offset]++; - pr_debug3("%#Lx %s: period++ [ip: %#Lx, %#Lx] => %Ld\n", self->ms.sym->start, - self->ms.sym->name, ip, ip - self->ms.sym->start, h->ip[offset]); + pr_debug3("%#" PRIx64 " %s: period++ [ip: %#" PRIx64 ", %#" PRIx64 + "] => %" PRIu64 "\n", self->ms.sym->start, self->ms.sym->name, + ip, ip - self->ms.sym->start, h->ip[offset]); return 0; } @@ -1132,7 +1133,7 @@ fallback: goto out_free_filename; } - pr_debug("%s: filename=%s, sym=%s, start=%#Lx, end=%#Lx\n", __func__, + pr_debug("%s: filename=%s, sym=%s, start=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__, filename, sym->name, map->unmap_ip(map, sym->start), map->unmap_ip(map, sym->end)); @@ -1142,7 +1143,7 @@ fallback: dso, dso->long_name, sym, sym->name); snprintf(command, sizeof(command), - "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS -C %s|grep -v %s|expand", + "objdump --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand", map__rip_2objdump(map, sym->start), map__rip_2objdump(map, sym->end), symfs_filename, filename); diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 3a7eb6e..a16ecab 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -1,5 +1,6 @@ #include "symbol.h" #include <errno.h> +#include <inttypes.h> #include <limits.h> #include <stdlib.h> #include <string.h> @@ -195,7 +196,7 @@ int map__overlap(struct map *l, struct map *r) size_t map__fprintf(struct map *self, FILE *fp) { - return fprintf(fp, " %Lx-%Lx %Lx %s\n", + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n", self->start, self->end, self->pgoff, self->dso->name); } diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index bc2732e..135f69b 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c @@ -279,7 +279,7 @@ const char *__event_name(int type, u64 config) static char buf[32]; if (type == PERF_TYPE_RAW) { - sprintf(buf, "raw 0x%llx", config); + sprintf(buf, "raw 0x%" PRIx64, config); return buf; } diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 128aaab..6e29d9c 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -172,7 +172,7 @@ static int kprobe_convert_to_perf_probe(struct probe_trace_point *tp, sym = __find_kernel_function_by_name(tp->symbol, &map); if (sym) { addr = map->unmap_ip(map, sym->start + tp->offset); - pr_debug("try to find %s+%ld@%llx\n", tp->symbol, + pr_debug("try to find %s+%ld@%" PRIx64 "\n", tp->symbol, tp->offset, addr); ret = find_perf_probe_point((unsigned long)addr, pp); } diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 313dac2..105f00b 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -652,10 +652,11 @@ static void callchain__printf(struct sample_data *sample) { unsigned int i; - printf("... chain: nr:%Lu\n", sample->callchain->nr); + printf("... chain: nr:%" PRIu64 "\n", sample->callchain->nr); for (i = 0; i < sample->callchain->nr; i++) - printf("..... %2d: %016Lx\n", i, sample->callchain->ips[i]); + printf("..... %2d: %016" PRIx64 "\n", + i, sample->callchain->ips[i]); } static void perf_session__print_tstamp(struct perf_session *session, @@ -672,7 +673,7 @@ static void perf_session__print_tstamp(struct perf_session *session, printf("%u ", sample->cpu); if (session->sample_type & PERF_SAMPLE_TIME) - printf("%Lu ", sample->time); + printf("%" PRIu64 " ", sample->time); } static void dump_event(struct perf_session *session, event_t *event, @@ -681,16 +682,16 @@ static void dump_event(struct perf_session *session, event_t *event, if (!dump_trace) return; - printf("\n%#Lx [%#x]: event: %d\n", file_offset, event->header.size, - event->header.type); + printf("\n%#" PRIx64 " [%#x]: event: %d\n", + file_offset, event->header.size, event->header.type); trace_event(event); if (sample) perf_session__print_tstamp(session, event, sample); - printf("%#Lx [%#x]: PERF_RECORD_%s", file_offset, event->header.size, - event__get_event_name(event->header.type)); + printf("%#" PRIx64 " [%#x]: PERF_RECORD_%s", file_offset, + event->header.size, event__get_event_name(event->header.type)); } static void dump_sample(struct perf_session *session, event_t *event, @@ -699,8 +700,9 @@ static void dump_sample(struct perf_session *session, event_t *event, if (!dump_trace) return; - printf("(IP, %d): %d/%d: %#Lx period: %Ld\n", event->header.misc, - sample->pid, sample->tid, sample->ip, sample->period); + printf("(IP, %d): %d/%d: %#" PRIx64 " period: %" PRIu64 "\n", + event->header.misc, sample->pid, sample->tid, sample->ip, + sample->period); if (session->sample_type & PERF_SAMPLE_CALLCHAIN) callchain__printf(sample); @@ -843,8 +845,8 @@ static void perf_session__warn_about_errors(const struct perf_session *session, { if (ops->lost == event__process_lost && session->hists.stats.total_lost != 0) { - ui__warning("Processed %Lu events and LOST %Lu!\n\n" - "Check IO/CPU overload!\n\n", + ui__warning("Processed %" PRIu64 " events and LOST %" PRIu64 + "!\n\nCheck IO/CPU overload!\n\n", session->hists.stats.total_period, session->hists.stats.total_lost); } @@ -918,7 +920,7 @@ more: if (size == 0 || (skip = perf_session__process_event(self, &event, ops, head)) < 0) { - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", head, event.header.size, event.header.type); /* * assume we lost track of the stream, check alignment, and @@ -1023,7 +1025,7 @@ more: if (size == 0 || perf_session__process_event(session, event, ops, file_pos) < 0) { - dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n", + dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n", file_offset + head, event->header.size, event->header.type); /* diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c index b3637db..805220a 100644 --- a/tools/perf/util/svghelper.c +++ b/tools/perf/util/svghelper.c @@ -12,6 +12,7 @@ * of the License. */ +#include <inttypes.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -94,7 +95,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end) total_height = (1 + rows + cpu2slot(cpus)) * SLOT_MULT; fprintf(svgfile, "<?xml version=\"1.0\" standalone=\"no\"?> \n"); - fprintf(svgfile, "<svg width=\"%i\" height=\"%llu\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); + fprintf(svgfile, "<svg width=\"%i\" height=\"%" PRIu64 "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height); fprintf(svgfile, "<defs>\n <style type=\"text/css\">\n <![CDATA[\n"); @@ -483,7 +484,7 @@ void svg_time_grid(void) color = 128; } - fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%llu\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", + fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%" PRIu64 "\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n", time2pixels(i), SLOT_MULT/2, time2pixels(i), total_height, color, color, color, thickness); i += 10000000; diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index e32478e..7821d0e 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -11,6 +11,7 @@ #include <sys/param.h> #include <fcntl.h> #include <unistd.h> +#include <inttypes.h> #include "build-id.h" #include "debug.h" #include "symbol.h" @@ -153,7 +154,7 @@ static struct symbol *symbol__new(u64 start, u64 len, u8 binding, self->binding = binding; self->namelen = namelen - 1; - pr_debug4("%s: %s %#Lx-%#Lx\n", __func__, name, start, self->end); + pr_debug4("%s: %s %#" PRIx64 "-%#" PRIx64 "\n", __func__, name, start, self->end); memcpy(self->name, name, namelen); @@ -167,7 +168,7 @@ void symbol__delete(struct symbol *self) static size_t symbol__fprintf(struct symbol *self, FILE *fp) { - return fprintf(fp, " %llx-%llx %c %s\n", + return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %c %s\n", self->start, self->end, self->binding == STB_GLOBAL ? 'g' : self->binding == STB_LOCAL ? 'l' : 'w', @@ -1215,8 +1216,8 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name, } if (curr_dso->adjust_symbols) { - pr_debug4("%s: adjusting symbol: st_value: %#Lx " - "sh_addr: %#Lx sh_offset: %#Lx\n", __func__, + pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " " + "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", __func__, (u64)sym.st_value, (u64)shdr.sh_addr, (u64)shdr.sh_offset); sym.st_value -= shdr.sh_addr - shdr.sh_offset; diff --git a/tools/perf/util/types.h b/tools/perf/util/types.h index 7d6b833..5f3689a 100644 --- a/tools/perf/util/types.h +++ b/tools/perf/util/types.h @@ -1,12 +1,14 @@ #ifndef __PERF_TYPES_H #define __PERF_TYPES_H +#include <stdint.h> + /* - * We define u64 as unsigned long long for every architecture - * so that we can print it with %Lx without getting warnings. + * We define u64 as uint64_t for every architecture + * so that we can print it with "%"PRIx64 without getting warnings. */ -typedef unsigned long long u64; -typedef signed long long s64; +typedef uint64_t u64; +typedef int64_t s64; typedef unsigned int u32; typedef signed int s32; typedef unsigned short u16; diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c index ebda8c3..60c463c 100644 --- a/tools/perf/util/ui/browsers/hists.c +++ b/tools/perf/util/ui/browsers/hists.c @@ -350,7 +350,7 @@ static char *callchain_list__sym_name(struct callchain_list *self, if (self->ms.sym) return self->ms.sym->name; - snprintf(bf, bfsize, "%#Lx", self->ip); + snprintf(bf, bfsize, "%#" PRIx64, self->ip); return bf; } diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c index e35437d..e515836 100644 --- a/tools/perf/util/ui/browsers/map.c +++ b/tools/perf/util/ui/browsers/map.c @@ -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); } diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c index cfa55d6..bdd3347 100644 --- a/tools/perf/util/values.c +++ b/tools/perf/util/values.c @@ -150,7 +150,7 @@ static void perf_read_values__display_pretty(FILE *fp, if (width > tidwidth) tidwidth = width; for (j = 0; j < values->counters; j++) { - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); if (width > counterwidth[j]) counterwidth[j] = width; } @@ -165,7 +165,7 @@ static void perf_read_values__display_pretty(FILE *fp, fprintf(fp, " %*d %*d", pidwidth, values->pid[i], tidwidth, values->tid[i]); for (j = 0; j < values->counters; j++) - fprintf(fp, " %*Lu", + fprintf(fp, " %*" PRIu64, counterwidth[j], values->value[i][j]); fprintf(fp, "\n"); } @@ -196,13 +196,13 @@ static void perf_read_values__display_raw(FILE *fp, width = strlen(values->countername[j]); if (width > namewidth) namewidth = width; - width = snprintf(NULL, 0, "%llx", values->counterrawid[j]); + width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]); if (width > rawwidth) rawwidth = width; } for (i = 0; i < values->threads; i++) { for (j = 0; j < values->counters; j++) { - width = snprintf(NULL, 0, "%Lu", values->value[i][j]); + width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]); if (width > countwidth) countwidth = width; } @@ -214,7 +214,7 @@ static void perf_read_values__display_raw(FILE *fp, countwidth, "Count"); for (i = 0; i < values->threads; i++) for (j = 0; j < values->counters; j++) - fprintf(fp, " %*d %*d %*s %*llx %*Lu\n", + fprintf(fp, " %*d %*d %*s %*" PRIx64 " %*" PRIu64, pidwidth, values->pid[i], tidwidth, values->tid[i], namewidth, values->countername[j], ^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2011-01-24 12:28 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-01-20 9:32 [PATCH] perftools: Fix build error Denis Kirjanov 2011-01-20 11:47 ` Ingo Molnar 2011-01-20 15:44 ` Denis Kirjanov 2011-01-20 17:22 ` Arnaldo Carvalho de Melo 2011-01-21 8:57 ` Han Pingtian 2011-01-21 13:20 ` Arnaldo Carvalho de Melo 2011-01-24 2:53 ` Han Pingtian 2011-01-24 4:15 ` Han Pingtian 2011-01-24 12:27 ` Arnaldo Carvalho de Melo 2011-01-21 18:53 ` Arnaldo Carvalho de Melo 2011-01-21 19:30 ` Arnaldo Carvalho de Melo 2011-01-22 5:08 ` Pingtian Han 2011-01-22 9:13 ` Denis Kirjanov 2011-01-22 8:54 ` Denis Kirjanov 2011-01-23 18:01 ` [tip:perf/urgent] perf tools: Fix 64 bit integer format strings tip-bot for Arnaldo Carvalho de Melo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.