Re: [PATCH v1 4/6] perf tools: Use dynamic register set for Dwarf unwind

From: Arnaldo Carvalho de Melo
Date: Fri May 27 2022 - 12:08:55 EST


Em Fri, May 27, 2022 at 02:18:54PM +0800, Leo Yan escreveu:
> On Thu, May 26, 2022 at 03:19:54PM -0300, Arnaldo Carvalho de Melo wrote:
>
> [...]
>
> > Too old to support?
> >
> > 69 7.19 ubuntu:16.04-x-arm64 : FAIL gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9)
> > arch/arm64/util/perf_regs.c: In function 'arch__user_reg_mask':
> > arch/arm64/util/perf_regs.c:151:28: error: 'HWCAP_SVE' undeclared (first use in this function)
> > if (getauxval(AT_HWCAP) & HWCAP_SVE)
> > ^
> > arch/arm64/util/perf_regs.c:151:28: note: each undeclared identifier is reported only once for each function it appears in
> > /git/perf-5.18.0/tools/build/Makefile.build:139: recipe for target 'util' failed
> > make[5]: *** [util] Error 2
> > /git/perf-5.18.0/tools/build/Makefile.build:139: recipe for target 'arm64' failed
> > make[4]: *** [arm64] Error 2
> > /git/perf-5.18.0/tools/build/Makefile.build:139: recipe for target 'arch' failed
> > make[3]: *** [arch] Error 2
> >
> >
> > ⬢[acme@toolbox perf]$ find . -name "*.h" | xargs grep -w HWCAP_SVE
> > ./arch/arm64/include/uapi/asm/hwcap.h:#define HWCAP_SVE (1 << 22)
> > ⬢[acme@toolbox perf]$
>
> I tested aarch64 GCC-7.4.1 which doesn't support HWCAP_SVE, but
> aarch64 GCC-8.3.0 and GCC-9.4.0 support it.
>
> Either we can add below code:
>
> #ifndef HWCAP_SVE
> #define HWCAP_SVE (1 << 22)
> #endif
>
> Or directly include header file <.../asm/hwcap.h>.
>
> Not sure which method is preferred. Maybe the first approach can be
> de-couple with Linux kernel code?

Lets go KISS and just define it if not present, as you suggested above,
will test now.

- Arnaldo