linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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 +++--
 tools/perf/util/header.c            |    4 ++--
 tools/perf/util/hist.c              |   17 +++++++++--------
 tools/perf/util/map.c               |    3 ++-
 tools/perf/util/parse-events.c      |    2 +-
 tools/perf/util/probe-event.c       |    2 +-
 tools/perf/util/session.c           |   28 +++++++++++++++-------------
 tools/perf/util/svghelper.c         |    5 +++--
 tools/perf/util/symbol.c            |    9 +++++----
 tools/perf/util/types.h             |   10 ++++++----
 tools/perf/util/ui/browsers/hists.c |    2 +-
 tools/perf/util/ui/browsers/map.c   |    5 +++--
 tools/perf/util/values.c            |   10 +++++-----
 23 files changed, 93 insertions(+), 82 deletions(-)
[acme@felicio linux]$ 

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index c056cdc..8879463 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -212,7 +212,7 @@ get_source_line(struct hist_entry *he, int len, const char *filename)
 			continue;
 
 		offset = start + i;
-		sprintf(cmd, "addr2line -e %s %016llx", filename, offset);
+		sprintf(cmd, "addr2line -e %s %016" PRIx64, filename, offset);
 		fp = popen(cmd, "r");
 		if (!fp)
 			continue;
@@ -270,9 +270,9 @@ static void hist_entry__print_hits(struct hist_entry *self)
 
 	for (offset = 0; offset < len; ++offset)
 		if (h->ip[offset] != 0)
-			printf("%*Lx: %Lu\n", BITS_PER_LONG / 2,
+			printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2,
 			       sym->start + offset, h->ip[offset]);
-	printf("%*s: %Lu\n", BITS_PER_LONG / 2, "h->sum", h->sum);
+	printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum);
 }
 
 static int hist_entry__tty_annotate(struct hist_entry *he)
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c
index def7ddc..d97256d 100644
--- a/tools/perf/builtin-kmem.c
+++ b/tools/perf/builtin-kmem.c
@@ -371,10 +371,10 @@ static void __print_result(struct rb_root *root, struct perf_session *session,
 			addr = data->ptr;
 
 		if (sym != NULL)
-			snprintf(buf, sizeof(buf), "%s+%Lx", sym->name,
+			snprintf(buf, sizeof(buf), "%s+%" PRIx64 "", sym->name,
 				 addr - map->unmap_ip(map, sym->start));
 		else
-			snprintf(buf, sizeof(buf), "%#Lx", addr);
+			snprintf(buf, sizeof(buf), "%#" PRIx64 "", addr);
 		printf(" %-34s |", buf);
 
 		printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n",
diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
index b9c6e54..2b36def 100644
--- a/tools/perf/builtin-lock.c
+++ b/tools/perf/builtin-lock.c
@@ -782,9 +782,9 @@ static void print_result(void)
 		pr_info("%10u ", st->nr_acquired);
 		pr_info("%10u ", st->nr_contended);
 
-		pr_info("%15llu ", st->wait_time_total);
-		pr_info("%15llu ", st->wait_time_max);
-		pr_info("%15llu ", st->wait_time_min == ULLONG_MAX ?
+		pr_info("%15" PRIu64 " ", st->wait_time_total);
+		pr_info("%15" PRIu64 " ", st->wait_time_max);
+		pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ?
 		       0 : st->wait_time_min);
 		pr_info("\n");
 	}
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index fcd29e8..b2f729f 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -817,7 +817,7 @@ static int __cmd_record(int argc, const char **argv)
 	 * Approximate RIP event size: 24 bytes.
 	 */
 	fprintf(stderr,
-		"[ perf record: Captured and wrote %.3f MB %s (~%lld samples) ]\n",
+		"[ perf record: Captured and wrote %.3f MB %s (~%" PRIu64 " samples) ]\n",
 		(double)bytes_written / 1024.0 / 1024.0,
 		output_name,
 		bytes_written / 24);
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 75183a4..c27e31f 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -197,7 +197,7 @@ static int process_read_event(event_t *event, struct sample_data *sample __used,
 					   event->read.value);
 	}
 
-	dump_printf(": %d %d %s %Lu\n", event->read.pid, event->read.tid,
+	dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid,
 		    attr ? __event_name(attr->type, attr->config) : "FAIL",
 		    event->read.value);
 
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index 29e7ffd..29acb89 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -193,7 +193,7 @@ static void calibrate_run_measurement_overhead(void)
 	}
 	run_measurement_overhead = min_delta;
 
-	printf("run measurement overhead: %Ld nsecs\n", min_delta);
+	printf("run measurement overhead: %" PRIu64 " nsecs\n", min_delta);
 }
 
 static void calibrate_sleep_measurement_overhead(void)
@@ -211,7 +211,7 @@ static void calibrate_sleep_measurement_overhead(void)
 	min_delta -= 10000;
 	sleep_measurement_overhead = min_delta;
 
-	printf("sleep measurement overhead: %Ld nsecs\n", min_delta);
+	printf("sleep measurement overhead: %" PRIu64 " nsecs\n", min_delta);
 }
 
 static struct sched_atom *
@@ -617,13 +617,13 @@ static void test_calibrations(void)
 	burn_nsecs(1e6);
 	T1 = get_nsecs();
 
-	printf("the run test took %Ld nsecs\n", T1-T0);
+	printf("the run test took %" PRIu64 " nsecs\n", T1 - T0);
 
 	T0 = get_nsecs();
 	sleep_nsecs(1e6);
 	T1 = get_nsecs();
 
-	printf("the sleep test took %Ld nsecs\n", T1-T0);
+	printf("the sleep test took %" PRIu64 " nsecs\n", T1 - T0);
 }
 
 #define FILL_FIELD(ptr, field, event, data)	\
