mirror of
https://git.yoctoproject.org/poky
synced 2026-03-19 13:49:41 +01:00
rust: correctly link rust-snapshot into build/stage0
This does not seem to be used in regular builds, but is beneficial in rust selftest, where it allows dropping a custom patch that is unsuitable for upstream (and was rejected by them). Also remove an obsolete comment that seems related to the code but describes something that was resolved long time ago. I have confirmed that the rust selftest continues to pass with just this one commit on top of master (as the following changes do break the selftest). (From OE-Core rev: 9b23f995fbc1886c36f02b0c6e1ccaf2ee0f6daa) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit bf5732e2b235ce06fa1f24fe8f0dbcbc068500e3) Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
04976a1e40
commit
dd941e5746
@@ -1,37 +0,0 @@
|
||||
Fix the cargo binary path error and ensure that it is fetched
|
||||
during rustc bootstrap in rust oe-selftest.
|
||||
|
||||
======================================================================
|
||||
ERROR: test_cargoflags (bootstrap_test.BuildBootstrap)
|
||||
----------------------------------------------------------------------
|
||||
Traceback (most recent call last):
|
||||
File "/home/build-st/tmp/work/cortexa57-poky-linux/rust/1.74.1/rustc-1.74.1-src/src/bootstrap/bootstrap_test.py", line 157, in test_cargoflags
|
||||
args, _ = self.build_args(env={"CARGOFLAGS": "--timings"})
|
||||
File "/home/build-st/tmp/work/cortexa57-poky-linux/rust/1.74.1/rustc-1.74.1-src/src/bootstrap/bootstrap_test.py", line 154, in build_args
|
||||
return build.build_bootstrap_cmd(env), env
|
||||
File "/home/build-st/tmp/work/cortexa57-poky-linux/rust/1.74.1/rustc-1.74.1-src/src/bootstrap/bootstrap.py", line 960, in build_bootstrap_cmd
|
||||
raise Exception("no cargo executable found at `{}`".format(
|
||||
Exception: no cargo executable found at `/home/build-st/tmp/work/cortexa57-poky-linux/rust/1.74.1/rustc-1.74.1-src/build/x86_64-unknown-linux-gnu/stage0/bin/cargo`
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/rust-lang/rust/pull/120125]
|
||||
|
||||
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
|
||||
---
|
||||
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
|
||||
--- a/src/bootstrap/bootstrap.py
|
||||
+++ b/src/bootstrap/bootstrap.py
|
||||
@@ -954,9 +954,11 @@
|
||||
if "RUSTFLAGS_BOOTSTRAP" in env:
|
||||
env["RUSTFLAGS"] += " " + env["RUSTFLAGS_BOOTSTRAP"]
|
||||
|
||||
- env["PATH"] = os.path.join(self.bin_root(), "bin") + \
|
||||
- os.pathsep + env["PATH"]
|
||||
- if not os.path.isfile(self.cargo()):
|
||||
+ cargo_bin_path = os.path.join(self.bin_root(), "bin", "cargo")
|
||||
+ if not os.path.isfile(cargo_bin_path):
|
||||
+ cargo_bin_path = os.getenv("RUST_TARGET_PATH") + "rust-snapshot/bin/cargo"
|
||||
+ env["PATH"] = os.path.dirname(cargo_bin_path) + os.pathsep + env["PATH"]
|
||||
+ else:
|
||||
raise Exception("no cargo executable found at `{}`".format(
|
||||
self.cargo()))
|
||||
args = [self.cargo(), "build", "--manifest-path",
|
||||
@@ -7,7 +7,6 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
|
||||
file://rv32-missing-syscalls.patch;patchdir=${RUSTSRC} \
|
||||
file://rv32-rustix-libc-backend.patch;patchdir=${RUSTSRC} \
|
||||
file://rv32-cargo-rustix-0.38.19-fix.patch;patchdir=${RUSTSRC} \
|
||||
file://cargo-path.patch;patchdir=${RUSTSRC} \
|
||||
file://custom-target-cfg.patch;patchdir=${RUSTSRC} \
|
||||
file://rustc-bootstrap.patch;patchdir=${RUSTSRC} \
|
||||
file://target-build-value.patch;patchdir=${RUSTSRC} \
|
||||
|
||||
@@ -40,8 +40,6 @@ RUST_ALTERNATE_EXE_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-co
|
||||
# own vendoring.
|
||||
CARGO_DISABLE_BITBAKE_VENDORING = "1"
|
||||
|
||||
# We can't use RUST_BUILD_SYS here because that may be "musl" if
|
||||
# TCLIBC="musl". Snapshots are always -unknown-linux-gnu
|
||||
setup_cargo_environment () {
|
||||
# The first step is to build bootstrap and some early stage tools,
|
||||
# these are build for the same target as the snapshot, e.g.
|
||||
@@ -59,8 +57,8 @@ do_rust_setup_snapshot () {
|
||||
|
||||
# Some versions of rust (e.g. 1.18.0) tries to find cargo in stage0/bin/cargo
|
||||
# and fail without it there.
|
||||
mkdir -p ${RUSTSRC}/build/${BUILD_SYS}
|
||||
ln -sf ${WORKDIR}/rust-snapshot/ ${RUSTSRC}/build/${BUILD_SYS}/stage0
|
||||
mkdir -p ${RUSTSRC}/build/${RUST_BUILD_SYS}
|
||||
ln -sf ${WORKDIR}/rust-snapshot/ ${RUSTSRC}/build/${RUST_BUILD_SYS}/stage0
|
||||
|
||||
# Need to use uninative's loader if enabled/present since the library paths
|
||||
# are used internally by rust and result in symbol mismatches if we don't
|
||||
|
||||
Reference in New Issue
Block a user