* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).