From: Deepthi Hemraj <deepthi.hem...@windriver.com> [YOCTO #15061] Rust multilib sdks broken because of the conflicts between attempted installs of rust-cross-canadian for arm and aarch64.
Arm and aarch64 target architectures are trying to install cargo.sh and rust.sh in the same path which resulted in the issue. The current patch modifies CARGO_ENV_SETUP_SH and RUST_ENV_SETUP_SH macros based on the architecture. Hence, creates different file names for the environment setup scripts and resolves the issue. Signed-off-by: Deepthi Hemraj <deepthi.hem...@windriver.com> --- .../rust/rust-cross-canadian.inc | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/meta/recipes-devtools/rust/rust-cross-canadian.inc b/meta/recipes-devtools/rust/rust-cross-canadian.inc index 7bfef6d175..9efc2389bb 100644 --- a/meta/recipes-devtools/rust/rust-cross-canadian.inc +++ b/meta/recipes-devtools/rust/rust-cross-canadian.inc @@ -54,6 +54,18 @@ do_install () { mkdir "${ENV_SETUP_DIR}" RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/rust.sh" + # Set up environment variables for AArch64 + if [ "${TARGET_ARCH}" = "aarch64" ]; then + RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/rust-aarch64.sh" + RUST_TARGET_SYS="aarch64-unknown-linux-gnu" + # Set up environment variables for ARM + elif [ "${TARGET_ARCH}" = "arm" ]; then + RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/rust-arm.sh" + RUST_TARGET_SYS="arm-unknown-linux-gnueabi" + else + echo "Unsupported TARGET_ARCH: ${TARGET_ARCH}" + fi + RUST_TARGET_TRIPLE=`echo ${RUST_TARGET_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'` RUST_HOST_TRIPLE=`echo ${RUST_HOST_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'` SDKLOADER=${@bb.utils.contains('SDK_ARCH', 'x86_64', 'ld-linux-x86-64.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'i686', 'ld-linux.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'aarch64', 'ld-linux-aarch64.so.1', '', d)}${@bb.utils.contains('SDK_ARCH', 'ppc64le', 'ld64.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'riscv64', 'ld-linux-riscv64-lp64d.so.1', '', d)} @@ -65,8 +77,19 @@ do_install () { EOF chown -R root.root ${D} - CARGO_ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo.sh" + + # Set up environment variables for AArch64 + if [ "${TARGET_ARCH}" = "aarch64" ]; then + CARGO_ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo-aarch64.sh" + CARGO_TARGET_SYS="aarch64-unknown-linux-gnu" + elif [ "${TARGET_ARCH}" = "arm" ]; then + CARGO_ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo-arm.sh" + CARGO_TARGET_SYS="arm-unknown-linux-gnueabi" + else + echo "Unsupported TARGET_ARCH: ${TARGET_ARCH}" + fi + cat <<- EOF > "${CARGO_ENV_SETUP_SH}" export CARGO_HOME="\$OECORE_TARGET_SYSROOT/home/cargo" mkdir -p "\$CARGO_HOME" -- 2.42.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#190311): https://lists.openembedded.org/g/openembedded-core/message/190311 Mute This Topic: https://lists.openembedded.org/mt/102461043/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-