kernel: build for the cores the phone has, pkgrel 102

The FP6 is 4x Cortex-A520 + 4x Cortex-A720 and this image boots nothing
else, so pass the compiler KCFLAGS="-march=armv8.6-a+fp16fml+aes+sha3+sm4
-mtune=cortex-a720". The stock arm64 build gives the compiler no arch flag
at all (so one image can boot any Armv8 board).

The string is what `gcc -march=native` derives on the phone, re-based on
armv8.6-a so clang can express the same set (clang has no flagm2/rcpc2/
frintts tokens; it reaches them through the architecture level). 8.6 is the
highest level whose mandatory set the phone exposes: 8.7 would assume WFxT
and 9.x SVE2, and neither is in its hwcaps or ID registers. clang emits
identical code for this and for -mcpu=cortex-a720+nosve+nomemtag; the
difference is only which system features (SPE, ETE, TRBE, FPAC) it knows
about, none of which generate code.

Verified on eef717f978f1 with the aport config: builds with zero warnings,
same module set as r100 (417), compat vDSO untouched, boots the dev phone
with a clean dmesg and a GREEN selftest. Record:
fp6 journal/base/captures/2026-09-05-mcpu-a720-verification.md.
This commit is contained in:
Jorijn van der Graaf 2026-09-06 00:02:19 +02:00
commit a2f5de9de0
Signed by: jorijnvdgraaf
GPG key ID: 2937E59CDCC1BCFB
4 changed files with 30 additions and 4 deletions

View file

@ -5,7 +5,7 @@
maintainer="Achill Gilgenast <achill@achill.org>"
pkgname=modemmanager
pkgver=1.25.95_git20260709
pkgrel=100
pkgrel=101
_commit=d776ea38d29ca472a12323c1d45002ee19a66f57
pkgdesc="ModemManager library"
url="https://www.freedesktop.org/wiki/Software/ModemManager"
@ -42,6 +42,12 @@ checkdepends="glib-dev py3-gobject3 py3-dbus"
# native builders, and none exercise the GNSS code our patches change) -
# on-device validation is the real test.
options="!pmb:crossdirect !check"
# fp6-img: this package only ever runs on the FP6 (4x Cortex-A520 + 4x
# Cortex-A720), so tune for it. Spelled -march/-mtune, not -mcpu: GCC 16
# expands -mcpu=cortex-a720 into a +sve-bitperm token that binutils 2.45
# rejects at the assembler. +nosve+nomemtag: the FP6 exposes neither SVE nor
# MTE (no sve/mte hwcaps), and without them the code would SIGILL.
export CFLAGS="$CFLAGS -march=armv9.2-a+nosve+nomemtag -mtune=cortex-a720"
subpackages="
$pkgname-lang
$pkgname-doc