b520826332
[ Upstream commit 5b596e0ff0e1852197d4c82d3314db5e43126bf7 ]
To avoid breaking the build on arches where this is not wired up, at
least all the other features should be made available and when using
this specific routine, the "unknown" should point the user/developer to
the need to wire this up on this particular hardware architecture.
Detected in a container mipsel debian cross build environment, where it
shows up as:
In file included from /usr/mipsel-linux-gnu/include/stdio.h:867,
from /git/linux/tools/perf/lib/include/perf/cpumap.h:6,
from util/session.c:13:
In function 'printf',
inlined from 'regs_dump__printf' at util/session.c:1103:3,
inlined from 'regs__printf' at util/session.c:1131:2:
/usr/mipsel-linux-gnu/include/bits/stdio2.h:107:10: error: '%-5s' directive argument is null [-Werror=format-overflow=]
107 | return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cross compiler details:
mipsel-linux-gnu-gcc (Debian 9.2.1-8) 9.2.1 20190909
Also on mips64:
In file included from /usr/mips64-linux-gnuabi64/include/stdio.h:867,
from /git/linux/tools/perf/lib/include/perf/cpumap.h:6,
from util/session.c:13:
In function 'printf',
inlined from 'regs_dump__printf' at util/session.c:1103:3,
inlined from 'regs__printf' at util/session.c:1131:2,
inlined from 'regs_user__printf' at util/session.c:1139:3,
inlined from 'dump_sample' at util/session.c:1246:3,
inlined from 'machines__deliver_event' at util/session.c:1421:3:
/usr/mips64-linux-gnuabi64/include/bits/stdio2.h:107:10: error: '%-5s' directive argument is null [-Werror=format-overflow=]
107 | return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function 'printf',
inlined from 'regs_dump__printf' at util/session.c:1103:3,
inlined from 'regs__printf' at util/session.c:1131:2,
inlined from 'regs_intr__printf' at util/session.c:1147:3,
inlined from 'dump_sample' at util/session.c:1249:3,
inlined from 'machines__deliver_event' at util/session.c:1421:3:
/usr/mips64-linux-gnuabi64/include/bits/stdio2.h:107:10: error: '%-5s' directive argument is null [-Werror=format-overflow=]
107 | return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cross compiler details:
mips64-linux-gnuabi64-gcc (Debian 9.2.1-8) 9.2.1 20190909
Fixes: 2bcd355b71
("perf tools: Add interface to arch registers sets")
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-95wjyv4o65nuaeweq31t7l1s@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
47 lines
938 B
C
47 lines
938 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __PERF_REGS_H
|
|
#define __PERF_REGS_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/compiler.h>
|
|
|
|
struct regs_dump;
|
|
|
|
struct sample_reg {
|
|
const char *name;
|
|
uint64_t mask;
|
|
};
|
|
#define SMPL_REG(n, b) { .name = #n, .mask = 1ULL << (b) }
|
|
#define SMPL_REG_END { .name = NULL }
|
|
|
|
extern const struct sample_reg sample_reg_masks[];
|
|
|
|
enum {
|
|
SDT_ARG_VALID = 0,
|
|
SDT_ARG_SKIP,
|
|
};
|
|
|
|
int arch_sdt_arg_parse_op(char *old_op, char **new_op);
|
|
|
|
#ifdef HAVE_PERF_REGS_SUPPORT
|
|
#include <perf_regs.h>
|
|
|
|
int perf_reg_value(u64 *valp, struct regs_dump *regs, int id);
|
|
|
|
#else
|
|
#define PERF_REGS_MASK 0
|
|
#define PERF_REGS_MAX 0
|
|
|
|
static inline const char *perf_reg_name(int id __maybe_unused)
|
|
{
|
|
return "unknown";
|
|
}
|
|
|
|
static inline int perf_reg_value(u64 *valp __maybe_unused,
|
|
struct regs_dump *regs __maybe_unused,
|
|
int id __maybe_unused)
|
|
{
|
|
return 0;
|
|
}
|
|
#endif /* HAVE_PERF_REGS_SUPPORT */
|
|
#endif /* __PERF_REGS_H */
|