On 11.02.25 12:10, Trevor Gross wrote:
On Mon, Feb 10, 2025 at 10:38 AM Miguel Ojeda ojeda@kernel.org wrote:
Starting with Rust 1.85.0 (to be released 2025-02-20), `rustc` warns [1] about disabling neon in the aarch64 hardfloat target:
warning: target feature `neon` cannot be toggled with `-Ctarget-feature`: unsound on hard-float targets because it changes float ABI | = note: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #116344 <https://github.com/rust-lang/rust/issues/116344>
Thus, instead, use the softfloat target instead.
While trying it out, I found that the kernel sanitizers were not enabled for that built-in target [2]. Upstream Rust agreed to backport the enablement for the current beta so that it is ready for the 1.85.0 release [3] -- thanks!
However, that still means that before Rust 1.85.0, we cannot switch since sanitizers could be in use. Thus conditionally do so.
Cc: stable@vger.kernel.org # Needed in 6.12.y and 6.13.y only (Rust is pinned in older LTSs). Cc: Catalin Marinas catalin.marinas@arm.com Cc: Will Deacon will@kernel.org Cc: Matthew Maurer mmaurer@google.com Cc: Alice Ryhl aliceryhl@google.com Cc: Ralf Jung post@ralfj.de Cc: Jubilee Young workingjubilee@gmail.com Link: https://github.com/rust-lang/rust/pull/133417 [1] Link: https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/arm6... [2] Link: https://github.com/rust-lang/rust/pull/135905 [3] Link: https://github.com/rust-lang/rust/issues/116344 Signed-off-by: Miguel Ojeda ojeda@kernel.org
This is consistent with what has been discussed for a while on the Rust side.
Reviewed-by: Trevor Gross tmgross@umich.edu
I don't know the kernel side of this, but from a Rust compiler perspective using the "-softfloat" target is definitely the right call here, at least for now (where none of the crypto/compression code that needs SIMD is written in Rust).
Reviewed-by: Ralf Jung post@ralfj.de
Kind regards, Ralf