@@ -51,14 +51,26 @@ do_install () {
chmod +x "$outfile"
create_sdk_wrapper "${SYS_BINDIR}/target-rust-ccld-wrapper" "CC"
- ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d
- mkdir "${ENV_SETUP_DIR}"
+ ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d/${TARGET_SYS}
+ mkdir -p "${ENV_SETUP_DIR}"
RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/${RUST_TARGET_SYS}_rust.sh"
RUST_TARGET_TRIPLE=`echo ${RUST_TARGET_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'`
cat <<- EOF > "${RUST_ENV_SETUP_SH}"
- export CARGO_TARGET_${RUST_TARGET_TRIPLE}_RUSTFLAGS="--sysroot=\$OECORE_TARGET_SYSROOT/usr -C link-arg=--sysroot=\$OECORE_TARGET_SYSROOT"
+ export RUST_TARGET_SYS_VALUE="${RUST_TARGET_SYS}"
+ if echo "${MULTILIBS}" | grep -q "multilib:"; then
+ if echo "${RUST_TARGET_SYS}" | grep -qE '(32)'; then
+ LIBDIR="lib"
+ else
+ LIBDIR="lib64"
+ fi
+ else
+ # multilib not enabled
+ LIBDIR="lib"
+ fi
+ LIB_PATH="\$OECORE_TARGET_SYSROOT/usr/\${LIBDIR}/rustlib/${RUST_TARGET_SYS}/lib"
+ export CARGO_TARGET_${RUST_TARGET_TRIPLE}_RUSTFLAGS="--sysroot=\$OECORE_TARGET_SYSROOT/usr -C link-arg=--sysroot=\$OECORE_TARGET_SYSROOT -L \$LIB_PATH"
export CARGO_BUILD_TARGET="${RUST_TARGET_SYS}"
export RUST_TARGET_PATH="\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib"
EOF