# 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.