Skip to content

Commit ded2e51

Browse files
pierregondoisacmel
authored andcommitted
perf tools: Cast (struct timeval).tv_sec when printing
The musl-libc [1] defines (struct timeval).tv_sec as a 'long long' for arm and other architectures. The default build having a '-Wformat' flag, not casting the field when printing prevents from building perf. This patch casts the (struct timeval).tv_sec fields to the expected format. [1] git://git.musl-libc.org/musl Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com> Acked-by: Jiri Olsa <jolsa@redhat.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Douglas.raillard@arm.com Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20210224182410.5366-1-Pierre.Gondois@arm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 21b7e35 commit ded2e51

File tree

5 files changed

+9
-9
lines changed

5 files changed

+9
-9
lines changed

tools/perf/bench/sched-messaging.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,11 +309,11 @@ int bench_sched_messaging(int argc, const char **argv)
309309
num_groups, num_groups * 2 * num_fds,
310310
thread_mode ? "threads" : "processes");
311311
printf(" %14s: %lu.%03lu [sec]\n", "Total time",
312-
diff.tv_sec,
312+
(unsigned long) diff.tv_sec,
313313
(unsigned long) (diff.tv_usec / USEC_PER_MSEC));
314314
break;
315315
case BENCH_FORMAT_SIMPLE:
316-
printf("%lu.%03lu\n", diff.tv_sec,
316+
printf("%lu.%03lu\n", (unsigned long) diff.tv_sec,
317317
(unsigned long) (diff.tv_usec / USEC_PER_MSEC));
318318
break;
319319
default:

tools/perf/bench/sched-pipe.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ int bench_sched_pipe(int argc, const char **argv)
156156
result_usec += diff.tv_usec;
157157

158158
printf(" %14s: %lu.%03lu [sec]\n\n", "Total time",
159-
diff.tv_sec,
159+
(unsigned long) diff.tv_sec,
160160
(unsigned long) (diff.tv_usec / USEC_PER_MSEC));
161161

162162
printf(" %14lf usecs/op\n",
@@ -168,7 +168,7 @@ int bench_sched_pipe(int argc, const char **argv)
168168

169169
case BENCH_FORMAT_SIMPLE:
170170
printf("%lu.%03lu\n",
171-
diff.tv_sec,
171+
(unsigned long) diff.tv_sec,
172172
(unsigned long) (diff.tv_usec / USEC_PER_MSEC));
173173
break;
174174

tools/perf/bench/syscall.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ int bench_syscall_basic(int argc, const char **argv)
5454
result_usec += diff.tv_usec;
5555

5656
printf(" %14s: %lu.%03lu [sec]\n\n", "Total time",
57-
diff.tv_sec,
57+
(unsigned long) diff.tv_sec,
5858
(unsigned long) (diff.tv_usec/1000));
5959

6060
printf(" %14lf usecs/op\n",
@@ -66,7 +66,7 @@ int bench_syscall_basic(int argc, const char **argv)
6666

6767
case BENCH_FORMAT_SIMPLE:
6868
printf("%lu.%03lu\n",
69-
diff.tv_sec,
69+
(unsigned long) diff.tv_sec,
7070
(unsigned long) (diff.tv_usec / 1000));
7171
break;
7272

tools/perf/util/header.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1618,8 +1618,8 @@ static void print_clock_data(struct feat_fd *ff, FILE *fp)
16181618

16191619
fprintf(fp, "# clockid: %s (%u)\n", clockid_name(clockid), clockid);
16201620
fprintf(fp, "# reference time: %s = %ld.%06d (TOD) = %ld.%09ld (%s)\n",
1621-
tstr, tod_ns.tv_sec, (int) tod_ns.tv_usec,
1622-
clockid_ns.tv_sec, clockid_ns.tv_nsec,
1621+
tstr, (long) tod_ns.tv_sec, (int) tod_ns.tv_usec,
1622+
(long) clockid_ns.tv_sec, clockid_ns.tv_nsec,
16231623
clockid_name(clockid));
16241624
}
16251625

tools/perf/util/stat-display.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -983,7 +983,7 @@ static void print_interval(struct perf_stat_config *config,
983983
if (config->interval_clear)
984984
puts(CONSOLE_CLEAR);
985985

986-
sprintf(prefix, "%6lu.%09lu%s", ts->tv_sec, ts->tv_nsec, config->csv_sep);
986+
sprintf(prefix, "%6lu.%09lu%s", (unsigned long) ts->tv_sec, ts->tv_nsec, config->csv_sep);
987987

988988
if ((num_print_interval == 0 && !config->csv_output) || config->interval_clear) {
989989
switch (config->aggr_mode) {

0 commit comments

Comments
 (0)