Re: [PATCH v2 1/5] rust: Fetch cargo from rust-snapshot dir.

Yash Shinde
2024-01-22T10:59:00Z

On 20-01-2024 22:33, Randy MacLeod wrote:
> On 2024-01-19 10:09 a.m., Yash.Shinde@windriver.com wrote:
>> From: Yash Shinde<Yash.Shinde@windriver.com>
>>
>> Fixes: Exception: no cargo executable found at
>> `${B}/rustc-1.74.1-src/build/x86_64-unknown-linux-gnu/stage0/bin/cargo`
>>
>> Fix the cargo binary path error on oe-selftest and path set to rust-snapshot dir.
>>
>> Patch sent to upstream-https://github.com/rust-lang/rust/pull/120125
>
>
> Good!
>
> It's a bit worrying that the PR pipeline failed a number of tests.
> Do you want to revise that and push a new commit there and do a v3 here?
>
I will look into the failure in the PR but for now we need this patch
for rust oe-selftest in Yocto.

Regards,
Yash
>
> ../Randy
>
>> Signed-off-by: Yash Shinde<Yash.Shinde@windriver.com>
>> ---
>> .../rust/files/cargo-path.patch | 37 +++++++++++++++++++
>> 1 file changed, 37 insertions(+)
>> create 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
>> new file mode 100644
>> index 0000000000..547df353d2
>> --- /dev/null
>> +++ b/meta/recipes-devtools/rust/files/cargo-path.patch
>> @@ -0,0 +1,37 @@
>> +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 deny_warnings:
>> + env["RUSTFLAGS"] += " -Dwarnings"
>> +
>> +- 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",
>
>
> --
> # Randy MacLeod
> # Wind River Linux