From: Sunil Dora <[email protected]> LLVM 23 removed the x86 amx-tf32 subtarget feature, so a rustc built against LLVM 23 aborts at startup with
"+amx-tf32" is not a recognized feature for this target Gate the feature out of to_llvm_features for LLVM >= 23. rust dropped the feature entirely after 1.98 (https://github.com/rust-lang/rust/pull/159310), but backporting that would change stable rust behaviour, while a version guard keeps this rust working against older LLVM majors too. Signed-off-by: Sunil Dora <[email protected]> --- ...llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch | 38 +++++++++++++++++++ meta/recipes-devtools/rust/rust-source.inc | 1 + 2 files changed, 39 insertions(+) create mode 100644 meta/recipes-devtools/rust/files/0005-rustc_codegen_llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch diff --git a/meta/recipes-devtools/rust/files/0005-rustc_codegen_llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch b/meta/recipes-devtools/rust/files/0005-rustc_codegen_llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch new file mode 100644 index 0000000000..99fcd334c7 --- /dev/null +++ b/meta/recipes-devtools/rust/files/0005-rustc_codegen_llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch @@ -0,0 +1,38 @@ +From: Sunil Dora <[email protected]> +Date: Wed, 26 Aug 2026 16:30:00 +0530 +Subject: [PATCH] rustc_codegen_llvm: do not pass amx-tf32 to LLVM 23 + +LLVM 23 removed the x86 amx-tf32 subtarget feature +(https://github.com/llvm/llvm-project/pull/207673). rust 1.98 still +lists it in the x86 table in rustc_target, so a rustc built against +LLVM 23 aborts at startup with + + '+amx-tf32' is not a recognized feature for this target + +Skip the feature in to_llvm_features when the LLVM in use is 23 or +newer, in the same style the surrounding code already uses for +avx10.1/avx10.2 on older LLVM majors. amx-tf32 is the only x86 +feature LLVM 23 removed; the rest of the table still matches X86.td. + +rust dropped the feature outright after 1.98 +(https://github.com/rust-lang/rust/pull/159310), which requires +LLVM 23 or newer unconditionally. This recipe builds against whatever +LLVM major the layer provides, so the version guard is kept instead. + +Upstream-Status: Inappropriate [rust dropped the feature after 1.98 via https://github.com/rust-lang/rust/pull/159310; this guard only exists to build 1.98 against more than one LLVM major] +Signed-off-by: Sunil Dora <[email protected]> +--- + compiler/rustc_codegen_llvm/src/llvm_util.rs | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/compiler/rustc_codegen_llvm/src/llvm_util.rs ++++ b/compiler/rustc_codegen_llvm/src/llvm_util.rs +@@ -286,6 +286,8 @@ + s, + smallvec![TargetFeatureFoldStrength::EnableOnly("evex512")], + )), ++ // AMX-TF32 was removed from LLVM 23 ++ "amx-tf32" if major >= 23 => None, + "avx10.1" if major < 22 => Some(LLVMFeature::new("avx10.1-512")), + "avx10.2" if major < 22 => Some(LLVMFeature::new("avx10.2-512")), + "apxf" => Some(LLVMFeature::with_dependencies( diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc index d87271b29c..f40f1652b2 100644 --- a/meta/recipes-devtools/rust/rust-source.inc +++ b/meta/recipes-devtools/rust/rust-source.inc @@ -8,6 +8,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n file://0002-Fix-rust-build-failure-with-unstable-options.patch;patchdir=${RUSTSRC} \ file://0003-bootstrap-skip-StdarchVerify-when-remote-testing.patch;patchdir=${RUSTSRC} \ file://0004-Backport-commits-from-rust-Fix-selftest-llvm23.patch;patchdir=${RUSTSRC} \ + file://0005-rustc_codegen_llvm-Do-not-pass-amx-tf32-to-LLVM-23.patch;patchdir=${RUSTSRC} \ " SRC_URI[rust.sha256sum] = "271fa73d8174f53d713c46a8310da7bf7cfdcfb8b7cfd1c2b74b84a83ae9fb1e" -- 2.43.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#244644): https://lists.openembedded.org/g/openembedded-core/message/244644 Mute This Topic: https://lists.openembedded.org/mt/120998124/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
