]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commit
classes/cargo_common: ensure B is clean
authorRoss Burton <ross.burton@arm.com>
Fri, 17 Oct 2025 13:27:17 +0000 (14:27 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 27 Oct 2025 11:37:38 +0000 (11:37 +0000)
commit9d9ce457630ea7403ffe7028e3370647db0b83fa
tree57cac875cbac14f803278c5d7b65f8463d3e6f9d
parentaf771279f3ef8aa2ba137e018da8fc6bf6a1b335
classes/cargo_common: ensure B is clean

The cargo class defaults to out-of-tree builds in WORKDIR/build, but
at no point was that directory cleaned.  This causes problems with the
rust standard library recipe (libstd-rs) which installs manually with cp,
so rebuilds can be contaminated with the contents of previous builds.

I believe that post-release we should switch cargo.bbclass to mandating
out-of-tree builds to reduce the complexity, but for now in out-of-tree
builds we can just delete the ${B}/target directory.

Note that we use ${B}/target because there at least were reasons to use
that name[1], it is unclear if these limitations still hold. We can't
simply clean ${B} because that will break recipes that use cargo and
something else to build, for example librsvg.

[1] https://github.com/rust-lang/cargo/pull/1657

(From OE-Core rev: 1452ac7a44196454a52f3f6d883290ddcccfd3f8)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-recipe/cargo_common.bbclass