summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/rust/rust.inc18
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/"
18export FORCE_CRATE_HASH="${BB_TASKHASH}" 18export FORCE_CRATE_HASH="${BB_TASKHASH}"
19 19
20RUST_ALTERNATE_EXE_PATH ?= "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config" 20RUST_ALTERNATE_EXE_PATH ?= "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config"
21export YOCTO_ALTERNATE_EXE_PATH = "${RUST_ALTERNATE_EXE_PATH}" 21RUST_ALTERNATE_EXE_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config"
22
22export YOCTO_ALTERNATE_MULTILIB_NAME = "/${BASELIB}" 23export 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