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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to