diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-08-05 12:01:32 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-08-08 15:41:36 +0100 |
commit | dfff5a176765c0e8b212bf31081f80e79025fd1b (patch) | |
tree | b298499db15aa5a2c4c90462fca15ff7f07e2b16 /meta/classes | |
parent | 1a992268e556a79daa6802367f48796000a1f436 (diff) | |
download | openembedded-core-contrib-dfff5a176765c0e8b212bf31081f80e79025fd1b.tar.gz |
rust-common: Rework wrappers to handle musl
For musl we need to be able to add a library to the end of the linker commandline.
Rework the wrapper code to be able to do this through a new variable.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/rust-common.bbclass | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/meta/classes/rust-common.bbclass b/meta/classes/rust-common.bbclass index b79a829462..1bce7761ab 100644 --- a/meta/classes/rust-common.bbclass +++ b/meta/classes/rust-common.bbclass @@ -141,13 +141,18 @@ RUST_TARGET_AR = "${WRAPPER_DIR}/target-rust-ar" create_wrapper () { file="$1" shift + extras="$1" + shift cat <<- EOF > "${file}" #!/usr/bin/env python3 import os, sys orig_binary = "$@" + extras = "${extras}" binary = orig_binary.split()[0] args = orig_binary.split() + sys.argv[1:] + if extras: + args.append(extras) os.execvp(binary, args) EOF chmod +x "${file}" @@ -157,6 +162,7 @@ WRAPPER_TARGET_CC = "${CC}" WRAPPER_TARGET_CXX = "${CXX}" WRAPPER_TARGET_CCLD = "${CCLD}" WRAPPER_TARGET_LDFLAGS = "${LDFLAGS}" +WRAPPER_TARGET_EXTRALD = "" WRAPPER_TARGET_AR = "${AR}" # compiler is used by gcc-rs @@ -166,22 +172,22 @@ do_rust_create_wrappers () { mkdir -p "${WRAPPER_DIR}" # Yocto Build / Rust Host C compiler - create_wrapper "${RUST_BUILD_CC}" "${BUILD_CC}" + create_wrapper "${RUST_BUILD_CC}" "" "${BUILD_CC}" # Yocto Build / Rust Host C++ compiler - create_wrapper "${RUST_BUILD_CXX}" "${BUILD_CXX}" + create_wrapper "${RUST_BUILD_CXX}" "" "${BUILD_CXX}" # Yocto Build / Rust Host linker - create_wrapper "${RUST_BUILD_CCLD}" "${BUILD_CCLD}" "${BUILD_LDFLAGS}" + create_wrapper "${RUST_BUILD_CCLD}" "" "${BUILD_CCLD}" "${BUILD_LDFLAGS}" # Yocto Build / Rust Host archiver - create_wrapper "${RUST_BUILD_AR}" "${BUILD_AR}" + create_wrapper "${RUST_BUILD_AR}" "" "${BUILD_AR}" # Yocto Target / Rust Target C compiler - create_wrapper "${RUST_TARGET_CC}" "${WRAPPER_TARGET_CC}" "${WRAPPER_TARGET_LDFLAGS}" + create_wrapper "${RUST_TARGET_CC}" "${WRAPPER_TARGET_EXTRALD}" "${WRAPPER_TARGET_CC}" "${WRAPPER_TARGET_LDFLAGS}" # Yocto Target / Rust Target C++ compiler - create_wrapper "${RUST_TARGET_CXX}" "${WRAPPER_TARGET_CXX}" "${CXXFLAGS}" + create_wrapper "${RUST_TARGET_CXX}" "${WRAPPER_TARGET_EXTRALD}" "${WRAPPER_TARGET_CXX}" "${CXXFLAGS}" # Yocto Target / Rust Target linker - create_wrapper "${RUST_TARGET_CCLD}" "${WRAPPER_TARGET_CCLD}" "${WRAPPER_TARGET_LDFLAGS}" + create_wrapper "${RUST_TARGET_CCLD}" "${WRAPPER_TARGET_EXTRALD}" "${WRAPPER_TARGET_CCLD}" "${WRAPPER_TARGET_LDFLAGS}" # Yocto Target / Rust Target archiver - create_wrapper "${RUST_TARGET_AR}" "${WRAPPER_TARGET_AR}" + create_wrapper "${RUST_TARGET_AR}" "" "${WRAPPER_TARGET_AR}" } |