From 452634683ca58ef5fcca341f3dc3da8cd50148cc Mon Sep 17 00:00:00 2001 From: Jorijn van der Graaf Date: Sat, 5 Sep 2026 23:06:57 +0200 Subject: [PATCH] packaging: cross-compile for the FP6's own cores The phone is one SoC, 4x Cortex-A520 + 4x Cortex-A720, and the package is built for nothing else, so build for it: -march=armv8.6-a+fp16fml+aes+sha3+sm4 -mtune=cortex-a720 instead of the generic Armv8 baseline. That is gcc's own -march=native expansion on the phone, re-based on armv8.6-a so clang can express the same set; 8.6 is the highest level whose mandatory set the phone exposes (8.7 would assume WFxT, 9.x SVE2 - neither is in its hwcaps, and SVE2 code would SIGILL). Same string as the fp6-img aports and kernel. --- README.md | 2 +- packaging/build-package.sh | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8db01bc..822474b 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ make install # DESTDIR/PREFIX staged install incl. the packaging/ files packaging/make-sysroot.sh # one-time: Alpine aarch64 sysroot from the CDN crafter-build -- --target=aarch64-alpine-linux-musl \ --sysroot=$HOME/.cache/imsd/sysroot-aarch64-alpine \ - --march=armv8-a --mtune=generic + --march=armv8.6-a+fp16fml+aes+sha3+sm4 --mtune=cortex-a720 # same flags after `crafter-build test --target=aarch64-alpine-linux-musl` # run the suite under qemu-aarch64 against the sysroot ``` diff --git a/packaging/build-package.sh b/packaging/build-package.sh index e035173..ae45bf6 100755 --- a/packaging/build-package.sh +++ b/packaging/build-package.sh @@ -75,7 +75,11 @@ retry "make sysroot" "$SRC/packaging/make-sysroot.sh" "$SYSROOT" # host arch — the aarch64 binaries are additionally exercised by fp6-img's # chroot `make check` whenever an image builds) cd "$SRC" -XTARGET="--target=aarch64-alpine-linux-musl --sysroot=$SYSROOT --march=armv8-a --mtune=generic" +# The phone is one SoC, 4x Cortex-A520 + 4x Cortex-A720, so build for it. +# armv8.6-a is the highest level whose mandatory set it exposes (8.7 would +# assume WFxT, 9.x SVE2 - neither is in its hwcaps); +fp16fml+aes+sha3+sm4 are +# the optional extensions it has. Same string as the fp6-img aports. +XTARGET="--target=aarch64-alpine-linux-musl --sysroot=$SYSROOT --march=armv8.6-a+fp16fml+aes+sha3+sm4 --mtune=cortex-a720" crafter-build -- $XTARGET crafter-build -- --product=media $XTARGET crafter-build -- --product=dialerd $XTARGET