arch/arm: add armv8.2a cortex-based cores
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 30 Dec 2018 14:16:12 +0000 (15:16 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 30 Dec 2018 15:09:17 +0000 (16:09 +0100)
commit56a315f18f47626a98facac71a52e7e8541c5753
treea8768118fc761632b9d7e688f803aaad6b70b12b
parentd9e8c74f0f59abc59c5bc538a4a1dc1d41c11007
arch/arm: add armv8.2a cortex-based cores

The armv8.2a generation is a cumulative extension to armv8.1a.

Since gcc correctly enables the appropriate extensions based on the core
name, we don't really need to introduce a separate config for armv8.2a,
and we can piggyback on armv8a.

In theory, gcc supports those cores in arm mode. However, configuring
gcc thusly generates a non-working gcc that constantly whines:
    cc1: warning: switch -mcpu=cortex-a55 conflicts with -march=armv8.2-a switch

It is to be noted that the -march flag is internal to gcc. It is not
something that Buildroot did set when configuring gcc; Buildroot only
ever sets --with-cpu (not --with-arch).

Additionally, uClibc fails to build entirely (unsure if this is caused
by the above, or if it is a separate issue, though), with:
    #### Your compiler does not support TLS and you are trying to build uClibc-ng
    #### with NPTL support. Upgrade your binutils and gcc to versions which
    #### support TLS for your architecture. Do not contact uClibc-ng maintainers
    #### about this problem.

Glibc and musl have not been tested in arm mode, so maybe we could have
a toolchain that eventually works (or at least, pretends to be working),
but we decided it was not worth the effort.

Thus, we restrict those cores to AArch64 mode only.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
arch/Config.in.arm