[PATCH] perf tools: Fix build failures on ppc64le
From: Namhyung Kim
Date: Thu Oct 10 2024 - 19:57:59 EST
util/evsel.c: In function 'store_event':
util/evsel.c:138:50: error: format '%llu' expects argument of type 'long long unsigned int',
but argument 6 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]
138 | snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
| ~~~^
| |
| long long unsigned int
| %lu
139 | attr->type, attr->config, fd);
| ~~~~~~~~~~~~
| |
| __u64 {aka long unsigned int}
util/evsel.c:147:41: error: format '%llu' expects argument of type 'long long unsigned int',
but argument 4 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]
147 | if (fprintf(file, "[event-%d-%llu-%d]\n",
| ~~~^
| |
| long long unsigned int
| %lu
148 | attr->type, attr->config, fd) < 0) {
| ~~~~~~~~~~~~
| |
| __u64 {aka long unsigned int}
util/evsel.c:164:33: error: format '%llu' expects argument of type 'long long unsigned int',
but argument 3 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]
164 | WRITE_ASS(config, "llu");
| ^
util/evsel.c:122:28: note: in definition of macro '__WRITE_ASS'
122 | if (fprintf(file, #str "=%"fmt "\n", data) < 0) { \
| ^~~
util/evsel.c:164:9: note: in expansion of macro 'WRITE_ASS'
164 | WRITE_ASS(config, "llu");
| ^~~~~~~~~
...
cc1: all warnings being treated as errors
Fixes: f90a291448877ab45 ("perf test: Remove C test wrapper for attr.py")
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
---
Hi Stephen, can you please test if this patch fixes it?
Thanks,
Namhyung
tools/perf/util/evsel.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 37c338b0f8b2bb04..88e98c0b10528a63 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -108,7 +108,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, struct perf_cpu
char path[PATH_MAX];
char *dir = getenv("PERF_TEST_ATTR");
- snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir,
+ snprintf(path, PATH_MAX, "%s/event-%d-%"PRI_lu64"-%d", dir,
attr->type, attr->config, fd);
file = fopen(path, "w+");
@@ -117,7 +117,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, struct perf_cpu
return -1;
}
- if (fprintf(file, "[event-%d-%llu-%d]\n",
+ if (fprintf(file, "[event-%d-%"PRI_lu64"-%d]\n",
attr->type, attr->config, fd) < 0) {
perror("test attr - failed to write event file");
fclose(file);
@@ -134,10 +134,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, struct perf_cpu
/* struct perf_event_attr */
WRITE_ASS(type, PRIu32);
WRITE_ASS(size, PRIu32);
- WRITE_ASS(config, "llu");
- WRITE_ASS(sample_period, "llu");
- WRITE_ASS(sample_type, "llu");
- WRITE_ASS(read_format, "llu");
+ WRITE_ASS(config, PRI_lu64);
+ WRITE_ASS(sample_period, PRI_lu64);
+ WRITE_ASS(sample_type, PRI_lu64);
+ WRITE_ASS(read_format, PRI_lu64);
WRITE_ASS(disabled, "d");
WRITE_ASS(inherit, "d");
WRITE_ASS(pinned, "d");
@@ -168,10 +168,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, struct perf_cpu
WRITE_ASS(use_clockid, "d");
WRITE_ASS(wakeup_events, PRIu32);
WRITE_ASS(bp_type, PRIu32);
- WRITE_ASS(config1, "llu");
- WRITE_ASS(config2, "llu");
- WRITE_ASS(branch_sample_type, "llu");
- WRITE_ASS(sample_regs_user, "llu");
+ WRITE_ASS(config1, PRI_lu64);
+ WRITE_ASS(config2, PRI_lu64);
+ WRITE_ASS(branch_sample_type, PRI_lu64);
+ WRITE_ASS(sample_regs_user, PRI_lu64);
WRITE_ASS(sample_stack_user, PRIu32);
fclose(file);
--
2.47.0.rc1.288.g06298d1525-goog