summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rust/files
Commit message (Collapse)AuthorAgeFilesLines
* rust: reproducibility issue fix with v1.75Sundeep KOKKONDA2024-03-181-12/+25
| | | | | | | | | | Patch updated with upstream fix. https://github.com/rust-lang/rust/pull/121959/commits/a9a979839bbdfec48c75d618ab0dce8a953589b8 (From OE-Core rev: 2eceaa4b6ca398ec233b18c1064970bdf68a9258) Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Fix build failure re-appeared on riscv32Khem Raj2024-03-051-5/+25
| | | | | | | | | | Refresh the rustix-0.38.19 patch to include FICLONE definition which fixes the build issue surfaced with rust 1.75 (From OE-Core rev: 693e7cb3eb0cdc715a45ddcba8eb09dc9c5c31b8) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: reproducibility issue fix with v1.75Yash Shinde2024-03-011-0/+23
| | | | | | | | | | | | | | | With 1.75 rust release, the '.rustc' section of shared object libs are embedded with absolute path names which is casuing reproducibiluty issues. This change will fix the path name format back to '/rust/$hash' as in earlier versions. Below are the links for detailed bug description & discusssion with upstream rust. https://github.com/rust-lang/rust/issues/120825#issuecomment-1964307219 https://github.com/rust-lang/rust/issues/120825#issuecomment-1964652656 (From OE-Core rev: a80ce6e3c023809d1ec13d19e8acb25770b54737) Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com> Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.74.1 -> 1.75.0Yash Shinde2024-03-0114-761/+106
| | | | | | | | | | | | | | | | | | | | | * Drop backported musl fixes. * Set `change-id` rather than `changelog-seen` to fix build warning. * Add fixes for 4b7e0a0b56aa24 ("Handle vendored sources when remapping paths") which otherwise cause build failures: | thread 'main' panicked at src/core/builder.rs:1795:26: | std::fs::read_dir(registry_src) failed with No such file or directory (os= error 2) https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html (From OE-Core rev: 9aec2c6c777388bb3129aa4c4f27a40f912522b4) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust/cargo: Build fixes to rust for rv32 targetKhem Raj2024-02-083-0/+1608
| | | | | | | (From OE-Core rev: 0b1666b921b99732798b62b900436ab79876a6a2) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Fix assertion failure error on oe-selftestYash Shinde2024-01-261-0/+26
| | | | | | | | | | | | | Fixes: thread 'main' panicked at 'assertion failed: `(left == right)` left: `x86_64-unknown-linux-gnu`, right: `x86_64-poky-linux-gnu`: Cannot obtain compiler for non-native build triple at stage 0', compile.rs:1474:13 Add correct target value for cross-compiled targets on stage1 during rust oe-selfest. (From OE-Core rev: b8c1091276b6b9b1ae162dd19b2652f493a686d8) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Enable RUSTC_BOOTSTRAP to use nightly features during rust oe-selftest.Yash Shinde2024-01-261-0/+21
| | | | | | | | | | | | | Fixes: error: the option `Z` is only accepted on the nightly compiler When rust.channel is set to either beta or stable, we can't use nightly features on bootstrap without RUSTC_BOOTSTRAP. Set RUSTC_BOOTSTRAP=1 to use nightly features on stable or beta. (From OE-Core rev: 01a411223fb85fedf85472402f63f6cb2f32ed6b) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: detect user-specified custom targets in compiletestYash Shinde2024-01-261-0/+90
| | | | | | | | | | | | | Fixes: thread 'main' panicked at 'failed to gather the target spec for '<arch>-unknown-linux-gnu', synthetic_targets.rs:66:9 Detect and fetch custom target configurations when rustc is bootstrapped in rust oe-selftest. (From OE-Core rev: fdd9385d9845d628e10179598fc42d29519c5dfd) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Fetch cargo from rust-snapshot dir.Yash Shinde2024-01-261-0/+37
| | | | | | | | | | | | | | 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 (From OE-Core rev: 1a048b5ab7f891911beaa14eb9269033c84088dc) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.73.0 -> 1.74.0Alex Kiernan2023-12-309-292/+686
| | | | | | | | | | | | | | | | Replace musl fixes with backports from upstream. Add sysconfdir to config.toml to fix: | thread 'main' panicked at install.rs:92:9: | User doesn't have write access on `install.sysconfdir` path in `config.toml`. https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html (From OE-Core rev: 84f46dd2503bb0ef238fef0097c66fda88f6cbda) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.72.1 -> 1.73.0Alex Kiernan2023-12-302-21/+23
| | | | | | | | | https://blog.rust-lang.org/2023/10/05/Rust-1.73.0.html (From OE-Core rev: 728c40b939c6af6358a483237298ca834cbb8993) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.71.1 -> 1.72.0Alex Kiernan2023-12-305-109/+133
| | | | | | | | | | | | | | | | Drop getrandom-open64.patch (merged upstream). Revert https://github.com/rust-lang/cc-rs/commit/c4f414f449bb7cffba3bc923f277704d1d08a8ec ("Map source absolute paths to OUT_DIR as relative. (#684)") which causes hashed versions of the build path to be used as part of the filename of generated objects and hence reproducibility issues. https://blog.rust-lang.org/2023/08/24/Rust-1.72.0.html (From OE-Core rev: 30637cdeb31fae02544fdc643a455d0ebb126ee6) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.70.0 -> 1.71.0Alex Kiernan2023-12-135-178/+59
| | | | | | | | | | | | | Switch libstd-rs to use the dummy `sysroot` crate which represents the standard library crates. Target getrandom-open64.patch at 0.2.8 (merged for 0.2.9). Drop bootstrap_fail.patch (backport merged). https://blog.rust-lang.org/2023/07/13/Rust-1.71.0.html (From OE-Core rev: c3eba94ee44adcd3a0aa61f6b087c15c02e4697f) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest/rust: Add failed test cases to exclude list for Rust Oe-selftestYash Shinde2023-07-301-2324/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add the failing test cases in exclude_list to exclude them from testing during the Rust Oe-selftest. * Drop meta/recipes-devtools/rust/files/rust-oe-selftest.patch file as the failing tests are moved from being a patch to exclude_list in meta/lib/oeqa/selftest/cases/rust.py. * When updating to a newer version of Rust, it is manually needed to update the exclude_list. The tests that fail are observed to work on some versions and fail on others. These tests have been excluded in order to successfully complete testing of Rust Oe-selftest. * The tests that are passed and skipped are as follows- Target PASS SKIPPED ARM 15507 428 ARM64 15535 400 MIPS64 15479 456 X86 15528 407 X86-64 15643 292 Also, time the test execution and pass the time taken for inclusion in the test report. [RP: Note duration addiion in the commit log] (From OE-Core rev: e81197c4d3b36e9ad52e56708c21987cacd13147) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Fix BOOTSTRAP_CARGO failure during Rust Oe-selftestYash Shinde2023-07-301-0/+127
| | | | | | | | | | | | | BOOTSTRAP_CARGO command fails due to codegen flags like `-Cpanic` were prevented from being reflected in the current target configuration which leads to Rust build(rust version 1.70) failure in Oe-selftest. Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/9dffb52738e0b2ccd15af36d4607a709b21e020c] (From OE-Core rev: a48e3612b5dc0e58a89f88a914365e926101c90b) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oeqa/selftest: Add rust selftestsYash Shinde2023-07-191-0/+2324
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch implements Rust testing framework similar to other selftest, specifically the gcc selftest in OE. It uses the client and server based method to test the binaries for cross-target on the image. The test framework is a wrapper around the Rust build system as ./x.py test. It tests many functionalities of Rust distribution like tools, documentation, libraries, packages, tools, Cargo, Crater etc. Please refer the following link for detailed description of Rust testing:- https://rustc-dev-guide.rust-lang.org/tests/intro.html#tool-tests To support the rust tests in oe-core, the following functions were added:- setup_cargo_environment(): Build bootstrap and some early stage tools. do_rust_setup_snapshot(): Install the snapshot version of rust binaries. do_configure(): To generate config.toml do_compile(): To build "remote-test-server" for qemu target image. Approximate Number of Tests Run in the Rust Testsuite :- 18000 Approximate Number of Tests that FAIL in bitbake environment :- 100-150 Normally majority of the testcases are present in major folder "test/" It contributes to more than 80% of the testcases present in Rust test framework. These tests pass as expected on any Rust versions without much fuss. The tests that fail are of less important and contribute to less than 2% of the total testcases. These minor tests are observed to work on some versions and fail on others. They have to be added, ignored or excluded for different versions as per the behavior. These tests have been ignored or excluded in the Rust selftest environment to generate success of completing the testsuite. These tests work in parallel mode even in the skipped test mode as expected. Although the patch to disable tests is large, it is very simple in that it only disables tests. When updating to a newer version of Rust, the patch can usually be ported in a day. Tested for X86, X86-64, ARM, ARM64 and MIPS64 on Ubuntu 22.04. (From OE-Core rev: 7c3346d8fbe85302b605bb3f772b029ea7bfaa6c) Signed-off-by: pgowda <pgowda.cve@gmail.com> Signed-off-by: Vinay Kumar <vinay.m.engg@gmail.com> Signed-off-by: Yash Shinde <yashinde145@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.69.0 -> 1.70.0Alex Kiernan2023-06-072-45/+45
| | | | | | | | | | | | | Drop 0035-cmake-Enable-64bit-off_t-on-32bit-glibc-systems.patch as this is merged upstream in rust-llvm. https://blog.rust-lang.org/2023/06/01/Rust-1.70.0.html (From OE-Core rev: d1af583c290eb0cff5e36363f7531832a863a1a8) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.68.2 -> 1.69.0Alex Kiernan2023-05-054-103/+64
| | | | | | | | | | | | Rebase patches, drop crossbeam_atomic is this fully merged upstream. https://blog.rust-lang.org/2023/04/20/Rust-1.69.0.html (From OE-Core rev: 39e05f9b0fdc3f76f8b80a12989f78614bc9ea5c) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cargo: Fix build on musl/riscvKhem Raj2023-04-131-0/+98
| | | | | | | | | | libc needs fix for defining scope of SOCK_SEQPACKET (From OE-Core rev: 378da16ebe2917f26f9fe8cf654bced09ec6ecfe) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: update 1.67.1 -> 1.68.1Alexander Kanavin2023-04-042-44/+30
| | | | | | | | | | | | | Rebase patches; one of the vendored crossbeam versions has been removed upstream, and so crossbeam_atomic.patch is adjusted accordingly. Replace getrandom-open64.patch with a backport. (From OE-Core rev: f5accb4fae49342cbec21718ae7a427615bfcedd) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.66.1 -> 1.67.0Alex Kiernan2023-01-312-18/+6
| | | | | | | | | | | | | | | | | Disable ZStd to avoid needing libzstd in llvm (mirrors zlib disable). Generate complete list of rust-snapshot artefacts from src/stage0.json. Drop clippy-driver reproducibility change as the code is gone from upstream. Release notes: https://releases.rs/docs/1.67.0/ License-Update: Unicode-TOU text added (already in our license string) (From OE-Core rev: 4900e0c5cb8a092a1d77d4f26249afa59b241da6) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Merge all rustc-source patches into rust-source.incAlex Kiernan2023-01-122-0/+101
| | | | | | | | | | | | With the dim-sum approach to patching we had the same patch applied in many places, but not all, so that there were no guarantees that we were actually building agaginst the same thing in all recipes. (From OE-Core rev: 550c273f38d8e6d2d431908023e213c6b018d7ed) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cargo: Do not use open64 on musl anymoreKhem Raj2022-12-311-0/+29
| | | | | | | | | | The same rust getrandom patch is needed for cargo on target as well as it uses the same crate (From OE-Core rev: 44441c727a5301ab99ab8b4d8b8b1f61f0a810af) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust,libstd-rs: Fix build with latest muslKhem Raj2022-12-311-0/+168
| | | | | | | | | | newer musl do not provide lfs64 functions anymore since off_t is always 64bit on musl using normal functions would suffice (From OE-Core rev: f01b2ab83068e4d7f263c31dca2a3fa9ef77a98e) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cargo: Include crossbeam-utils patchAlex Kiernan2022-12-281-0/+81
| | | | | | | | | | We need patched crossbeam-utils in cargo as well as rust, move cargo alongside rust so they can both use the same patch. (From OE-Core rev: 39402790724014a39b265ee1978396a0514fdc98) Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust-cross-canadian: Fix for the issue caused by using sdk shellSundeep KOKKONDA2022-09-071-0/+19
| | | | | | | | | | | | | | | This is a fix for the fix in YOCTO #14878. When the shebang is more than 128 characters the default shell /bin/sh is used instead of SDK shell as a fallback, which causes problems with LD_LIBRARY_PATH. With this patch shell usage is avoided as we use a C wrapper and unset LD_LIBRARY_PATH that way. [YOCTO #14892] (From OE-Core rev: 7cd6faf4e0147eef557f83fb266a25935e26efff) Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: update 1.56.0 -> 1.56.1Alexander Kanavin2021-11-112-110/+0
| | | | | | | | | | | | This update includes fixes for the 'trojan source' vulnerability: https://blog.rust-lang.org/2021/11/01/Rust-1.56.1.html Drop two unused patches. (From OE-Core rev: 5ff0b0d8c6c37ebf916062f03a378fe0e34b1c53) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: initial merge of most of meta-rustRandy MacLeod2021-08-262-0/+110
In the meta-rust repo at commit: 448047c Upgrade to 1.54.0 (#359) Make the required directories: mkdir ../oe-core/meta/recipes-devtools/rust mkdir ../oe-core/meta/recipes-devtools/cargo mkdir ../oe-core/meta/recipes-example and then: cp recipes-devtools/rust/* ../oe-core/meta/recipes-devtools/rust cp recipes-devtools/cargo/* ../oe-core/meta/recipes-devtools/cargo cp lib/crate.py ../oe-core/meta/lib cp recipes-example/* ../oe-core/meta/recipes-example cp conf/distro/include/rust_* ../oe-core/meta/conf/distro/include/ cp classes/* ../oe-core/meta/classes/ cp recipes-core/packagegroups/packagegroup-rust-cross-canadian.bb ../oe-core/meta/recipes-core/packagegroups (From OE-Core rev: 3ed57578cca93ff1ba4e0bf3f25566e10659a2f9) Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>