[PATCH] arm64: Generate cpucaps.h

Geert Uytterhoeven geert at linux-m68k.org
Thu May 13 04:30:53 PDT 2021


Hi Mark,

On Wed, Apr 28, 2021 at 2:25 PM Mark Brown <broonie at kernel.org> wrote:
> The arm64 code allocates an internal constant to every CPU feature it can
> detect, distinct from the public hwcap numbers we use to expose some
> features to userspace. Currently this is maintained manually which is an
> irritating source of conflicts when working on new features, to avoid this
> replace the header with a simple text file listing the names we've assigned
> and sort it to minimise conflicts.
>
> As part of doing this we also do the Kbuild hookup required to hook up
> an arch tools directory and to generate header files in there.
>
> This will result in a renumbering and reordering of the existing constants,
> since they are all internal only the values should not be important. The
> reordering will impact the order in which some steps in enumeration handle
> features but the algorithm is not intended to depend on this and I haven't
> seen any issues when testing. Due to the UAO cpucap having been removed in
> the past we end up with ARM64_NCAPS being 1 smaller than it was before.
>
> Signed-off-by: Mark Brown <broonie at kernel.org>
> ---
>  arch/arm64/Makefile              |  3 ++
>  arch/arm64/include/asm/Kbuild    |  2 +
>  arch/arm64/include/asm/cpucaps.h | 74 --------------------------------
>  arch/arm64/tools/Makefile        | 22 ++++++++++
>  arch/arm64/tools/cpucaps         | 65 ++++++++++++++++++++++++++++
>  arch/arm64/tools/gen-cpucaps.awk | 40 +++++++++++++++++

I guess the reason you're doing it like this, and not using a simple C
enum, is that some of these definitions are used from asm files?
Do we use similar mechanisms in other places?
Would introducing a generic way to generate headers with definitions
from a C enum be worthwhile?

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds



More information about the linux-arm-kernel mailing list