| From 446a8351f160d65a1c5df7097f31c74102ed2bb1 Mon Sep 17 00:00:00 2001 |
| From: Miguel Ojeda <ojeda@kernel.org> |
| Date: Mon, 10 Feb 2025 17:37:32 +0100 |
| Subject: arm64: rust: clean Rust 1.85.0 warning using softfloat target |
| |
| From: Miguel Ojeda <ojeda@kernel.org> |
| |
| commit 446a8351f160d65a1c5df7097f31c74102ed2bb1 upstream. |
| |
| 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/arm64.20neon.20.60-Ctarget-feature.60.20warning/near/495358442 [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> |
| Reviewed-by: Trevor Gross <tmgross@umich.edu> |
| Tested-by: Matthew Maurer <mmaurer@google.com> |
| Reviewed-by: Ralf Jung <post@ralfj.de> |
| Reviewed-by: Alice Ryhl <aliceryhl@google.com> |
| Link: https://lore.kernel.org/r/20250210163732.281786-1-ojeda@kernel.org |
| Signed-off-by: Will Deacon <will@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/arm64/Makefile | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/arch/arm64/Makefile |
| +++ b/arch/arm64/Makefile |
| @@ -48,7 +48,11 @@ KBUILD_CFLAGS += $(CC_FLAGS_NO_FPU) \ |
| KBUILD_CFLAGS += $(call cc-disable-warning, psabi) |
| KBUILD_AFLAGS += $(compat_vdso) |
| |
| +ifeq ($(call test-ge, $(CONFIG_RUSTC_VERSION), 108500),y) |
| +KBUILD_RUSTFLAGS += --target=aarch64-unknown-none-softfloat |
| +else |
| KBUILD_RUSTFLAGS += --target=aarch64-unknown-none -Ctarget-feature="-neon" |
| +endif |
| |
| KBUILD_CFLAGS += $(call cc-option,-mabi=lp64) |
| KBUILD_AFLAGS += $(call cc-option,-mabi=lp64) |