Auto merge of #160302 - RalfJung:soft-float-no-avx2, r=workingjubilee
target_features: sse (or at least avx2) is incompatible with soft-float ABI Fixes https://github.com/rust-lang/rust/issues/117938 Enabling both the avx2 and soft-float target features is [not supported by LLVM](https://github.com/rust-lang/rust/issues/117938#issuecomment-1812742490) and can crash the backend. Let's preempt that with rust-level checks. (I still think there's also an LLVM bug here, it shouldn't just SIGILL on unexpected target feature configurations, but that's a different discussion.) What is not clear to me is whether this just affects just avx2 or also avx or even sse (we don't support mmx/3dnow separately). @dianqk do you know more about this? To be safe, let's reject "sse" and therefore by implication also all other x86 vector target features. This PR turns `#[target_feature(enable = "sse")]` on a softfloat target into an FCW similar to what we do on aarch64 (see https://github.com/rust-lang/rust/pull/135160). The FCW only affects people building for soft-float targets which is a fairly small percentage of our overall users (and which means we cannot meaningfully crater this). I hence went for "report in deps" immediately so that the people building the actual binaries see these warnings that their upstreams probably will never see.
B
bors committed
fb6531d550e0075b9eb9a51464f404805eec87d9