diff --git a/meta/recipes-devtools/rust/rust-cross-canadian.inc b/meta/recipes-devtools/rust/rust-cross-canadian.inc
deleted file mode 100644
index f083bcda82..0000000000
--- a/meta/recipes-devtools/rust/rust-cross-canadian.inc
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "Rust compiler and runtime libaries (cross-canadian for ${TARGET_ARCH} target)"
-PN = "rust-cross-canadian-${TRANSLATED_TARGET_ARCH}"
-CVE_PRODUCT = "rust"
-
-inherit rust-target-config
-inherit rust-common
-
-LICENSE = "MIT"
-
-MODIFYTOS = "0"
-
-DEPENDS += "virtual/nativesdk-cross-cc virtual/nativesdk-libc virtual/nativesdk-compilerlibs"
-
-SRC_URI += "file://target-rust-ccld.c"
-LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7"
-S = "${UNPACKDIR}"
-
-# Need to use our SDK's sh here, see #14878
-create_sdk_wrapper () {
-        file="$1"
-        shift
-        cat <<- EOF > "${file}"
-		#!/bin/sh
-		\$$1 \$@
-		EOF
-
-        chmod +x "$file"
-}
-
-do_install () {
-    # Rust requires /usr/lib to contain the libs.
-    # The required structure is retained for simplicity.
-    SYS_LIBDIR=$(dirname ${D}${libdir})
-    SYS_BINDIR=$(dirname ${D}${bindir})
-    RUSTLIB_DIR=${SYS_LIBDIR}/${TARGET_SYS}/rustlib
-
-    install -d ${RUSTLIB_DIR}
-    install -m 0644 "${RUST_TARGETS_DIR}/${RUST_HOST_SYS}.json" "${RUSTLIB_DIR}"
-    install -m 0644 "${RUST_TARGETS_DIR}/${RUST_TARGET_SYS}.json" "${RUSTLIB_DIR}"
-
-    # Uses SDK's CC as linker so linked binaries works out of box.
-    # We have a problem as rust sets LD_LIBRARY_PATH and this will break running host
-    # binaries (even /bin/sh) in the SDK as they detect a newer glibc from the SDK
-    # in those paths and we hit symbol errors. We saw particular problems with symbol
-    # mismatch on ubuntu1804 during development. To avoid this we have an SDK built
-    # binary which unsets LD_LIBRARY_PATH, which can then call the wrapper script
-    # where the context is easier to do the env maniupations needed
-    install -d ${SYS_BINDIR}
-    outfile="${SYS_BINDIR}/target-rust-ccld"
-    ${CC} ${S}/target-rust-ccld.c -o $outfile
-    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}"
-    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 CARGO_BUILD_TARGET="${RUST_TARGET_SYS}"
-	export RUST_TARGET_PATH="\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib"
-	EOF
-
-    chown -R root.root ${D}
-
-}
-
-FILES:${PN} += "${base_prefix}/environment-setup.d"
-
diff --git a/meta/recipes-devtools/rust/rust-cross-canadian_1.98.1.bb b/meta/recipes-devtools/rust/rust-cross-canadian_1.98.1.bb
index 55865238ab..64e4f752ce 100644
--- a/meta/recipes-devtools/rust/rust-cross-canadian_1.98.1.bb
+++ b/meta/recipes-devtools/rust/rust-cross-canadian_1.98.1.bb
@@ -1,2 +1,72 @@
+SUMMARY = "Rust compiler and runtime libaries (cross-canadian for ${TARGET_ARCH} target)"
+PN = "rust-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+CVE_PRODUCT = "rust"
+
 inherit cross-canadian
-require rust-cross-canadian.inc
\ No newline at end of file
+inherit rust-target-config
+inherit rust-common
+
+LICENSE = "MIT"
+
+MODIFYTOS = "0"
+
+DEPENDS += "virtual/nativesdk-cross-cc virtual/nativesdk-libc virtual/nativesdk-compilerlibs"
+
+SRC_URI += "file://target-rust-ccld.c"
+LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7"
+S = "${UNPACKDIR}"
+
+# Need to use our SDK's sh here, see #14878
+create_sdk_wrapper () {
+        file="$1"
+        shift
+        cat <<- EOF > "${file}"
+		#!/bin/sh
+		\$$1 \$@
+		EOF
+
+        chmod +x "$file"
+}
+
+do_install () {
+    # Rust requires /usr/lib to contain the libs.
+    # The required structure is retained for simplicity.
+    SYS_LIBDIR=$(dirname ${D}${libdir})
+    SYS_BINDIR=$(dirname ${D}${bindir})
+    RUSTLIB_DIR=${SYS_LIBDIR}/${TARGET_SYS}/rustlib
+
+    install -d ${RUSTLIB_DIR}
+    install -m 0644 "${RUST_TARGETS_DIR}/${RUST_HOST_SYS}.json" "${RUSTLIB_DIR}"
+    install -m 0644 "${RUST_TARGETS_DIR}/${RUST_TARGET_SYS}.json" "${RUSTLIB_DIR}"
+
+    # Uses SDK's CC as linker so linked binaries works out of box.
+    # We have a problem as rust sets LD_LIBRARY_PATH and this will break running host
+    # binaries (even /bin/sh) in the SDK as they detect a newer glibc from the SDK
+    # in those paths and we hit symbol errors. We saw particular problems with symbol
+    # mismatch on ubuntu1804 during development. To avoid this we have an SDK built
+    # binary which unsets LD_LIBRARY_PATH, which can then call the wrapper script
+    # where the context is easier to do the env maniupations needed
+    install -d ${SYS_BINDIR}
+    outfile="${SYS_BINDIR}/target-rust-ccld"
+    ${CC} ${S}/target-rust-ccld.c -o $outfile
+    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}"
+    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 CARGO_BUILD_TARGET="${RUST_TARGET_SYS}"
+	export RUST_TARGET_PATH="\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib"
+	EOF
+
+    chown -R root.root ${D}
+
+}
+
+FILES:${PN} += "${base_prefix}/environment-setup.d"
+
