From: Gyorgy Sarvari Date: Fri, 5 Sep 2025 20:28:12 +0000 (+0200) Subject: rust-target-config.bbclass: move target generation before do_configure X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1d3c02553122982daedfe32c6ce09fac9e091952;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git rust-target-config.bbclass: move target generation before do_configure The rust_get_targets task from the rust-target-config class generates some Rust compiler configurations for different the target and host machine, which is used by Rust during compiling a recipe. These configurations supposed to be available by the time the Rust compiler is used for the first time. By default, this task is executed "before do_compile" - it assumes that this is the first task that would use this configuration. However this is not always the case, especially with projects which are not pure Cargo projects, rather Cargo/Rust is called by a different build system. As an example librsvg uses meson, and during the do_configure step Meson probes the Rust compiler, trying to gather some library info from Rust. In case the rust_gen_targets task was executed before the do_configure task, then everything works. However this is not always the case - sometimes the job is executed between the configure and compile steps, in which case the configuration fails. To avoid such problems, generate these targets before the do_configure step. Signed-off-by: Gyorgy Sarvari Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/rust-target-config.bbclass b/meta/classes-recipe/rust-target-config.bbclass index 2114c5850c..e53c5d1bc6 100644 --- a/meta/classes-recipe/rust-target-config.bbclass +++ b/meta/classes-recipe/rust-target-config.bbclass @@ -443,7 +443,7 @@ python do_rust_gen_targets () { rust_gen_target(d, 'TARGET', wd, d.getVar('TARGET_ARCH')) } -addtask rust_gen_targets after do_patch before do_compile +addtask rust_gen_targets after do_patch before do_configure do_rust_gen_targets[dirs] += "${RUST_TARGETS_DIR}" # For building target C dependecies use only compiler parameters defined in OE