diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-08-05 12:43:56 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-08-08 15:44:20 +0100 |
commit | c2f5b71c9bebb233483840bbe48dfd3d66dffc1e (patch) | |
tree | 55caedd63f74e1c653b514ce92f855f1f06f642a /meta | |
parent | 3350658cb24c84add4635e2b904ca94525dc0d61 (diff) | |
download | poky-c2f5b71c9bebb233483840bbe48dfd3d66dffc1e.tar.gz |
rust.inc: Fix cross build llvm-config handling
We need llvm-config for the target but the cross compiled target binary is
no good. We can copy the native one into the target location where it will
then return the target values though.
(From OE-Core rev: f355e55c1fcef57f288279ffb47ebeb52a72b689)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-devtools/rust/rust.inc | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/meta/recipes-devtools/rust/rust.inc b/meta/recipes-devtools/rust/rust.inc index 30f2b71fe8..47b76e725d 100644 --- a/meta/recipes-devtools/rust/rust.inc +++ b/meta/recipes-devtools/rust/rust.inc | |||
@@ -18,7 +18,8 @@ export RUST_TARGET_PATH="${WORKDIR}/targets/" | |||
18 | export FORCE_CRATE_HASH="${BB_TASKHASH}" | 18 | export FORCE_CRATE_HASH="${BB_TASKHASH}" |
19 | 19 | ||
20 | RUST_ALTERNATE_EXE_PATH ?= "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config" | 20 | RUST_ALTERNATE_EXE_PATH ?= "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config" |
21 | export YOCTO_ALTERNATE_EXE_PATH = "${RUST_ALTERNATE_EXE_PATH}" | 21 | RUST_ALTERNATE_EXE_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config" |
22 | |||
22 | export YOCTO_ALTERNATE_MULTILIB_NAME = "/${BASELIB}" | 23 | export YOCTO_ALTERNATE_MULTILIB_NAME = "/${BASELIB}" |
23 | 24 | ||
24 | # We don't want to use bitbakes vendoring because the rust sources do their | 25 | # We don't want to use bitbakes vendoring because the rust sources do their |
@@ -82,8 +83,9 @@ python do_configure() { | |||
82 | host_section = "target.{}".format(d.getVar('RUST_TARGET_SYS', True)) | 83 | host_section = "target.{}".format(d.getVar('RUST_TARGET_SYS', True)) |
83 | config.add_section(host_section) | 84 | config.add_section(host_section) |
84 | 85 | ||
85 | llvm_config = d.expand("${YOCTO_ALTERNATE_EXE_PATH}") | 86 | llvm_config_target = d.expand("${RUST_ALTERNATE_EXE_PATH}") |
86 | config.set(host_section, "llvm-config", e(llvm_config)) | 87 | llvm_config_build = d.expand("${RUST_ALTERNATE_EXE_PATH_NATIVE}") |
88 | config.set(host_section, "llvm-config", e(llvm_config_target)) | ||
87 | 89 | ||
88 | config.set(host_section, "cxx", e(d.expand("${RUST_TARGET_CXX}"))) | 90 | config.set(host_section, "cxx", e(d.expand("${RUST_TARGET_CXX}"))) |
89 | config.set(host_section, "cc", e(d.expand("${RUST_TARGET_CC}"))) | 91 | config.set(host_section, "cc", e(d.expand("${RUST_TARGET_CC}"))) |
@@ -93,7 +95,7 @@ python do_configure() { | |||
93 | build_section = "target.{}".format(d.getVar('SNAPSHOT_BUILD_SYS', True)) | 95 | build_section = "target.{}".format(d.getVar('SNAPSHOT_BUILD_SYS', True)) |
94 | config.add_section(build_section) | 96 | config.add_section(build_section) |
95 | 97 | ||
96 | config.set(build_section, "llvm-config", e(llvm_config)) | 98 | config.set(build_section, "llvm-config", e(llvm_config_build)) |
97 | 99 | ||
98 | config.set(build_section, "cxx", e(d.expand("${RUST_BUILD_CXX}"))) | 100 | config.set(build_section, "cxx", e(d.expand("${RUST_BUILD_CXX}"))) |
99 | config.set(build_section, "cc", e(d.expand("${RUST_BUILD_CC}"))) | 101 | config.set(build_section, "cc", e(d.expand("${RUST_BUILD_CC}"))) |
@@ -169,6 +171,14 @@ rust_runx () { | |||
169 | unset CXXFLAGS | 171 | unset CXXFLAGS |
170 | unset CPPFLAGS | 172 | unset CPPFLAGS |
171 | 173 | ||
174 | # Copy the natively built llvm-config into the target so we can run it. Horrible, | ||
175 | # but works! | ||
176 | if [ ${RUST_ALTERNATE_EXE_PATH_NATIVE} != ${RUST_ALTERNATE_EXE_PATH} ]; then | ||
177 | mkdir -p `dirname ${RUST_ALTERNATE_EXE_PATH}` | ||
178 | cp ${RUST_ALTERNATE_EXE_PATH_NATIVE} ${RUST_ALTERNATE_EXE_PATH} | ||
179 | chrpath -d ${RUST_ALTERNATE_EXE_PATH} | ||
180 | fi | ||
181 | |||
172 | oe_cargo_fix_env | 182 | oe_cargo_fix_env |
173 | 183 | ||
174 | python3 src/bootstrap/bootstrap.py ${@oe.utils.parallel_make_argument(d, '-j %d')} "$@" --verbose | 184 | python3 src/bootstrap/bootstrap.py ${@oe.utils.parallel_make_argument(d, '-j %d')} "$@" --verbose |