From bc046a6bdf896e7fb5ce118591a50a4d86c947b9 Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 31 Mar 2025 07:07:37 +0000 Subject: [PATCH] eclass/cargo: Sync with Gentoo It's from Gentoo commit 6937fcb873120179a5bb32055b26612ac4a72c52. --- .../src/third_party/portage-stable/eclass/cargo.eclass | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass b/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass index dae2b93f24..95d485ab20 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/cargo.eclass @@ -448,7 +448,9 @@ _cargo_gen_git_config() { # Return the directory within target that contains the build, e.g. # target/aarch64-unknown-linux-gnu/release. cargo_target_dir() { - echo "${CARGO_TARGET_DIR:-target}/$(rust_abi)/$(usex debug debug release)" + local abi + tc-is-cross-compiler && abi=/$(rust_abi) + echo "${CARGO_TARGET_DIR:-target}${abi}/$(usex debug debug release)" } # @FUNCTION: cargo_update_crates @@ -762,6 +764,10 @@ cargo_env() { # locally. Do this in a subshell so that they remain set afterwards. unset CARGO_BUILD_RUSTFLAGS CARGO_ENCODED_RUSTFLAGS RUSTFLAGS + # Only tell Cargo to cross-compile when actually needed to avoid the + # aforementioned build host vs target flag separation issue. + tc-is-cross-compiler || unset CARGO_BUILD_TARGET + "${@}" ) }