Re: [PATCH 2/2] rust: enable default uwtable and ignore arm no_std test

Randy MacLeod
2025-12-22T22:40:19Z

[-- Attachment #1: Type: text/plain, Size: 3045 bytes --]

On 2025-12-22 4:38 a.m., Yash.Shinde@windriver.com wrote:
> From: Hemanth Kumar M D<hemanth.250302@gmail.com>
>
> Rust 1.92.0 adds new test that require unwind table support to be
> enabled by default. Set `default-uwtable = true` in the generated
> target spec to match upstream behavior.
>
> ref:https://github.com/rust-lang/rust/commit/fe66eaa67acc47525db6f13cf97d54780d87b805
>
> Also ignore the no_std simple-runs UI test on ARM targets. The test
> fails with panic=abort due to a known unwind table issue on 32-bit ARM
>
> https://github.com/rust-lang/rust/issues/146996

Okay and I'm glad to see the upstream issues linked.

Should we make some of these tspec decisions set-able by well-informed
users?

Maybe they can already do that using this horridly named "FEATURES"
variable.
(rename to RUST_FEATURES maybe ?)

For example, this bug:

Unable to produce a Rust static binary with TCLIBC=musl (oe-core/master)
https://bugzilla.yoctoproject.org/show_bug.cgi?id=16076

seems to be due to hard-coding dynamic-linking to True below just after
your:

+ tspec['default-uwtable'] = True

change.

I've CCed Nick in case you guys have a quick work-around to enable
static linking.

../Randy

>
> Signed-off-by: Hemanth Kumar M D<hemanth.250302@gmail.com>
> Signed-off-by: Yash Shinde<Yash.Shinde@windriver.com>
> ---
> meta/classes-recipe/rust-target-config.bbclass | 1 +
> .../rust/files/rust-oe-selftest.patch | 12 ++++++++++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/meta/classes-recipe/rust-target-config.bbclass b/meta/classes-recipe/rust-target-config.bbclass
> index 33a290412e..2a06c4ae8b 100644
> --- a/meta/classes-recipe/rust-target-config.bbclass
> +++ b/meta/classes-recipe/rust-target-config.bbclass
> @@ -418,6 +418,7 @@ def rust_gen_target(d, thing, wd, arch):
> tspec['llvm-floatabi'] = "soft"
> elif fpu == "hard":
> tspec['llvm-floatabi'] = "hard"
> + tspec['default-uwtable'] = True
> tspec['dynamic-linking'] = True
> tspec['executables'] = True
> tspec['linker-is-gnu'] = True
> diff --git a/meta/recipes-devtools/rust/files/rust-oe-selftest.patch b/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
> index b39b326455..d1fba81612 100644
> --- a/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
> +++ b/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
> @@ -254,3 +254,15 @@ index a3562f2fd93..d4e52ed91be 100644
> fn linux_hwcap2_aarch64() {
> let file =
> concat!(env!("CARGO_MANIFEST_DIR"), "/src/detect/test_data/linux-hwcap2-aarch64.auxv");
> +diff --git a/tests/ui/no_std/simple-runs.rs b/tests/ui/no_std/simple-runs.rs
> +index af44dfe..e6674e5 100644
> +--- a/tests/ui/no_std/simple-runs.rs
> ++++ b/tests/ui/no_std/simple-runs.rs
> +@@ -2,6 +2,7 @@
> +
> + //@ run-pass
> + //@ compile-flags: -Cpanic=abort
> ++//@ ignore-arm FIXME(#146996)
> + //@ ignore-wasm different `main` convention
> +
> + #![feature(lang_items)]

--
# Randy MacLeod
# Wind River Linux

[-- Attachment #2: Type: text/html, Size: 4624 bytes --]