@@ -816,10 +816,10 @@ replay_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 	if (verbose) {
-		printf(" ... switch from %s/%d to %s/%d [ran %Ld nsecs]\n",
+		printf(" ... switch from %s/%d to %s/%d [ran %" PRIu64 " nsecs]\n",
 			switch_event->prev_comm, switch_event->prev_pid,
 			switch_event->next_comm, switch_event->next_pid,
 			delta);
@@ -1048,7 +1048,7 @@ latency_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 
 	sched_out = perf_session__findnew(session, switch_event->prev_pid);
@@ -1221,7 +1221,7 @@ static void output_lat_thread(struct work_atoms *work_list)
 
 	avg = work_list->total_lat / work_list->nb_atoms;
 
-	printf("|%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n",
+	printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n",
 	      (double)work_list->total_runtime / 1e6,
 		 work_list->nb_atoms, (double)avg / 1e6,
 		 (double)work_list->max_lat / 1e6,
@@ -1423,7 +1423,7 @@ map_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 
 	sched_out = perf_session__findnew(session, switch_event->prev_pid);
@@ -1713,7 +1713,7 @@ static void __cmd_lat(void)
 	}
 
 	printf(" -----------------------------------------------------------------------------------------\n");
-	printf("  TOTAL:                |%11.3f ms |%9Ld |\n",
+	printf("  TOTAL:                |%11.3f ms |%9" PRIu64 " |\n",
 		(double)all_runtime/1e6, all_count);
 
 	printf(" ---------------------------------------------------\n");
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 150a606..b766c2a 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -77,8 +77,8 @@ static int process_sample_event(event_t *event, struct sample_data *sample,
 	if (session->sample_type & PERF_SAMPLE_RAW) {
 		if (debug_mode) {
 			if (sample->time < last_timestamp) {
-				pr_err("Samples misordered, previous: %llu "
-					"this: %llu\n", last_timestamp,
+				pr_err("Samples misordered, previous: %" PRIu64
+					" this: %" PRIu64 "\n", last_timestamp,
 					sample->time);
 				nr_unordered++;
 			}
@@ -126,7 +126,7 @@ static int __cmd_script(struct perf_session *session)
 	ret = perf_session__process_events(session, &event_ops);
 
 	if (debug_mode)
-		pr_err("Misordered timestamps: %llu\n", nr_unordered);
+		pr_err("Misordered timestamps: %" PRIu64 "\n", nr_unordered);
 
 	return ret;
 }
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 0ff11d9..a482a19 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -206,8 +206,8 @@ static int read_counter_aggr(struct perf_evsel *counter)
 		update_stats(&ps->res_stats[i], count[i]);
 
 	if (verbose) {
-		fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter),
-				count[0], count[1], count[2]);
+		fprintf(stderr, "%s: %" PRIu64 " %" PRIu64 " %" PRIu64 "\n",
+			event_name(counter), count[0], count[1], count[2]);
 	}
 
 	/*
diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c
index 02958d6..1c9060f 100644
--- a/tools/perf/builtin-test.c
+++ b/tools/perf/builtin-test.c
@@ -146,7 +146,7 @@ next_pair:
 				if (llabs(skew) < page_size)
 					continue;
 
-				pr_debug("%#Lx: diff end addr for %s v: %#Lx k: %#Lx\n",
+				pr_debug("%#" PRIx64 ": diff end addr for %s v: %#" PRIx64 " k: %#" PRIx64 "\n",
 					 sym->start, sym->name, sym->end, pair->end);
 			} else {
 				struct rb_node *nnd;
@@ -168,11 +168,11 @@ detour:
 					goto detour;
 				}
 
-				pr_debug("%#Lx: diff name v: %s k: %s\n",
+				pr_debug("%#" PRIx64 ": diff name v: %s k: %s\n",
 					 sym->start, sym->name, pair->name);
 			}
 		} else
-			pr_debug("%#Lx: %s not on kallsyms\n", sym->start, sym->name);
+			pr_debug("%#" PRIx64 ": %s not on kallsyms\n", sym->start, sym->name);
 
 		err = -1;
 	}
@@ -211,10 +211,10 @@ detour:
 
 		if (pair->start == pos->start) {
 			pair->priv = 1;
-			pr_info(" %Lx-%Lx %Lx %s in kallsyms as",
+			pr_info(" %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as",
 				pos->start, pos->end, pos->pgoff, pos->dso->name);
 			if (pos->pgoff != pair->pgoff || pos->end != pair->end)
-				pr_info(": \n*%Lx-%Lx %Lx",
+				pr_info(": \n*%" PRIx64 "-%" PRIx64 " %" PRIx64 "",
 					pair->start, pair->end, pair->pgoff);
 			pr_info(" %s\n", pair->dso->name);
 			pair->priv = 1;
@@ -307,7 +307,7 @@ static int test__open_syscall_event(void)
 	}
 
 	if (evsel->counts->cpu[0].val != nr_open_calls) {
-		pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %Ld\n",
+		pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %" PRIu64 "\n",
 			 nr_open_calls, evsel->counts->cpu[0].val);
 		goto out_close_fd;
 	}
@@ -414,7 +414,7 @@ static int test__open_syscall_event_on_all_cpus(void)
 
 		expected = nr_open_calls + cpu;
 		if (evsel->counts->cpu[cpu].val != expected) {
-			pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %Ld\n",
+			pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n",
 				 expected, cpus->map[cpu], evsel->counts->cpu[cpu].val);
 			goto out_close_fd;
 		}
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 05344c6..b6998e0 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -40,6 +40,7 @@
 #include <stdio.h>
 #include <termios.h>
 #include <unistd.h>
+#include <inttypes.h>
 
 #include <errno.h>
 #include <time.h>
@@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme)
 	len = sym->end - sym->start;
 
 	sprintf(command,
-		"objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s",
+		"objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s",
 		BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start),
 		BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path);
 
@@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme)
 	struct source_line *line;
 	char pattern[PATTERN_LEN + 1];
 
-	sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4,
+	sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4,
 		map__rip_2objdump(syme->map, symbol->start));
 
 	pthread_mutex_lock(&syme->src->lock);
@@ -537,7 +538,7 @@ static void print_sym_table(void)
 	if (nr_counters == 1 || !display_weighted) {
 		struct perf_evsel *first;
 		first = list_entry(evsel_list.next, struct perf_evsel, node);
-		printf("%Ld", first->attr.sample_period);
+		printf("%" PRIu64, (uint64_t)first->attr.sample_period);
 		if (freq)
 			printf("Hz ");
 		else
@@ -640,7 +641,7 @@ static void print_sym_table(void)
 
 		percent_color_fprintf(stdout, "%4.1f%%", pcnt);
 		if (verbose)
-			printf(" %016llx", sym->start);
+			printf(" %016" PRIx64, sym->start);
 		printf(" %-*.*s", sym_width, sym_width, sym->name);
 		printf(" %-*.*s\n", dso_width, dso_width,
 		       dso_width >= syme->map->dso->long_name_len ?
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 2302ec0..1478ab4 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -459,7 +459,8 @@ int event__process_comm(event_t *self, struct sample_data *sample __used,
 int event__process_lost(event_t *self, struct sample_data *sample __used,
 			struct perf_session *session)
 {
-	dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost);
+	dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n",
+		    self->lost.id, self->lost.lost);
 	session->hists.stats.total_lost += self->lost.lost;
 	return 0;
 }
@@ -575,7 +576,7 @@ int event__process_mmap(event_t *self, struct sample_data *sample __used,
 	u8 cpumode = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
 	int ret = 0;
 
-	dump_printf(" %d/%d: [%#Lx(%#Lx) @ %#Lx]: %s\n",
+	dump_printf(" %d/%d: [%#" PRIx64 "(%#" PRIx64 ") @ %#" PRIx64 "]: %s\n",
 			self->mmap.pid, self->mmap.tid, self->mmap.start,
 			self->mmap.len, self->mmap.pgoff, self->mmap.filename);
 
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 989fa2d..f6a929e7 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -798,8 +798,8 @@ static int perf_file_section__process(struct perf_file_section *self,
 				      int feat, int fd)
 {
 	if (lseek(fd, self->offset, SEEK_SET) == (off_t)-1) {
-		pr_debug("Failed to lseek to %Ld offset for feature %d, "
-			 "continuing...\n", self->offset, feat);
+		pr_debug("Failed to lseek to %" PRIu64 " offset for feature "
+			  "%d, continuing...\n", self->offset, feat);
 		return 0;
 	}
 
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index c749ba6..32f4f1f 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -636,13 +636,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size,
 			}
 		}
 	} else
-		ret = snprintf(s, size, sep ? "%lld" : "%12lld ", period);
+		ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period);
 
 	if (symbol_conf.show_nr_samples) {
 		if (sep)
-			ret += snprintf(s + ret, size - ret, "%c%lld", *sep, period);
+			ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period);
 		else
-			ret += snprintf(s + ret, size - ret, "%11lld", period);
+			ret += snprintf(s + ret, size - ret, "%11" PRIu64, period);
 	}
 
 	if (pair_hists) {
@@ -971,7 +971,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip)
 	sym_size = sym->end - sym->start;
 	offset = ip - sym->start;
 
-	pr_debug3("%s: ip=%#Lx\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip));
+	pr_debug3("%s: ip=%#" PRIx64 "\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip));
 
 	if (offset >= sym_size)
 		return 0;
@@ -980,8 +980,9 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip)
 	h->sum++;
 	h->ip[offset]++;
 
-	pr_debug3("%#Lx %s: period++ [ip: %#Lx, %#Lx] => %Ld\n", self->ms.sym->start,
-		  self->ms.sym->name, ip, ip - self->ms.sym->start, h->ip[offset]);
+	pr_debug3("%#" PRIx64 " %s: period++ [ip: %#" PRIx64 ", %#" PRIx64
+		  "] => %" PRIu64 "\n", self->ms.sym->start, self->ms.sym->name,
+		  ip, ip - self->ms.sym->start, h->ip[offset]);
 	return 0;
 }
 
@@ -1132,7 +1133,7 @@ fallback:
 		goto out_free_filename;
 	}
 
-	pr_debug("%s: filename=%s, sym=%s, start=%#Lx, end=%#Lx\n", __func__,
+	pr_debug("%s: filename=%s, sym=%s, start=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__,
 		 filename, sym->name, map->unmap_ip(map, sym->start),
 		 map->unmap_ip(map, sym->end));
 
@@ -1142,7 +1143,7 @@ fallback:
 		 dso, dso->long_name, sym, sym->name);
 
 	snprintf(command, sizeof(command),
-		 "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS -C %s|grep -v %s|expand",
+		 "objdump --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand",
 		 map__rip_2objdump(map, sym->start),
 		 map__rip_2objdump(map, sym->end),
 		 symfs_filename, filename);
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index 3a7eb6e..a16ecab 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -1,5 +1,6 @@
 #include "symbol.h"
 #include <errno.h>
+#include <inttypes.h>
 #include <limits.h>
 #include <stdlib.h>
 #include <string.h>
@@ -195,7 +196,7 @@ int map__overlap(struct map *l, struct map *r)
 
 size_t map__fprintf(struct map *self, FILE *fp)
 {
-	return fprintf(fp, " %Lx-%Lx %Lx %s\n",
+	return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n",
 		       self->start, self->end, self->pgoff, self->dso->name);
 }
 
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index bc2732e..135f69b 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -279,7 +279,7 @@ const char *__event_name(int type, u64 config)
 	static char buf[32];
 
 	if (type == PERF_TYPE_RAW) {
-		sprintf(buf, "raw 0x%llx", config);
+		sprintf(buf, "raw 0x%" PRIx64, config);
 		return buf;
 	}
 
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 128aaab..6e29d9c 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -172,7 +172,7 @@ static int kprobe_convert_to_perf_probe(struct probe_trace_point *tp,
 	sym = __find_kernel_function_by_name(tp->symbol, &map);
 	if (sym) {
 		addr = map->unmap_ip(map, sym->start + tp->offset);
-		pr_debug("try to find %s+%ld@%llx\n", tp->symbol,
+		pr_debug("try to find %s+%ld@%" PRIx64 "\n", tp->symbol,
 			 tp->offset, addr);
 		ret = find_perf_probe_point((unsigned long)addr, pp);
 	}
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 313dac2..105f00b 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -652,10 +652,11 @@ static void callchain__printf(struct sample_data *sample)
 {
 	unsigned int i;
 
-	printf("... chain: nr:%Lu\n", sample->callchain->nr);
+	printf("... chain: nr:%" PRIu64 "\n", sample->callchain->nr);
 
 	for (i = 0; i < sample->callchain->nr; i++)
-		printf("..... %2d: %016Lx\n", i, sample->callchain->ips[i]);
+		printf("..... %2d: %016" PRIx64 "\n",
+		       i, sample->callchain->ips[i]);
 }
 
 static void perf_session__print_tstamp(struct perf_session *session,
@@ -672,7 +673,7 @@ static void perf_session__print_tstamp(struct perf_session *session,
 		printf("%u ", sample->cpu);
 
 	if (session->sample_type & PERF_SAMPLE_TIME)
-		printf("%Lu ", sample->time);
+		printf("%" PRIu64 " ", sample->time);
 }
 
 static void dump_event(struct perf_session *session, event_t *event,
@@ -681,16 +682,16 @@ static void dump_event(struct perf_session *session, event_t *event,
 	if (!dump_trace)
 		return;
 
-	printf("\n%#Lx [%#x]: event: %d\n", file_offset, event->header.size,
-	       event->header.type);
+	printf("\n%#" PRIx64 " [%#x]: event: %d\n",
+	       file_offset, event->header.size, event->header.type);
 
 	trace_event(event);
 
 	if (sample)
 		perf_session__print_tstamp(session, event, sample);
 
-	printf("%#Lx [%#x]: PERF_RECORD_%s", file_offset, event->header.size,
-	       event__get_event_name(event->header.type));
+	printf("%#" PRIx64 " [%#x]: PERF_RECORD_%s", file_offset,
+	       event->header.size, event__get_event_name(event->header.type));
 }
 
 static void dump_sample(struct perf_session *session, event_t *event,
@@ -699,8 +700,9 @@ static void dump_sample(struct perf_session *session, event_t *event,
 	if (!dump_trace)
 		return;
 
-	printf("(IP, %d): %d/%d: %#Lx period: %Ld\n", event->header.misc,
-	       sample->pid, sample->tid, sample->ip, sample->period);
+	printf("(IP, %d): %d/%d: %#" PRIx64 " period: %" PRIu64 "\n",
+	       event->header.misc, sample->pid, sample->tid, sample->ip,
+	       sample->period);
 
 	if (session->sample_type & PERF_SAMPLE_CALLCHAIN)
 		callchain__printf(sample);
@@ -843,8 +845,8 @@ static void perf_session__warn_about_errors(const struct perf_session *session,
 {
 	if (ops->lost == event__process_lost &&
 	    session->hists.stats.total_lost != 0) {
-		ui__warning("Processed %Lu events and LOST %Lu!\n\n"
-			    "Check IO/CPU overload!\n\n",
+		ui__warning("Processed %" PRIu64 " events and LOST %" PRIu64
+			    "!\n\nCheck IO/CPU overload!\n\n",
 			    session->hists.stats.total_period,
 			    session->hists.stats.total_lost);
 	}
@@ -918,7 +920,7 @@ more:
 
 	if (size == 0 ||
 	    (skip = perf_session__process_event(self, &event, ops, head)) < 0) {
-		dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n",
+		dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n",
 			    head, event.header.size, event.header.type);
 		/*
 		 * assume we lost track of the stream, check alignment, and
@@ -1023,7 +1025,7 @@ more:
 
 	if (size == 0 ||
 	    perf_session__process_event(session, event, ops, file_pos) < 0) {
-		dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n",
+		dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n",
 			    file_offset + head, event->header.size,
 			    event->header.type);
 		/*
diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c
index b3637db..805220a 100644
--- a/tools/perf/util/svghelper.c
+++ b/tools/perf/util/svghelper.c
@@ -12,6 +12,7 @@
  * of the License.
  */
 
+#include <inttypes.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -94,7 +95,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end)
 
 	total_height = (1 + rows + cpu2slot(cpus)) * SLOT_MULT;
 	fprintf(svgfile, "<?xml version=\"1.0\" standalone=\"no\"?> \n");
-	fprintf(svgfile, "<svg width=\"%i\" height=\"%llu\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height);
+	fprintf(svgfile, "<svg width=\"%i\" height=\"%" PRIu64 "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height);
 
 	fprintf(svgfile, "<defs>\n  <style type=\"text/css\">\n    <![CDATA[\n");
 
@@ -483,7 +484,7 @@ void svg_time_grid(void)
 			color = 128;
 		}
 
-		fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%llu\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n",
+		fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%" PRIu64 "\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n",
 			time2pixels(i), SLOT_MULT/2, time2pixels(i), total_height, color, color, color, thickness);
 
 		i += 10000000;
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index e32478e..7821d0e 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -11,6 +11,7 @@
 #include <sys/param.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <inttypes.h>
 #include "build-id.h"
 #include "debug.h"
 #include "symbol.h"
@@ -153,7 +154,7 @@ static struct symbol *symbol__new(u64 start, u64 len, u8 binding,
 	self->binding = binding;
 	self->namelen = namelen - 1;
 
-	pr_debug4("%s: %s %#Lx-%#Lx\n", __func__, name, start, self->end);
+	pr_debug4("%s: %s %#" PRIx64 "-%#" PRIx64 "\n", __func__, name, start, self->end);
 
 	memcpy(self->name, name, namelen);
 
@@ -167,7 +168,7 @@ void symbol__delete(struct symbol *self)
 
 static size_t symbol__fprintf(struct symbol *self, FILE *fp)
 {
-	return fprintf(fp, " %llx-%llx %c %s\n",
+	return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %c %s\n",
 		       self->start, self->end,
 		       self->binding == STB_GLOBAL ? 'g' :
 		       self->binding == STB_LOCAL  ? 'l' : 'w',
@@ -1215,8 +1216,8 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name,
 		}
 
 		if (curr_dso->adjust_symbols) {
-			pr_debug4("%s: adjusting symbol: st_value: %#Lx "
-				  "sh_addr: %#Lx sh_offset: %#Lx\n", __func__,
+			pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " "
+				  "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", __func__,
 				  (u64)sym.st_value, (u64)shdr.sh_addr,
 				  (u64)shdr.sh_offset);
 			sym.st_value -= shdr.sh_addr - shdr.sh_offset;
diff --git a/tools/perf/util/types.h b/tools/perf/util/types.h
index 7d6b833..5f3689a 100644
--- a/tools/perf/util/types.h
+++ b/tools/perf/util/types.h
@@ -1,12 +1,14 @@
 #ifndef __PERF_TYPES_H
 #define __PERF_TYPES_H
 
+#include <stdint.h>
+
 /*
- * We define u64 as unsigned long long for every architecture
- * so that we can print it with %Lx without getting warnings.
+ * We define u64 as uint64_t for every architecture
+ * so that we can print it with "%"PRIx64 without getting warnings.
  */
-typedef unsigned long long u64;
-typedef signed long long   s64;
+typedef uint64_t	   u64;
+typedef int64_t		   s64;
 typedef unsigned int	   u32;
 typedef signed int	   s32;
 typedef unsigned short	   u16;
diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c
index ebda8c3..60c463c 100644
--- a/tools/perf/util/ui/browsers/hists.c
+++ b/tools/perf/util/ui/browsers/hists.c
@@ -350,7 +350,7 @@ static char *callchain_list__sym_name(struct callchain_list *self,
 	if (self->ms.sym)
 		return self->ms.sym->name;
 
-	snprintf(bf, bfsize, "%#Lx", self->ip);
+	snprintf(bf, bfsize, "%#" PRIx64, self->ip);
 	return bf;
 }
 
diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c
index e35437d..e515836 100644
--- a/tools/perf/util/ui/browsers/map.c
+++ b/tools/perf/util/ui/browsers/map.c
@@ -1,5 +1,6 @@
 #include "../libslang.h"
 #include <elf.h>
+#include <inttypes.h>
 #include <sys/ttydefaults.h>
 #include <ctype.h>
 #include <string.h>
@@ -57,7 +58,7 @@ static void map_browser__write(struct ui_browser *self, void *nd, int row)
 	int width;
 
 	ui_browser__set_percent_color(self, 0, current_entry);
-	slsmg_printf("%*llx %*llx %c ",
+	slsmg_printf("%*" PRIx64 " %*" PRIx64 " %c ",
 		     mb->addrlen, sym->start, mb->addrlen, sym->end,
 		     sym->binding == STB_GLOBAL ? 'g' :
 		     sym->binding == STB_LOCAL  ? 'l' : 'w');
@@ -150,6 +151,6 @@ int map__browse(struct map *self)
 		++mb.b.nr_entries;
 	}
 
-	mb.addrlen = snprintf(tmp, sizeof(tmp), "%llx", maxaddr);
+	mb.addrlen = snprintf(tmp, sizeof(tmp), "%" PRIx64, maxaddr);
 	return map_browser__run(&mb);
 }
diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c
index cfa55d6..bdd3347 100644
--- a/tools/perf/util/values.c
+++ b/tools/perf/util/values.c
@@ -150,7 +150,7 @@ static void perf_read_values__display_pretty(FILE *fp,
 		if (width > tidwidth)
 			tidwidth = width;
 		for (j = 0; j < values->counters; j++) {
-			width = snprintf(NULL, 0, "%Lu", values->value[i][j]);
+			width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]);
 			if (width > counterwidth[j])
 				counterwidth[j] = width;
 		}
@@ -165,7 +165,7 @@ static void perf_read_values__display_pretty(FILE *fp,
 		fprintf(fp, "  %*d  %*d", pidwidth, values->pid[i],
 			tidwidth, values->tid[i]);
 		for (j = 0; j < values->counters; j++)
-			fprintf(fp, "  %*Lu",
+			fprintf(fp, "  %*" PRIu64,
 				counterwidth[j], values->value[i][j]);
 		fprintf(fp, "\n");
 	}
@@ -196,13 +196,13 @@ static void perf_read_values__display_raw(FILE *fp,
 		width = strlen(values->countername[j]);
 		if (width > namewidth)
 			namewidth = width;
-		width = snprintf(NULL, 0, "%llx", values->counterrawid[j]);
+		width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]);
 		if (width > rawwidth)
 			rawwidth = width;
 	}
 	for (i = 0; i < values->threads; i++) {
 		for (j = 0; j < values->counters; j++) {
-			width = snprintf(NULL, 0, "%Lu", values->value[i][j]);
+			width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]);
 			if (width > countwidth)
 				countwidth = width;
 		}
@@ -214,7 +214,7 @@ static void perf_read_values__display_raw(FILE *fp,
 		countwidth, "Count");
 	for (i = 0; i < values->threads; i++)
 		for (j = 0; j < values->counters; j++)
-			fprintf(fp, "  %*d  %*d  %*s  %*llx  %*Lu\n",
+			fprintf(fp, "  %*d  %*d  %*s  %*" PRIx64 "  %*" PRIu64,
 				pidwidth, values->pid[i],
 				tidwidth, values->tid[i],
 				namewidth, values->countername[j],

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] perftools: Fix build error
  2011-01-21 19:30       ` Arnaldo Carvalho de Melo
@ 2011-01-22  5:08         ` Pingtian Han
  2011-01-22  9:13           ` Denis Kirjanov
  2011-01-22  8:54         ` Denis Kirjanov
  1 sibling, 1 reply; 15+ messages in thread
From: Pingtian Han @ 2011-01-22  5:08 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, linux-kernel, a p zijlstra, paulus, Denis Kirjanov

It seems that the patch of Denis works in my envriments. The original build failure only occurs on
ppc64 systems. The type '__u64' on ppc64 seems equal to 'long int'. Maybe we needn't change the definition of 'u64' because the macro 'PRIu64' will be 'lu' on ppc64, too.

----- Original Message -----
From: "Arnaldo Carvalho de Melo" <acme@ghostprotocols.net>
To: "Denis Kirjanov" <dkirjanov@kernel.org>
Cc: "Ingo Molnar" <mingo@elte.hu>, linux-kernel@vger.kernel.org, "a p zijlstra" <a.p.zijlstra@chello.nl>, paulus@samba.org
Sent: Saturday, January 22, 2011 3:30:03 AM
Subject: Re: [PATCH] perftools: Fix build error

Em Fri, Jan 21, 2011 at 04:53:37PM -0200, Arnaldo Carvalho de Melo escreveu:
> Now, after applying your patch, I get:
> 
> [acme@felicio linux]$ make -j2 O=~acme/git/build/perf -C tools/perf/ install
>     CC /home/acme/git/build/perf/builtin-top.o
> cc1: warnings being treated as errors
> builtin-top.c: In function ‘print_sym_table’:
> builtin-top.c:541:3: error: format ‘%lu’ expects type ‘long unsigned int’, but argument 2 has type ‘__u64’
> make: *** [/home/acme/git/build/perf/builtin-top.o] Error 1
> make: Leaving directory `/media/tbs/acme/git/linux/tools/perf'
> 
> [acme@felicio linux]$ gcc -v
> gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) 
> [acme@felicio linux]$ cat /etc/fedora-release 
> Fedora release 14 (Laughlin)
> [acme@felicio linux]$ 

Can you check the attached patch?

I changed the typedef for u64 from 'unsigned long long' to uint64_t and
fixed up the fallout, converting lots of places to use PRI[ux]64.

- Arnaldo

[acme@felicio linux]$ git diff --stat
 tools/perf/builtin-annotate.c       |    6 +++---
 tools/perf/builtin-kmem.c           |    4 ++--
 tools/perf/builtin-lock.c           |    6 +++---
 tools/perf/builtin-record.c         |    2 +-
 tools/perf/builtin-report.c         |    2 +-
 tools/perf/builtin-sched.c          |   20 ++++++++++----------
 tools/perf/builtin-script.c         |    6 +++---
 tools/perf/builtin-stat.c           |    4 ++--
 tools/perf/builtin-test.c           |   14 +++++++-------
 tools/perf/builtin-top.c            |    9 +++++----
 tools/perf/util/event.c             |    5 +++--
 tools/perf/util/header.c            |    4 ++--
 tools/perf/util/hist.c              |   17 +++++++++--------
 tools/perf/util/map.c               |    3 ++-
 tools/perf/util/parse-events.c      |    2 +-
 tools/perf/util/probe-event.c       |    2 +-
 tools/perf/util/session.c           |   28 +++++++++++++++-------------
 tools/perf/util/svghelper.c         |    5 +++--
 tools/perf/util/symbol.c            |    9 +++++----
 tools/perf/util/types.h             |   10 ++++++----
 tools/perf/util/ui/browsers/hists.c |    2 +-
 tools/perf/util/ui/browsers/map.c   |    5 +++--
 tools/perf/util/values.c            |   10 +++++-----
 23 files changed, 93 insertions(+), 82 deletions(-)
[acme@felicio linux]$ 

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index c056cdc..8879463 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -212,7 +212,7 @@ get_source_line(struct hist_entry *he, int len, const char *filename)
 			continue;
 
 		offset = start + i;
-		sprintf(cmd, "addr2line -e %s %016llx", filename, offset);
+		sprintf(cmd, "addr2line -e %s %016" PRIx64, filename, offset);
 		fp = popen(cmd, "r");
 		if (!fp)
 			continue;
@@ -270,9 +270,9 @@ static void hist_entry__print_hits(struct hist_entry *self)
 
 	for (offset = 0; offset < len; ++offset)
 		if (h->ip[offset] != 0)
-			printf("%*Lx: %Lu\n", BITS_PER_LONG / 2,
+			printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2,
 			       sym->start + offset, h->ip[offset]);
-	printf("%*s: %Lu\n", BITS_PER_LONG / 2, "h->sum", h->sum);
+	printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum);
 }
 
 static int hist_entry__tty_annotate(struct hist_entry *he)
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c
index def7ddc..d97256d 100644
--- a/tools/perf/builtin-kmem.c
+++ b/tools/perf/builtin-kmem.c
@@ -371,10 +371,10 @@ static void __print_result(struct rb_root *root, struct perf_session *session,
 			addr = data->ptr;
 
 		if (sym != NULL)
-			snprintf(buf, sizeof(buf), "%s+%Lx", sym->name,
+			snprintf(buf, sizeof(buf), "%s+%" PRIx64 "", sym->name,
 				 addr - map->unmap_ip(map, sym->start));
 		else
-			snprintf(buf, sizeof(buf), "%#Lx", addr);
+			snprintf(buf, sizeof(buf), "%#" PRIx64 "", addr);
 		printf(" %-34s |", buf);
 
 		printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n",
diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
index b9c6e54..2b36def 100644
--- a/tools/perf/builtin-lock.c
+++ b/tools/perf/builtin-lock.c
@@ -782,9 +782,9 @@ static void print_result(void)
 		pr_info("%10u ", st->nr_acquired);
 		pr_info("%10u ", st->nr_contended);
 
-		pr_info("%15llu ", st->wait_time_total);
-		pr_info("%15llu ", st->wait_time_max);
-		pr_info("%15llu ", st->wait_time_min == ULLONG_MAX ?
+		pr_info("%15" PRIu64 " ", st->wait_time_total);
+		pr_info("%15" PRIu64 " ", st->wait_time_max);
+		pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ?
 		       0 : st->wait_time_min);
 		pr_info("\n");
 	}
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index fcd29e8..b2f729f 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -817,7 +817,7 @@ static int __cmd_record(int argc, const char **argv)
 	 * Approximate RIP event size: 24 bytes.
 	 */
 	fprintf(stderr,
-		"[ perf record: Captured and wrote %.3f MB %s (~%lld samples) ]\n",
+		"[ perf record: Captured and wrote %.3f MB %s (~%" PRIu64 " samples) ]\n",
 		(double)bytes_written / 1024.0 / 1024.0,
 		output_name,
 		bytes_written / 24);
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 75183a4..c27e31f 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -197,7 +197,7 @@ static int process_read_event(event_t *event, struct sample_data *sample __used,
 					   event->read.value);
 	}
 
-	dump_printf(": %d %d %s %Lu\n", event->read.pid, event->read.tid,
+	dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid,
 		    attr ? __event_name(attr->type, attr->config) : "FAIL",
 		    event->read.value);
 
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index 29e7ffd..29acb89 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -193,7 +193,7 @@ static void calibrate_run_measurement_overhead(void)
 	}
 	run_measurement_overhead = min_delta;
 
-	printf("run measurement overhead: %Ld nsecs\n", min_delta);
+	printf("run measurement overhead: %" PRIu64 " nsecs\n", min_delta);
 }
 
 static void calibrate_sleep_measurement_overhead(void)
@@ -211,7 +211,7 @@ static void calibrate_sleep_measurement_overhead(void)
 	min_delta -= 10000;
 	sleep_measurement_overhead = min_delta;
 
-	printf("sleep measurement overhead: %Ld nsecs\n", min_delta);
+	printf("sleep measurement overhead: %" PRIu64 " nsecs\n", min_delta);
 }
 
 static struct sched_atom *
@@ -617,13 +617,13 @@ static void test_calibrations(void)
 	burn_nsecs(1e6);
 	T1 = get_nsecs();
 
-	printf("the run test took %Ld nsecs\n", T1-T0);
+	printf("the run test took %" PRIu64 " nsecs\n", T1 - T0);
 
 	T0 = get_nsecs();
 	sleep_nsecs(1e6);
 	T1 = get_nsecs();
 
-	printf("the sleep test took %Ld nsecs\n", T1-T0);
+	printf("the sleep test took %" PRIu64 " nsecs\n", T1 - T0);
 }
 
 #define FILL_FIELD(ptr, field, event, data)	\
@@ -816,10 +816,10 @@ replay_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 	if (verbose) {
-		printf(" ... switch from %s/%d to %s/%d [ran %Ld nsecs]\n",
+		printf(" ... switch from %s/%d to %s/%d [ran %" PRIu64 " nsecs]\n",
 			switch_event->prev_comm, switch_event->prev_pid,
 			switch_event->next_comm, switch_event->next_pid,
 			delta);
@@ -1048,7 +1048,7 @@ latency_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 
 	sched_out = perf_session__findnew(session, switch_event->prev_pid);
@@ -1221,7 +1221,7 @@ static void output_lat_thread(struct work_atoms *work_list)
 
 	avg = work_list->total_lat / work_list->nb_atoms;
 
-	printf("|%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n",
+	printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n",
 	      (double)work_list->total_runtime / 1e6,
 		 work_list->nb_atoms, (double)avg / 1e6,
 		 (double)work_list->max_lat / 1e6,
@@ -1423,7 +1423,7 @@ map_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 
 	sched_out = perf_session__findnew(session, switch_event->prev_pid);
@@ -1713,7 +1713,7 @@ static void __cmd_lat(void)
 	}
 
 	printf(" -----------------------------------------------------------------------------------------\n");
-	printf("  TOTAL:                |%11.3f ms |%9Ld |\n",
+	printf("  TOTAL:                |%11.3f ms |%9" PRIu64 " |\n",
 		(double)all_runtime/1e6, all_count);
 
 	printf(" ---------------------------------------------------\n");
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 150a606..b766c2a 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -77,8 +77,8 @@ static int process_sample_event(event_t *event, struct sample_data *sample,
 	if (session->sample_type & PERF_SAMPLE_RAW) {
 		if (debug_mode) {
 			if (sample->time < last_timestamp) {
-				pr_err("Samples misordered, previous: %llu "
-					"this: %llu\n", last_timestamp,
+				pr_err("Samples misordered, previous: %" PRIu64
+					" this: %" PRIu64 "\n", last_timestamp,
 					sample->time);
 				nr_unordered++;
 			}
@@ -126,7 +126,7 @@ static int __cmd_script(struct perf_session *session)
 	ret = perf_session__process_events(session, &event_ops);
 
 	if (debug_mode)
-		pr_err("Misordered timestamps: %llu\n", nr_unordered);
+		pr_err("Misordered timestamps: %" PRIu64 "\n", nr_unordered);
 
 	return ret;
 }
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 0ff11d9..a482a19 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -206,8 +206,8 @@ static int read_counter_aggr(struct perf_evsel *counter)
 		update_stats(&ps->res_stats[i], count[i]);
 
 	if (verbose) {
-		fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter),
-				count[0], count[1], count[2]);
+		fprintf(stderr, "%s: %" PRIu64 " %" PRIu64 " %" PRIu64 "\n",
+			event_name(counter), count[0], count[1], count[2]);
 	}
 
 	/*
diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c
index 02958d6..1c9060f 100644
--- a/tools/perf/builtin-test.c
+++ b/tools/perf/builtin-test.c
@@ -146,7 +146,7 @@ next_pair:
 				if (llabs(skew) < page_size)
 					continue;
 
-				pr_debug("%#Lx: diff end addr for %s v: %#Lx k: %#Lx\n",
+				pr_debug("%#" PRIx64 ": diff end addr for %s v: %#" PRIx64 " k: %#" PRIx64 "\n",
 					 sym->start, sym->name, sym->end, pair->end);
 			} else {
 				struct rb_node *nnd;
@@ -168,11 +168,11 @@ detour:
 					goto detour;
 				}
 
-				pr_debug("%#Lx: diff name v: %s k: %s\n",
+				pr_debug("%#" PRIx64 ": diff name v: %s k: %s\n",
 					 sym->start, sym->name, pair->name);
 			}
 		} else
-			pr_debug("%#Lx: %s not on kallsyms\n", sym->start, sym->name);
+			pr_debug("%#" PRIx64 ": %s not on kallsyms\n", sym->start, sym->name);
 
 		err = -1;
 	}
@@ -211,10 +211,10 @@ detour:
 
 		if (pair->start == pos->start) {
 			pair->priv = 1;
-			pr_info(" %Lx-%Lx %Lx %s in kallsyms as",
+			pr_info(" %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as",
 				pos->start, pos->end, pos->pgoff, pos->dso->name);
 			if (pos->pgoff != pair->pgoff || pos->end != pair->end)
-				pr_info(": \n*%Lx-%Lx %Lx",
+				pr_info(": \n*%" PRIx64 "-%" PRIx64 " %" PRIx64 "",
 					pair->start, pair->end, pair->pgoff);
 			pr_info(" %s\n", pair->dso->name);
 			pair->priv = 1;
@@ -307,7 +307,7 @@ static int test__open_syscall_event(void)
 	}
 
 	if (evsel->counts->cpu[0].val != nr_open_calls) {
-		pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %Ld\n",
+		pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %" PRIu64 "\n",
 			 nr_open_calls, evsel->counts->cpu[0].val);
 		goto out_close_fd;
 	}
@@ -414,7 +414,7 @@ static int test__open_syscall_event_on_all_cpus(void)
 
 		expected = nr_open_calls + cpu;
 		if (evsel->counts->cpu[cpu].val != expected) {
-			pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %Ld\n",
+			pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n",
 				 expected, cpus->map[cpu], evsel->counts->cpu[cpu].val);
 			goto out_close_fd;
 		}
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 05344c6..b6998e0 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -40,6 +40,7 @@
 #include <stdio.h>
 #include <termios.h>
 #include <unistd.h>
+#include <inttypes.h>
 
 #include <errno.h>
 #include <time.h>
@@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme)
 	len = sym->end - sym->start;
 
 	sprintf(command,
-		"objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s",
+		"objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s",
 		BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start),
 		BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path);
 
@@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme)
 	struct source_line *line;
 	char pattern[PATTERN_LEN + 1];
 
-	sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4,
+	sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4,
 		map__rip_2objdump(syme->map, symbol->start));
 
 	pthread_mutex_lock(&syme->src->lock);
@@ -537,7 +538,7 @@ static void print_sym_table(void)
 	if (nr_counters == 1 || !display_weighted) {
 		struct perf_evsel *first;
 		first = list_entry(evsel_list.next, struct perf_evsel, node);
-		printf("%Ld", first->attr.sample_period);
+		printf("%" PRIu64, (uint64_t)first->attr.sample_period);
 		if (freq)
 			printf("Hz ");
 		else
@@ -640,7 +641,7 @@ static void print_sym_table(void)
 
 		percent_color_fprintf(stdout, "%4.1f%%", pcnt);
 		if (verbose)
-			printf(" %016llx", sym->start);
+			printf(" %016" PRIx64, sym->start);
 		printf(" %-*.*s", sym_width, sym_width, sym->name);
 		printf(" %-*.*s\n", dso_width, dso_width,
 		       dso_width >= syme->map->dso->long_name_len ?
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 2302ec0..1478ab4 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -459,7 +459,8 @@ int event__process_comm(event_t *self, struct sample_data *sample __used,
 int event__process_lost(event_t *self, struct sample_data *sample __used,
 			struct perf_session *session)
 {
-	dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost);
+	dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n",
+		    self->lost.id, self->lost.lost);
 	session->hists.stats.total_lost += self->lost.lost;
 	return 0;
 }
@@ -575,7 +576,7 @@ int event__process_mmap(event_t *self, struct sample_data *sample __used,
 	u8 cpumode = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
 	int ret = 0;
 
-	dump_printf(" %d/%d: [%#Lx(%#Lx) @ %#Lx]: %s\n",
+	dump_printf(" %d/%d: [%#" PRIx64 "(%#" PRIx64 ") @ %#" PRIx64 "]: %s\n",
 			self->mmap.pid, self->mmap.tid, self->mmap.start,
 			self->mmap.len, self->mmap.pgoff, self->mmap.filename);
 
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 989fa2d..f6a929e7 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -798,8 +798,8 @@ static int perf_file_section__process(struct perf_file_section *self,
 				      int feat, int fd)
 {
 	if (lseek(fd, self->offset, SEEK_SET) == (off_t)-1) {
-		pr_debug("Failed to lseek to %Ld offset for feature %d, "
-			 "continuing...\n", self->offset, feat);
+		pr_debug("Failed to lseek to %" PRIu64 " offset for feature "
+			  "%d, continuing...\n", self->offset, feat);
 		return 0;
 	}
 
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index c749ba6..32f4f1f 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -636,13 +636,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size,
 			}
 		}
 	} else
-		ret = snprintf(s, size, sep ? "%lld" : "%12lld ", period);
+		ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period);
 
 	if (symbol_conf.show_nr_samples) {
 		if (sep)
-			ret += snprintf(s + ret, size - ret, "%c%lld", *sep, period);
+			ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period);
 		else
-			ret += snprintf(s + ret, size - ret, "%11lld", period);
+			ret += snprintf(s + ret, size - ret, "%11" PRIu64, period);
 	}
 
 	if (pair_hists) {
@@ -971,7 +971,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip)
 	sym_size = sym->end - sym->start;
 	offset = ip - sym->start;
 
-	pr_debug3("%s: ip=%#Lx\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip));
+	pr_debug3("%s: ip=%#" PRIx64 "\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip));
 
 	if (offset >= sym_size)
 		return 0;
@@ -980,8 +980,9 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip)
 	h->sum++;
 	h->ip[offset]++;
 
-	pr_debug3("%#Lx %s: period++ [ip: %#Lx, %#Lx] => %Ld\n", self->ms.sym->start,
-		  self->ms.sym->name, ip, ip - self->ms.sym->start, h->ip[offset]);
+	pr_debug3("%#" PRIx64 " %s: period++ [ip: %#" PRIx64 ", %#" PRIx64
+		  "] => %" PRIu64 "\n", self->ms.sym->start, self->ms.sym->name,
+		  ip, ip - self->ms.sym->start, h->ip[offset]);
 	return 0;
 }
 
@@ -1132,7 +1133,7 @@ fallback:
 		goto out_free_filename;
 	}
 
-	pr_debug("%s: filename=%s, sym=%s, start=%#Lx, end=%#Lx\n", __func__,
+	pr_debug("%s: filename=%s, sym=%s, start=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__,
 		 filename, sym->name, map->unmap_ip(map, sym->start),
 		 map->unmap_ip(map, sym->end));
 
@@ -1142,7 +1143,7 @@ fallback:
 		 dso, dso->long_name, sym, sym->name);
 
 	snprintf(command, sizeof(command),
-		 "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS -C %s|grep -v %s|expand",
+		 "objdump --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand",
 		 map__rip_2objdump(map, sym->start),
 		 map__rip_2objdump(map, sym->end),
 		 symfs_filename, filename);
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index 3a7eb6e..a16ecab 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -1,5 +1,6 @@
 #include "symbol.h"
 #include <errno.h>
+#include <inttypes.h>
 #include <limits.h>
 #include <stdlib.h>
 #include <string.h>
@@ -195,7 +196,7 @@ int map__overlap(struct map *l, struct map *r)
 
 size_t map__fprintf(struct map *self, FILE *fp)
 {
-	return fprintf(fp, " %Lx-%Lx %Lx %s\n",
+	return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n",
 		       self->start, self->end, self->pgoff, self->dso->name);
 }
 
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index bc2732e..135f69b 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -279,7 +279,7 @@ const char *__event_name(int type, u64 config)
 	static char buf[32];
 
 	if (type == PERF_TYPE_RAW) {
-		sprintf(buf, "raw 0x%llx", config);
+		sprintf(buf, "raw 0x%" PRIx64, config);
 		return buf;
 	}
 
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 128aaab..6e29d9c 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -172,7 +172,7 @@ static int kprobe_convert_to_perf_probe(struct probe_trace_point *tp,
 	sym = __find_kernel_function_by_name(tp->symbol, &map);
 	if (sym) {
 		addr = map->unmap_ip(map, sym->start + tp->offset);
-		pr_debug("try to find %s+%ld@%llx\n", tp->symbol,
+		pr_debug("try to find %s+%ld@%" PRIx64 "\n", tp->symbol,
 			 tp->offset, addr);
 		ret = find_perf_probe_point((unsigned long)addr, pp);
 	}
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 313dac2..105f00b 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -652,10 +652,11 @@ static void callchain__printf(struct sample_data *sample)
 {
 	unsigned int i;
 
-	printf("... chain: nr:%Lu\n", sample->callchain->nr);
+	printf("... chain: nr:%" PRIu64 "\n", sample->callchain->nr);
 
 	for (i = 0; i < sample->callchain->nr; i++)
-		printf("..... %2d: %016Lx\n", i, sample->callchain->ips[i]);
+		printf("..... %2d: %016" PRIx64 "\n",
+		       i, sample->callchain->ips[i]);
 }
 
 static void perf_session__print_tstamp(struct perf_session *session,
@@ -672,7 +673,7 @@ static void perf_session__print_tstamp(struct perf_session *session,
 		printf("%u ", sample->cpu);
 
 	if (session->sample_type & PERF_SAMPLE_TIME)
-		printf("%Lu ", sample->time);
+		printf("%" PRIu64 " ", sample->time);
 }
 
 static void dump_event(struct perf_session *session, event_t *event,
@@ -681,16 +682,16 @@ static void dump_event(struct perf_session *session, event_t *event,
 	if (!dump_trace)
 		return;
 
-	printf("\n%#Lx [%#x]: event: %d\n", file_offset, event->header.size,
-	       event->header.type);
+	printf("\n%#" PRIx64 " [%#x]: event: %d\n",
+	       file_offset, event->header.size, event->header.type);
 
 	trace_event(event);
 
 	if (sample)
 		perf_session__print_tstamp(session, event, sample);
 
-	printf("%#Lx [%#x]: PERF_RECORD_%s", file_offset, event->header.size,
-	       event__get_event_name(event->header.type));
+	printf("%#" PRIx64 " [%#x]: PERF_RECORD_%s", file_offset,
+	       event->header.size, event__get_event_name(event->header.type));
 }
 
 static void dump_sample(struct perf_session *session, event_t *event,
@@ -699,8 +700,9 @@ static void dump_sample(struct perf_session *session, event_t *event,
 	if (!dump_trace)
 		return;
 
-	printf("(IP, %d): %d/%d: %#Lx period: %Ld\n", event->header.misc,
-	       sample->pid, sample->tid, sample->ip, sample->period);
+	printf("(IP, %d): %d/%d: %#" PRIx64 " period: %" PRIu64 "\n",
+	       event->header.misc, sample->pid, sample->tid, sample->ip,
+	       sample->period);
 
 	if (session->sample_type & PERF_SAMPLE_CALLCHAIN)
 		callchain__printf(sample);
@@ -843,8 +845,8 @@ static void perf_session__warn_about_errors(const struct perf_session *session,
 {
 	if (ops->lost == event__process_lost &&
 	    session->hists.stats.total_lost != 0) {
-		ui__warning("Processed %Lu events and LOST %Lu!\n\n"
-			    "Check IO/CPU overload!\n\n",
+		ui__warning("Processed %" PRIu64 " events and LOST %" PRIu64
+			    "!\n\nCheck IO/CPU overload!\n\n",
 			    session->hists.stats.total_period,
 			    session->hists.stats.total_lost);
 	}
@@ -918,7 +920,7 @@ more:
 
 	if (size == 0 ||
 	    (skip = perf_session__process_event(self, &event, ops, head)) < 0) {
-		dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n",
+		dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n",
 			    head, event.header.size, event.header.type);
 		/*
 		 * assume we lost track of the stream, check alignment, and
@@ -1023,7 +1025,7 @@ more:
 
 	if (size == 0 ||
 	    perf_session__process_event(session, event, ops, file_pos) < 0) {
-		dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n",
+		dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n",
 			    file_offset + head, event->header.size,
 			    event->header.type);
 		/*
diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c
index b3637db..805220a 100644
--- a/tools/perf/util/svghelper.c
+++ b/tools/perf/util/svghelper.c
@@ -12,6 +12,7 @@
  * of the License.
  */
 
+#include <inttypes.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -94,7 +95,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end)
 
 	total_height = (1 + rows + cpu2slot(cpus)) * SLOT_MULT;
 	fprintf(svgfile, "<?xml version=\"1.0\" standalone=\"no\"?> \n");
-	fprintf(svgfile, "<svg width=\"%i\" height=\"%llu\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height);
+	fprintf(svgfile, "<svg width=\"%i\" height=\"%" PRIu64 "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height);
 
 	fprintf(svgfile, "<defs>\n  <style type=\"text/css\">\n    <![CDATA[\n");
 
@@ -483,7 +484,7 @@ void svg_time_grid(void)
 			color = 128;
 		}
 
-		fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%llu\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n",
+		fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%" PRIu64 "\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n",
 			time2pixels(i), SLOT_MULT/2, time2pixels(i), total_height, color, color, color, thickness);
 
 		i += 10000000;
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index e32478e..7821d0e 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -11,6 +11,7 @@
 #include <sys/param.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <inttypes.h>
 #include "build-id.h"
 #include "debug.h"
 #include "symbol.h"
@@ -153,7 +154,7 @@ static struct symbol *symbol__new(u64 start, u64 len, u8 binding,
 	self->binding = binding;
 	self->namelen = namelen - 1;
 
-	pr_debug4("%s: %s %#Lx-%#Lx\n", __func__, name, start, self->end);
+	pr_debug4("%s: %s %#" PRIx64 "-%#" PRIx64 "\n", __func__, name, start, self->end);
 
 	memcpy(self->name, name, namelen);
 
@@ -167,7 +168,7 @@ void symbol__delete(struct symbol *self)
 
 static size_t symbol__fprintf(struct symbol *self, FILE *fp)
 {
-	return fprintf(fp, " %llx-%llx %c %s\n",
+	return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %c %s\n",
 		       self->start, self->end,
 		       self->binding == STB_GLOBAL ? 'g' :
 		       self->binding == STB_LOCAL  ? 'l' : 'w',
@@ -1215,8 +1216,8 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name,
 		}
 
 		if (curr_dso->adjust_symbols) {
-			pr_debug4("%s: adjusting symbol: st_value: %#Lx "
-				  "sh_addr: %#Lx sh_offset: %#Lx\n", __func__,
+			pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " "
+				  "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", __func__,
 				  (u64)sym.st_value, (u64)shdr.sh_addr,
 				  (u64)shdr.sh_offset);
 			sym.st_value -= shdr.sh_addr - shdr.sh_offset;
diff --git a/tools/perf/util/types.h b/tools/perf/util/types.h
index 7d6b833..5f3689a 100644
--- a/tools/perf/util/types.h
+++ b/tools/perf/util/types.h
@@ -1,12 +1,14 @@
 #ifndef __PERF_TYPES_H
 #define __PERF_TYPES_H
 
+#include <stdint.h>
+
 /*
- * We define u64 as unsigned long long for every architecture
- * so that we can print it with %Lx without getting warnings.
+ * We define u64 as uint64_t for every architecture
+ * so that we can print it with "%"PRIx64 without getting warnings.
  */
-typedef unsigned long long u64;
-typedef signed long long   s64;
+typedef uint64_t	   u64;
+typedef int64_t		   s64;
 typedef unsigned int	   u32;
 typedef signed int	   s32;
 typedef unsigned short	   u16;
diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c
index ebda8c3..60c463c 100644
--- a/tools/perf/util/ui/browsers/hists.c
+++ b/tools/perf/util/ui/browsers/hists.c
@@ -350,7 +350,7 @@ static char *callchain_list__sym_name(struct callchain_list *self,
 	if (self->ms.sym)
 		return self->ms.sym->name;
 
-	snprintf(bf, bfsize, "%#Lx", self->ip);
+	snprintf(bf, bfsize, "%#" PRIx64, self->ip);
 	return bf;
 }
 
diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c
index e35437d..e515836 100644
--- a/tools/perf/util/ui/browsers/map.c
+++ b/tools/perf/util/ui/browsers/map.c
@@ -1,5 +1,6 @@
 #include "../libslang.h"
 #include <elf.h>
+#include <inttypes.h>
 #include <sys/ttydefaults.h>
 #include <ctype.h>
 #include <string.h>
@@ -57,7 +58,7 @@ static void map_browser__write(struct ui_browser *self, void *nd, int row)
 	int width;
 
 	ui_browser__set_percent_color(self, 0, current_entry);
-	slsmg_printf("%*llx %*llx %c ",
+	slsmg_printf("%*" PRIx64 " %*" PRIx64 " %c ",
 		     mb->addrlen, sym->start, mb->addrlen, sym->end,
 		     sym->binding == STB_GLOBAL ? 'g' :
 		     sym->binding == STB_LOCAL  ? 'l' : 'w');
@@ -150,6 +151,6 @@ int map__browse(struct map *self)
 		++mb.b.nr_entries;
 	}
 
-	mb.addrlen = snprintf(tmp, sizeof(tmp), "%llx", maxaddr);
+	mb.addrlen = snprintf(tmp, sizeof(tmp), "%" PRIx64, maxaddr);
 	return map_browser__run(&mb);
 }
diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c
index cfa55d6..bdd3347 100644
--- a/tools/perf/util/values.c
+++ b/tools/perf/util/values.c
@@ -150,7 +150,7 @@ static void perf_read_values__display_pretty(FILE *fp,
 		if (width > tidwidth)
 			tidwidth = width;
 		for (j = 0; j < values->counters; j++) {
-			width = snprintf(NULL, 0, "%Lu", values->value[i][j]);
+			width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]);
 			if (width > counterwidth[j])
 				counterwidth[j] = width;
 		}
@@ -165,7 +165,7 @@ static void perf_read_values__display_pretty(FILE *fp,
 		fprintf(fp, "  %*d  %*d", pidwidth, values->pid[i],
 			tidwidth, values->tid[i]);
 		for (j = 0; j < values->counters; j++)
-			fprintf(fp, "  %*Lu",
+			fprintf(fp, "  %*" PRIu64,
 				counterwidth[j], values->value[i][j]);
 		fprintf(fp, "\n");
 	}
@@ -196,13 +196,13 @@ static void perf_read_values__display_raw(FILE *fp,
 		width = strlen(values->countername[j]);
 		if (width > namewidth)
 			namewidth = width;
-		width = snprintf(NULL, 0, "%llx", values->counterrawid[j]);
+		width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]);
 		if (width > rawwidth)
 			rawwidth = width;
 	}
 	for (i = 0; i < values->threads; i++) {
 		for (j = 0; j < values->counters; j++) {
-			width = snprintf(NULL, 0, "%Lu", values->value[i][j]);
+			width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]);
 			if (width > countwidth)
 				countwidth = width;
 		}
@@ -214,7 +214,7 @@ static void perf_read_values__display_raw(FILE *fp,
 		countwidth, "Count");
 	for (i = 0; i < values->threads; i++)
 		for (j = 0; j < values->counters; j++)
-			fprintf(fp, "  %*d  %*d  %*s  %*llx  %*Lu\n",
+			fprintf(fp, "  %*d  %*d  %*s  %*" PRIx64 "  %*" PRIu64,
 				pidwidth, values->pid[i],
 				tidwidth, values->tid[i],
 				namewidth, values->countername[j],
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH] perftools: Fix build error
  2011-01-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 +++--
 tools/perf/util/header.c            |    4 ++--
 tools/perf/util/hist.c              |   17 +++++++++--------
 tools/perf/util/map.c               |    3 ++-
 tools/perf/util/parse-events.c      |    2 +-
 tools/perf/util/probe-event.c       |    2 +-
 tools/perf/util/session.c           |   28 +++++++++++++++-------------
 tools/perf/util/svghelper.c         |    5 +++--
 tools/perf/util/symbol.c            |    9 +++++----
 tools/perf/util/types.h             |   10 ++++++----
 tools/perf/util/ui/browsers/hists.c |    2 +-
 tools/perf/util/ui/browsers/map.c   |    5 +++--
 tools/perf/util/values.c            |   10 +++++-----
 23 files changed, 93 insertions(+), 82 deletions(-)

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index c056cdc..8879463 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -212,7 +212,7 @@ get_source_line(struct hist_entry *he, int len, const char *filename)
 			continue;
 
 		offset = start + i;
-		sprintf(cmd, "addr2line -e %s %016llx", filename, offset);
+		sprintf(cmd, "addr2line -e %s %016" PRIx64, filename, offset);
 		fp = popen(cmd, "r");
 		if (!fp)
 			continue;
@@ -270,9 +270,9 @@ static void hist_entry__print_hits(struct hist_entry *self)
 
 	for (offset = 0; offset < len; ++offset)
 		if (h->ip[offset] != 0)
-			printf("%*Lx: %Lu\n", BITS_PER_LONG / 2,
+			printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2,
 			       sym->start + offset, h->ip[offset]);
-	printf("%*s: %Lu\n", BITS_PER_LONG / 2, "h->sum", h->sum);
+	printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum);
 }
 
 static int hist_entry__tty_annotate(struct hist_entry *he)
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c
index def7ddc..d97256d 100644
--- a/tools/perf/builtin-kmem.c
+++ b/tools/perf/builtin-kmem.c
@@ -371,10 +371,10 @@ static void __print_result(struct rb_root *root, struct perf_session *session,
 			addr = data->ptr;
 
 		if (sym != NULL)
-			snprintf(buf, sizeof(buf), "%s+%Lx", sym->name,
+			snprintf(buf, sizeof(buf), "%s+%" PRIx64 "", sym->name,
 				 addr - map->unmap_ip(map, sym->start));
 		else
-			snprintf(buf, sizeof(buf), "%#Lx", addr);
+			snprintf(buf, sizeof(buf), "%#" PRIx64 "", addr);
 		printf(" %-34s |", buf);
 
 		printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n",
diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
index b9c6e54..2b36def 100644
--- a/tools/perf/builtin-lock.c
+++ b/tools/perf/builtin-lock.c
@@ -782,9 +782,9 @@ static void print_result(void)
 		pr_info("%10u ", st->nr_acquired);
 		pr_info("%10u ", st->nr_contended);
 
-		pr_info("%15llu ", st->wait_time_total);
-		pr_info("%15llu ", st->wait_time_max);
-		pr_info("%15llu ", st->wait_time_min == ULLONG_MAX ?
+		pr_info("%15" PRIu64 " ", st->wait_time_total);
+		pr_info("%15" PRIu64 " ", st->wait_time_max);
+		pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ?
 		       0 : st->wait_time_min);
 		pr_info("\n");
 	}
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index fcd29e8..b2f729f 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -817,7 +817,7 @@ static int __cmd_record(int argc, const char **argv)
 	 * Approximate RIP event size: 24 bytes.
 	 */
 	fprintf(stderr,
-		"[ perf record: Captured and wrote %.3f MB %s (~%lld samples) ]\n",
+		"[ perf record: Captured and wrote %.3f MB %s (~%" PRIu64 " samples) ]\n",
 		(double)bytes_written / 1024.0 / 1024.0,
 		output_name,
 		bytes_written / 24);
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 75183a4..c27e31f 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -197,7 +197,7 @@ static int process_read_event(event_t *event, struct sample_data *sample __used,
 					   event->read.value);
 	}
 
-	dump_printf(": %d %d %s %Lu\n", event->read.pid, event->read.tid,
+	dump_printf(": %d %d %s %" PRIu64 "\n", event->read.pid, event->read.tid,
 		    attr ? __event_name(attr->type, attr->config) : "FAIL",
 		    event->read.value);
 
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c
index 29e7ffd..29acb89 100644
--- a/tools/perf/builtin-sched.c
+++ b/tools/perf/builtin-sched.c
@@ -193,7 +193,7 @@ static void calibrate_run_measurement_overhead(void)
 	}
 	run_measurement_overhead = min_delta;
 
-	printf("run measurement overhead: %Ld nsecs\n", min_delta);
+	printf("run measurement overhead: %" PRIu64 " nsecs\n", min_delta);
 }
 
 static void calibrate_sleep_measurement_overhead(void)
@@ -211,7 +211,7 @@ static void calibrate_sleep_measurement_overhead(void)
 	min_delta -= 10000;
 	sleep_measurement_overhead = min_delta;
 
-	printf("sleep measurement overhead: %Ld nsecs\n", min_delta);
+	printf("sleep measurement overhead: %" PRIu64 " nsecs\n", min_delta);
 }
 
 static struct sched_atom *
@@ -617,13 +617,13 @@ static void test_calibrations(void)
 	burn_nsecs(1e6);
 	T1 = get_nsecs();
 
-	printf("the run test took %Ld nsecs\n", T1-T0);
+	printf("the run test took %" PRIu64 " nsecs\n", T1 - T0);
 
 	T0 = get_nsecs();
 	sleep_nsecs(1e6);
 	T1 = get_nsecs();
 
-	printf("the sleep test took %Ld nsecs\n", T1-T0);
+	printf("the sleep test took %" PRIu64 " nsecs\n", T1 - T0);
 }
 
 #define FILL_FIELD(ptr, field, event, data)	\
@@ -816,10 +816,10 @@ replay_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 	if (verbose) {
-		printf(" ... switch from %s/%d to %s/%d [ran %Ld nsecs]\n",
+		printf(" ... switch from %s/%d to %s/%d [ran %" PRIu64 " nsecs]\n",
 			switch_event->prev_comm, switch_event->prev_pid,
 			switch_event->next_comm, switch_event->next_pid,
 			delta);
@@ -1048,7 +1048,7 @@ latency_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 
 	sched_out = perf_session__findnew(session, switch_event->prev_pid);
@@ -1221,7 +1221,7 @@ static void output_lat_thread(struct work_atoms *work_list)
 
 	avg = work_list->total_lat / work_list->nb_atoms;
 
-	printf("|%11.3f ms |%9llu | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n",
+	printf("|%11.3f ms |%9" PRIu64 " | avg:%9.3f ms | max:%9.3f ms | max at: %9.6f s\n",
 	      (double)work_list->total_runtime / 1e6,
 		 work_list->nb_atoms, (double)avg / 1e6,
 		 (double)work_list->max_lat / 1e6,
@@ -1423,7 +1423,7 @@ map_switch_event(struct trace_switch_event *switch_event,
 		delta = 0;
 
 	if (delta < 0)
-		die("hm, delta: %Ld < 0 ?\n", delta);
+		die("hm, delta: %" PRIu64 " < 0 ?\n", delta);
 
 
 	sched_out = perf_session__findnew(session, switch_event->prev_pid);
@@ -1713,7 +1713,7 @@ static void __cmd_lat(void)
 	}
 
 	printf(" -----------------------------------------------------------------------------------------\n");
-	printf("  TOTAL:                |%11.3f ms |%9Ld |\n",
+	printf("  TOTAL:                |%11.3f ms |%9" PRIu64 " |\n",
 		(double)all_runtime/1e6, all_count);
 
 	printf(" ---------------------------------------------------\n");
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 150a606..b766c2a 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -77,8 +77,8 @@ static int process_sample_event(event_t *event, struct sample_data *sample,
 	if (session->sample_type & PERF_SAMPLE_RAW) {
 		if (debug_mode) {
 			if (sample->time < last_timestamp) {
-				pr_err("Samples misordered, previous: %llu "
-					"this: %llu\n", last_timestamp,
+				pr_err("Samples misordered, previous: %" PRIu64
+					" this: %" PRIu64 "\n", last_timestamp,
 					sample->time);
 				nr_unordered++;
 			}
@@ -126,7 +126,7 @@ static int __cmd_script(struct perf_session *session)
 	ret = perf_session__process_events(session, &event_ops);
 
 	if (debug_mode)
-		pr_err("Misordered timestamps: %llu\n", nr_unordered);
+		pr_err("Misordered timestamps: %" PRIu64 "\n", nr_unordered);
 
 	return ret;
 }
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 0ff11d9..a482a19 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -206,8 +206,8 @@ static int read_counter_aggr(struct perf_evsel *counter)
 		update_stats(&ps->res_stats[i], count[i]);
 
 	if (verbose) {
-		fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter),
-				count[0], count[1], count[2]);
+		fprintf(stderr, "%s: %" PRIu64 " %" PRIu64 " %" PRIu64 "\n",
+			event_name(counter), count[0], count[1], count[2]);
 	}
 
 	/*
diff --git a/tools/perf/builtin-test.c b/tools/perf/builtin-test.c
index 0e01834..5dcdba6 100644
--- a/tools/perf/builtin-test.c
+++ b/tools/perf/builtin-test.c
@@ -146,7 +146,7 @@ next_pair:
 				if (llabs(skew) < page_size)
 					continue;
 
-				pr_debug("%#Lx: diff end addr for %s v: %#Lx k: %#Lx\n",
+				pr_debug("%#" PRIx64 ": diff end addr for %s v: %#" PRIx64 " k: %#" PRIx64 "\n",
 					 sym->start, sym->name, sym->end, pair->end);
 			} else {
 				struct rb_node *nnd;
@@ -168,11 +168,11 @@ detour:
 					goto detour;
 				}
 
-				pr_debug("%#Lx: diff name v: %s k: %s\n",
+				pr_debug("%#" PRIx64 ": diff name v: %s k: %s\n",
 					 sym->start, sym->name, pair->name);
 			}
 		} else
-			pr_debug("%#Lx: %s not on kallsyms\n", sym->start, sym->name);
+			pr_debug("%#" PRIx64 ": %s not on kallsyms\n", sym->start, sym->name);
 
 		err = -1;
 	}
@@ -211,10 +211,10 @@ detour:
 
 		if (pair->start == pos->start) {
 			pair->priv = 1;
-			pr_info(" %Lx-%Lx %Lx %s in kallsyms as",
+			pr_info(" %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as",
 				pos->start, pos->end, pos->pgoff, pos->dso->name);
 			if (pos->pgoff != pair->pgoff || pos->end != pair->end)
-				pr_info(": \n*%Lx-%Lx %Lx",
+				pr_info(": \n*%" PRIx64 "-%" PRIx64 " %" PRIx64 "",
 					pair->start, pair->end, pair->pgoff);
 			pr_info(" %s\n", pair->dso->name);
 			pair->priv = 1;
@@ -307,7 +307,7 @@ static int test__open_syscall_event(void)
 	}
 
 	if (evsel->counts->cpu[0].val != nr_open_calls) {
-		pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %Ld\n",
+		pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls, got %" PRIu64 "\n",
 			 nr_open_calls, evsel->counts->cpu[0].val);
 		goto out_close_fd;
 	}
@@ -421,7 +421,7 @@ static int test__open_syscall_event_on_all_cpus(void)
 
 		expected = nr_open_calls + cpu;
 		if (evsel->counts->cpu[cpu].val != expected) {
-			pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %Ld\n",
+			pr_debug("perf_evsel__read_on_cpu: expected to intercept %d calls on cpu %d, got %" PRIu64 "\n",
 				 expected, cpus->map[cpu], evsel->counts->cpu[cpu].val);
 			goto out_close_fd;
 		}
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 05344c6..b6998e0 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -40,6 +40,7 @@
 #include <stdio.h>
 #include <termios.h>
 #include <unistd.h>
+#include <inttypes.h>
 
 #include <errno.h>
 #include <time.h>
@@ -214,7 +215,7 @@ static int parse_source(struct sym_entry *syme)
 	len = sym->end - sym->start;
 
 	sprintf(command,
-		"objdump --start-address=%#0*Lx --stop-address=%#0*Lx -dS %s",
+		"objdump --start-address=%#0*" PRIx64 " --stop-address=%#0*" PRIx64 " -dS %s",
 		BITS_PER_LONG / 4, map__rip_2objdump(map, sym->start),
 		BITS_PER_LONG / 4, map__rip_2objdump(map, sym->end), path);
 
@@ -308,7 +309,7 @@ static void lookup_sym_source(struct sym_entry *syme)
 	struct source_line *line;
 	char pattern[PATTERN_LEN + 1];
 
-	sprintf(pattern, "%0*Lx <", BITS_PER_LONG / 4,
+	sprintf(pattern, "%0*" PRIx64 " <", BITS_PER_LONG / 4,
 		map__rip_2objdump(syme->map, symbol->start));
 
 	pthread_mutex_lock(&syme->src->lock);
@@ -537,7 +538,7 @@ static void print_sym_table(void)
 	if (nr_counters == 1 || !display_weighted) {
 		struct perf_evsel *first;
 		first = list_entry(evsel_list.next, struct perf_evsel, node);
-		printf("%Ld", first->attr.sample_period);
+		printf("%" PRIu64, (uint64_t)first->attr.sample_period);
 		if (freq)
 			printf("Hz ");
 		else
@@ -640,7 +641,7 @@ static void print_sym_table(void)
 
 		percent_color_fprintf(stdout, "%4.1f%%", pcnt);
 		if (verbose)
-			printf(" %016llx", sym->start);
+			printf(" %016" PRIx64, sym->start);
 		printf(" %-*.*s", sym_width, sym_width, sym->name);
 		printf(" %-*.*s\n", dso_width, dso_width,
 		       dso_width >= syme->map->dso->long_name_len ?
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 2302ec0..1478ab4 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -459,7 +459,8 @@ int event__process_comm(event_t *self, struct sample_data *sample __used,
 int event__process_lost(event_t *self, struct sample_data *sample __used,
 			struct perf_session *session)
 {
-	dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost);
+	dump_printf(": id:%" PRIu64 ": lost:%" PRIu64 "\n",
+		    self->lost.id, self->lost.lost);
 	session->hists.stats.total_lost += self->lost.lost;
 	return 0;
 }
@@ -575,7 +576,7 @@ int event__process_mmap(event_t *self, struct sample_data *sample __used,
 	u8 cpumode = self->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
 	int ret = 0;
 
-	dump_printf(" %d/%d: [%#Lx(%#Lx) @ %#Lx]: %s\n",
+	dump_printf(" %d/%d: [%#" PRIx64 "(%#" PRIx64 ") @ %#" PRIx64 "]: %s\n",
 			self->mmap.pid, self->mmap.tid, self->mmap.start,
 			self->mmap.len, self->mmap.pgoff, self->mmap.filename);
 
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 989fa2d..f6a929e7 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -798,8 +798,8 @@ static int perf_file_section__process(struct perf_file_section *self,
 				      int feat, int fd)
 {
 	if (lseek(fd, self->offset, SEEK_SET) == (off_t)-1) {
-		pr_debug("Failed to lseek to %Ld offset for feature %d, "
-			 "continuing...\n", self->offset, feat);
+		pr_debug("Failed to lseek to %" PRIu64 " offset for feature "
+			  "%d, continuing...\n", self->offset, feat);
 		return 0;
 	}
 
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index c749ba6..32f4f1f 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -636,13 +636,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size,
 			}
 		}
 	} else
-		ret = snprintf(s, size, sep ? "%lld" : "%12lld ", period);
+		ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period);
 
 	if (symbol_conf.show_nr_samples) {
 		if (sep)
-			ret += snprintf(s + ret, size - ret, "%c%lld", *sep, period);
+			ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period);
 		else
-			ret += snprintf(s + ret, size - ret, "%11lld", period);
+			ret += snprintf(s + ret, size - ret, "%11" PRIu64, period);
 	}
 
 	if (pair_hists) {
@@ -971,7 +971,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip)
 	sym_size = sym->end - sym->start;
 	offset = ip - sym->start;
 
-	pr_debug3("%s: ip=%#Lx\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip));
+	pr_debug3("%s: ip=%#" PRIx64 "\n", __func__, self->ms.map->unmap_ip(self->ms.map, ip));
 
 	if (offset >= sym_size)
 		return 0;
@@ -980,8 +980,9 @@ int hist_entry__inc_addr_samples(struct hist_entry *self, u64 ip)
 	h->sum++;
 	h->ip[offset]++;
 
-	pr_debug3("%#Lx %s: period++ [ip: %#Lx, %#Lx] => %Ld\n", self->ms.sym->start,
-		  self->ms.sym->name, ip, ip - self->ms.sym->start, h->ip[offset]);
+	pr_debug3("%#" PRIx64 " %s: period++ [ip: %#" PRIx64 ", %#" PRIx64
+		  "] => %" PRIu64 "\n", self->ms.sym->start, self->ms.sym->name,
+		  ip, ip - self->ms.sym->start, h->ip[offset]);
 	return 0;
 }
 
@@ -1132,7 +1133,7 @@ fallback:
 		goto out_free_filename;
 	}
 
-	pr_debug("%s: filename=%s, sym=%s, start=%#Lx, end=%#Lx\n", __func__,
+	pr_debug("%s: filename=%s, sym=%s, start=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__,
 		 filename, sym->name, map->unmap_ip(map, sym->start),
 		 map->unmap_ip(map, sym->end));
 
@@ -1142,7 +1143,7 @@ fallback:
 		 dso, dso->long_name, sym, sym->name);
 
 	snprintf(command, sizeof(command),
-		 "objdump --start-address=0x%016Lx --stop-address=0x%016Lx -dS -C %s|grep -v %s|expand",
+		 "objdump --start-address=0x%016" PRIx64 " --stop-address=0x%016" PRIx64 " -dS -C %s|grep -v %s|expand",
 		 map__rip_2objdump(map, sym->start),
 		 map__rip_2objdump(map, sym->end),
 		 symfs_filename, filename);
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index 3a7eb6e..a16ecab 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -1,5 +1,6 @@
 #include "symbol.h"
 #include <errno.h>
+#include <inttypes.h>
 #include <limits.h>
 #include <stdlib.h>
 #include <string.h>
@@ -195,7 +196,7 @@ int map__overlap(struct map *l, struct map *r)
 
 size_t map__fprintf(struct map *self, FILE *fp)
 {
-	return fprintf(fp, " %Lx-%Lx %Lx %s\n",
+	return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s\n",
 		       self->start, self->end, self->pgoff, self->dso->name);
 }
 
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index bc2732e..135f69b 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -279,7 +279,7 @@ const char *__event_name(int type, u64 config)
 	static char buf[32];
 
 	if (type == PERF_TYPE_RAW) {
-		sprintf(buf, "raw 0x%llx", config);
+		sprintf(buf, "raw 0x%" PRIx64, config);
 		return buf;
 	}
 
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 128aaab..6e29d9c 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -172,7 +172,7 @@ static int kprobe_convert_to_perf_probe(struct probe_trace_point *tp,
 	sym = __find_kernel_function_by_name(tp->symbol, &map);
 	if (sym) {
 		addr = map->unmap_ip(map, sym->start + tp->offset);
-		pr_debug("try to find %s+%ld@%llx\n", tp->symbol,
+		pr_debug("try to find %s+%ld@%" PRIx64 "\n", tp->symbol,
 			 tp->offset, addr);
 		ret = find_perf_probe_point((unsigned long)addr, pp);
 	}
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 313dac2..105f00b 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -652,10 +652,11 @@ static void callchain__printf(struct sample_data *sample)
 {
 	unsigned int i;
 
-	printf("... chain: nr:%Lu\n", sample->callchain->nr);
+	printf("... chain: nr:%" PRIu64 "\n", sample->callchain->nr);
 
 	for (i = 0; i < sample->callchain->nr; i++)
-		printf("..... %2d: %016Lx\n", i, sample->callchain->ips[i]);
+		printf("..... %2d: %016" PRIx64 "\n",
+		       i, sample->callchain->ips[i]);
 }
 
 static void perf_session__print_tstamp(struct perf_session *session,
@@ -672,7 +673,7 @@ static void perf_session__print_tstamp(struct perf_session *session,
 		printf("%u ", sample->cpu);
 
 	if (session->sample_type & PERF_SAMPLE_TIME)
-		printf("%Lu ", sample->time);
+		printf("%" PRIu64 " ", sample->time);
 }
 
 static void dump_event(struct perf_session *session, event_t *event,
@@ -681,16 +682,16 @@ static void dump_event(struct perf_session *session, event_t *event,
 	if (!dump_trace)
 		return;
 
-	printf("\n%#Lx [%#x]: event: %d\n", file_offset, event->header.size,
-	       event->header.type);
+	printf("\n%#" PRIx64 " [%#x]: event: %d\n",
+	       file_offset, event->header.size, event->header.type);
 
 	trace_event(event);
 
 	if (sample)
 		perf_session__print_tstamp(session, event, sample);
 
-	printf("%#Lx [%#x]: PERF_RECORD_%s", file_offset, event->header.size,
-	       event__get_event_name(event->header.type));
+	printf("%#" PRIx64 " [%#x]: PERF_RECORD_%s", file_offset,
+	       event->header.size, event__get_event_name(event->header.type));
 }
 
 static void dump_sample(struct perf_session *session, event_t *event,
@@ -699,8 +700,9 @@ static void dump_sample(struct perf_session *session, event_t *event,
 	if (!dump_trace)
 		return;
 
-	printf("(IP, %d): %d/%d: %#Lx period: %Ld\n", event->header.misc,
-	       sample->pid, sample->tid, sample->ip, sample->period);
+	printf("(IP, %d): %d/%d: %#" PRIx64 " period: %" PRIu64 "\n",
+	       event->header.misc, sample->pid, sample->tid, sample->ip,
+	       sample->period);
 
 	if (session->sample_type & PERF_SAMPLE_CALLCHAIN)
 		callchain__printf(sample);
@@ -843,8 +845,8 @@ static void perf_session__warn_about_errors(const struct perf_session *session,
 {
 	if (ops->lost == event__process_lost &&
 	    session->hists.stats.total_lost != 0) {
-		ui__warning("Processed %Lu events and LOST %Lu!\n\n"
-			    "Check IO/CPU overload!\n\n",
+		ui__warning("Processed %" PRIu64 " events and LOST %" PRIu64
+			    "!\n\nCheck IO/CPU overload!\n\n",
 			    session->hists.stats.total_period,
 			    session->hists.stats.total_lost);
 	}
@@ -918,7 +920,7 @@ more:
 
 	if (size == 0 ||
 	    (skip = perf_session__process_event(self, &event, ops, head)) < 0) {
-		dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n",
+		dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n",
 			    head, event.header.size, event.header.type);
 		/*
 		 * assume we lost track of the stream, check alignment, and
@@ -1023,7 +1025,7 @@ more:
 
 	if (size == 0 ||
 	    perf_session__process_event(session, event, ops, file_pos) < 0) {
-		dump_printf("%#Lx [%#x]: skipping unknown header type: %d\n",
+		dump_printf("%#" PRIx64 " [%#x]: skipping unknown header type: %d\n",
 			    file_offset + head, event->header.size,
 			    event->header.type);
 		/*
diff --git a/tools/perf/util/svghelper.c b/tools/perf/util/svghelper.c
index b3637db..805220a 100644
--- a/tools/perf/util/svghelper.c
+++ b/tools/perf/util/svghelper.c
@@ -12,6 +12,7 @@
  * of the License.
  */
 
+#include <inttypes.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -94,7 +95,7 @@ void open_svg(const char *filename, int cpus, int rows, u64 start, u64 end)
 
 	total_height = (1 + rows + cpu2slot(cpus)) * SLOT_MULT;
 	fprintf(svgfile, "<?xml version=\"1.0\" standalone=\"no\"?> \n");
-	fprintf(svgfile, "<svg width=\"%i\" height=\"%llu\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height);
+	fprintf(svgfile, "<svg width=\"%i\" height=\"%" PRIu64 "\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n", svg_page_width, total_height);
 
 	fprintf(svgfile, "<defs>\n  <style type=\"text/css\">\n    <![CDATA[\n");
 
@@ -483,7 +484,7 @@ void svg_time_grid(void)
 			color = 128;
 		}
 
-		fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%llu\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n",
+		fprintf(svgfile, "<line x1=\"%4.8f\" y1=\"%4.2f\" x2=\"%4.8f\" y2=\"%" PRIu64 "\" style=\"stroke:rgb(%i,%i,%i);stroke-width:%1.3f\"/>\n",
 			time2pixels(i), SLOT_MULT/2, time2pixels(i), total_height, color, color, color, thickness);
 
 		i += 10000000;
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index e32478e..7821d0e 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -11,6 +11,7 @@
 #include <sys/param.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <inttypes.h>
 #include "build-id.h"
 #include "debug.h"
 #include "symbol.h"
@@ -153,7 +154,7 @@ static struct symbol *symbol__new(u64 start, u64 len, u8 binding,
 	self->binding = binding;
 	self->namelen = namelen - 1;
 
-	pr_debug4("%s: %s %#Lx-%#Lx\n", __func__, name, start, self->end);
+	pr_debug4("%s: %s %#" PRIx64 "-%#" PRIx64 "\n", __func__, name, start, self->end);
 
 	memcpy(self->name, name, namelen);
 
@@ -167,7 +168,7 @@ void symbol__delete(struct symbol *self)
 
 static size_t symbol__fprintf(struct symbol *self, FILE *fp)
 {
-	return fprintf(fp, " %llx-%llx %c %s\n",
+	return fprintf(fp, " %" PRIx64 "-%" PRIx64 " %c %s\n",
 		       self->start, self->end,
 		       self->binding == STB_GLOBAL ? 'g' :
 		       self->binding == STB_LOCAL  ? 'l' : 'w',
@@ -1215,8 +1216,8 @@ static int dso__load_sym(struct dso *self, struct map *map, const char *name,
 		}
 
 		if (curr_dso->adjust_symbols) {
-			pr_debug4("%s: adjusting symbol: st_value: %#Lx "
-				  "sh_addr: %#Lx sh_offset: %#Lx\n", __func__,
+			pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " "
+				  "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", __func__,
 				  (u64)sym.st_value, (u64)shdr.sh_addr,
 				  (u64)shdr.sh_offset);
 			sym.st_value -= shdr.sh_addr - shdr.sh_offset;
diff --git a/tools/perf/util/types.h b/tools/perf/util/types.h
index 7d6b833..5f3689a 100644
--- a/tools/perf/util/types.h
+++ b/tools/perf/util/types.h
@@ -1,12 +1,14 @@
 #ifndef __PERF_TYPES_H
 #define __PERF_TYPES_H
 
+#include <stdint.h>
+
 /*
- * We define u64 as unsigned long long for every architecture
- * so that we can print it with %Lx without getting warnings.
+ * We define u64 as uint64_t for every architecture
+ * so that we can print it with "%"PRIx64 without getting warnings.
  */
-typedef unsigned long long u64;
-typedef signed long long   s64;
+typedef uint64_t	   u64;
+typedef int64_t		   s64;
 typedef unsigned int	   u32;
 typedef signed int	   s32;
 typedef unsigned short	   u16;
diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c
index ebda8c3..60c463c 100644
--- a/tools/perf/util/ui/browsers/hists.c
+++ b/tools/perf/util/ui/browsers/hists.c
@@ -350,7 +350,7 @@ static char *callchain_list__sym_name(struct callchain_list *self,
 	if (self->ms.sym)
 		return self->ms.sym->name;
 
-	snprintf(bf, bfsize, "%#Lx", self->ip);
+	snprintf(bf, bfsize, "%#" PRIx64, self->ip);
 	return bf;
 }
 
diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c
index e35437d..e515836 100644
--- a/tools/perf/util/ui/browsers/map.c
+++ b/tools/perf/util/ui/browsers/map.c
@@ -1,5 +1,6 @@
 #include "../libslang.h"
 #include <elf.h>
+#include <inttypes.h>
 #include <sys/ttydefaults.h>
 #include <ctype.h>
 #include <string.h>
@@ -57,7 +58,7 @@ static void map_browser__write(struct ui_browser *self, void *nd, int row)
 	int width;
 
 	ui_browser__set_percent_color(self, 0, current_entry);
-	slsmg_printf("%*llx %*llx %c ",
+	slsmg_printf("%*" PRIx64 " %*" PRIx64 " %c ",
 		     mb->addrlen, sym->start, mb->addrlen, sym->end,
 		     sym->binding == STB_GLOBAL ? 'g' :
 		     sym->binding == STB_LOCAL  ? 'l' : 'w');
@@ -150,6 +151,6 @@ int map__browse(struct map *self)
 		++mb.b.nr_entries;
 	}
 
-	mb.addrlen = snprintf(tmp, sizeof(tmp), "%llx", maxaddr);
+	mb.addrlen = snprintf(tmp, sizeof(tmp), "%" PRIx64, maxaddr);
 	return map_browser__run(&mb);
 }
diff --git a/tools/perf/util/values.c b/tools/perf/util/values.c
index cfa55d6..bdd3347 100644
--- a/tools/perf/util/values.c
+++ b/tools/perf/util/values.c
@@ -150,7 +150,7 @@ static void perf_read_values__display_pretty(FILE *fp,
 		if (width > tidwidth)
 			tidwidth = width;
 		for (j = 0; j < values->counters; j++) {
-			width = snprintf(NULL, 0, "%Lu", values->value[i][j]);
+			width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]);
 			if (width > counterwidth[j])
 				counterwidth[j] = width;
 		}
@@ -165,7 +165,7 @@ static void perf_read_values__display_pretty(FILE *fp,
 		fprintf(fp, "  %*d  %*d", pidwidth, values->pid[i],
 			tidwidth, values->tid[i]);
 		for (j = 0; j < values->counters; j++)
-			fprintf(fp, "  %*Lu",
+			fprintf(fp, "  %*" PRIu64,
 				counterwidth[j], values->value[i][j]);
 		fprintf(fp, "\n");
 	}
@@ -196,13 +196,13 @@ static void perf_read_values__display_raw(FILE *fp,
 		width = strlen(values->countername[j]);
 		if (width > namewidth)
 			namewidth = width;
-		width = snprintf(NULL, 0, "%llx", values->counterrawid[j]);
+		width = snprintf(NULL, 0, "%" PRIx64, values->counterrawid[j]);
 		if (width > rawwidth)
 			rawwidth = width;
 	}
 	for (i = 0; i < values->threads; i++) {
 		for (j = 0; j < values->counters; j++) {
-			width = snprintf(NULL, 0, "%Lu", values->value[i][j]);
+			width = snprintf(NULL, 0, "%" PRIu64, values->value[i][j]);
 			if (width > countwidth)
 				countwidth = width;
 		}
@@ -214,7 +214,7 @@ static void perf_read_values__display_raw(FILE *fp,
 		countwidth, "Count");
 	for (i = 0; i < values->threads; i++)
 		for (j = 0; j < values->counters; j++)
-			fprintf(fp, "  %*d  %*d  %*s  %*llx  %*Lu\n",
+			fprintf(fp, "  %*d  %*d  %*s  %*" PRIx64 "  %*" PRIu64,
 				pidwidth, values->pid[i],
 				tidwidth, values->tid[i],
 				namewidth, values->countername[j],

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* 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).