* [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-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 +++--
| 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);
--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 +++--
| 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);
--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-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
* 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
* [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 +++--
| 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);
--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 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
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.