From: Alexander Kanavin <alex.kanavin@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: Alexander Kanavin <alex@linutronix.de>
Subject: [PATCH 1/4] rust: correctly link rust-snapshot into build/stage0
Date: Thu, 16 May 2024 13:21:08 +0200 [thread overview]
Message-ID: <20240516112111.2145436-1-alex.kanavin@gmail.com> (raw)
From: Alexander Kanavin <alex@linutronix.de>
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).
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
.../rust/files/cargo-path.patch | 37 -------------------
meta/recipes-devtools/rust/rust-source.inc | 1 -
meta/recipes-devtools/rust/rust_1.75.0.bb | 6 +--
3 files changed, 2 insertions(+), 42 deletions(-)
delete mode 100644 meta/recipes-devtools/rust/files/cargo-path.patch
diff --git a/meta/recipes-devtools/rust/files/cargo-path.patch b/meta/recipes-devtools/rust/files/cargo-path.patch
deleted file mode 100644
index 9a50c402201..00000000000
--- a/meta/recipes-devtools/rust/files/cargo-path.patch
+++ /dev/null
@@ -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",
diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc
index b14221b6cb8..c83c8ec3a39 100644
--- a/meta/recipes-devtools/rust/rust-source.inc
+++ b/meta/recipes-devtools/rust/rust-source.inc
@@ -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} \
diff --git a/meta/recipes-devtools/rust/rust_1.75.0.bb b/meta/recipes-devtools/rust/rust_1.75.0.bb
index 76e1fe2d84a..8ef838ee90c 100644
--- a/meta/recipes-devtools/rust/rust_1.75.0.bb
+++ b/meta/recipes-devtools/rust/rust_1.75.0.bb
@@ -35,8 +35,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.
@@ -54,8 +52,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
--
2.39.2
next reply other threads:[~2024-05-16 11:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-16 11:21 Alexander Kanavin [this message]
2024-05-16 11:21 ` [PATCH 2/4] rust: add reproducibility patch to eliminate host leakage Alexander Kanavin
2024-05-16 11:21 ` [PATCH 3/4] rust: use rust-snapshot binaries only in rust-native Alexander Kanavin
2024-05-16 11:21 ` [PATCH 4/4] rust: build the default set of tools Alexander Kanavin
2024-05-18 21:55 ` [OE-core] [PATCH 1/4] rust: correctly link rust-snapshot into build/stage0 Alexandre Belloni
2024-05-19 0:27 ` Alexander Kanavin
2024-05-19 0:28 ` Alexander Kanavin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240516112111.2145436-1-alex.kanavin@gmail.com \
--to=alex.kanavin@gmail.com \
--cc=alex@linutronix.de \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox