The hunk header @@ -9,6 +9,10 @@ understated both old (actual 7) and
new (actual 12) line counts by 1. patch(1) standalone tolerates this
via fuzz, but in the concatenated cumulative the wrong counts cause
patch to mis-judge the hunk boundary and read the trailing context
line ('lib-...uaccess_flushcache.o') as the start of a new patch
header — 'malformed patch at line 4526'.
Cumulative b2sum: bd42cd39106298879eeb... -> ad9e2cb533957f218058...
(size unchanged at 157 458; only the @@ counts in the SCS patch
differ)
xor-neon-ffixed-x18-scs-build-fix-danctnix — GCC 15.2.1 build fix
Restores -ffixed-x18 for arch/arm64/lib/xor-neon.c when
CONFIG_SHADOW_CALL_STACK=y. GCC 15.2.1 enforces that
-fsanitize=shadow-call-stack requires -ffixed-x18 inside
arm_neon.h's #pragma GCC target() push/pop blocks; CC_FLAGS_REMOVE
strips the kernel-wide -ffixed-x18 for xor-neon.o and CC_FLAGS_FPU
does not restore it.
Note on current ohm config: linux-pinetab2-danctnix-besser
config has # CONFIG_SHADOW_CALL_STACK is not set as of pkgrel=3,
which makes this patch a runtime no-op ($(if $(CONFIG_SHADOW_CALL_STACK), -ffixed-x18) evaluates to nothing). Patch is kept in the manifest as
belt-and-suspenders for the day SCS gets re-enabled (tracked in
besser issue for GCC fix monitoring).
See reference_arm64_scs_arm_neon_gcc15 for the full toolchain
analysis. This patch is the upstream-friendly Makefile fix; the
config-side SHADOW_CALL_STACK=n workaround is the immediate
runtime mitigation. Both are present in pkgrel=3 for safety.