From: Otavio Salvador Date: Sun, 10 Jul 2022 16:43:00 +0000 (-0300) Subject: cargo-cross-canadian: Use SDK's flags during target linking X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~3496 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=abb1f3f12b4a02d644414b1af0623894984bb4cd;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git cargo-cross-canadian: Use SDK's flags during target linking Signed-off-by: Otavio Salvador Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-devtools/cargo/cargo-cross-canadian.inc b/meta/recipes-devtools/cargo/cargo-cross-canadian.inc index 7fc22a4128d..01ba151d0a9 100644 --- a/meta/recipes-devtools/cargo/cargo-cross-canadian.inc +++ b/meta/recipes-devtools/cargo/cargo-cross-canadian.inc @@ -39,6 +39,18 @@ do_compile:prepend () { PKG_CONFIG_PATH="${RECIPE_SYSROOT_NATIVE}/usr/lib/pkgconfig:${PKG_CONFIG_PATH}" } +create_sdk_wrapper () { + file="$1" + shift + + cat <<- EOF > "${file}" + #!/bin/sh + \$$1 \$@ + EOF + + chmod +x "$file" +} + do_install () { SYS_BINDIR=$(dirname ${D}${bindir}) install -d "${SYS_BINDIR}" @@ -47,6 +59,9 @@ do_install () { chrpath -r "\$ORIGIN/../lib" ${i} done + # Uses SDK's CC as linker so linked binaries works out of box. + create_sdk_wrapper "${SYS_BINDIR}/target-rust-ccld" "CC" + ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d mkdir "${ENV_SETUP_DIR}" ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo.sh" @@ -58,7 +73,10 @@ do_install () { touch "\$CARGO_HOME/config" echo "[build]" >> "\$CARGO_HOME/config" echo 'target = "'${TARGET_SYS}'"' >> "\$CARGO_HOME/config" - fi + echo '# TARGET_SYS' >> "\$CARGO_HOME/config" + echo '[target.'${TARGET_SYS}']' >> "\$CARGO_HOME/config" + echo 'linker = "target-rust-ccld"' >> "\$CARGO_HOME/config" + fi # Keep the below off as long as HTTP/2 is disabled. export CARGO_HTTP_MULTIPLEXING=false