Hi Serhei, On Mon, May 5, 2025 at 12:26 PM Serhei Makarov <ser...@serhei.io> wrote: > > asm/perf_regs.h is an arch-specific linux include, not present on > architectures like hppa and m68k that lack perf_events support. > > Only one place we need to fix; others already guard the include by > architecture, or use architecture-independent headers (e.g. > linux/perf_events.h). > > * backends/libebl_PERF_FLAGS.h: Only include asm/perf_regs.h on > architectures where we use it. > --- > backends/libebl_PERF_FLAGS.h | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/backends/libebl_PERF_FLAGS.h b/backends/libebl_PERF_FLAGS.h > index 2ed45f0f..51c20ea6 100644 > --- a/backends/libebl_PERF_FLAGS.h > +++ b/backends/libebl_PERF_FLAGS.h > @@ -32,8 +32,12 @@ > #define _LIBEBL_PERF_FLAGS_H 1 > > #if defined(__linux__) > +/* XXX Need to exclude __linux__ arches without perf_regs.h. */ > +#if defined(__x86_64__) || defined(__i386__) > +/* || defined(other_architecture)... */ > # include <asm/perf_regs.h> > #endif > +#endif > > #if defined(_ASM_X86_PERF_REGS_H) > /* See the code in x86_initreg_sample.c for list of required regs and > @@ -49,8 +53,8 @@ > see the code in tools/perf/util/intel-pt.c intel_pt_add_gp_regs() > and note how regs are added in the same order as the perf_regs.h enum. */ > #else > -/* Since asm/perf_regs.h gives the register layout for a different arch, > - we can't unwind x86_64 frames. */ > +/* Since asm/perf_regs.h is absent, or gives the register layout for a > + different arch, we can't unwind i386 and x86_64 frames. */ > #define PERF_FRAME_REGISTERS_I386 0 > #define PERF_FRAME_REGISTERS_X86_64 0 > #endif > -- > 2.47.0 >
So if the arch is not x86_64 or i386, then PERF_FRAME_REGISTERS_* will be 0 and this signals to the backend to skip any unwinding. LGTM. Aaron