lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 22 Jan 2011 08:54:07 +0000
From:	Denis Kirjanov <dkirjanov@...nel.org>
To:	Arnaldo Carvalho de Melo <acme@...stprotocols.net>
Cc:	Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org,
	a.p.zijlstra@...llo.nl, paulus@...ba.org
Subject: Re: [PATCH] perftools: Fix build error

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@...icio 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@...icio linux]$ gcc -v
> > gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC) 
> > [acme@...icio linux]$ cat /etc/fedora-release 
> > Fedora release 14 (Laughlin)
> > [acme@...icio 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@...icio 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@...icio 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@...x\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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