summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rust/files
Commit message (Collapse)AuthorAgeFilesLines
* rust: Upgrade 1.86.0 -> 1.87.0Yash Shinde2025-06-265-85/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rust stable version updated to 1.87.0. https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/ * Update LLVM data-layout for arm64. LLVM requires matching data layouts and the aarch64 llvm data-layout was updated to to allow using 32-bit signed/unsigned pointers when building 64-bit targets using 270, 271 and 272 address spaces. https://github.com/rust-lang/rust/commit/e9853961452b56997cc127b51308879b9cd09482 https://github.com/llvm/llvm-project/commit/c9f27275c1330a325661bdf14fb3bc444a5e3648 * Rebase existing patches with v1.87.0. * Two tests from the `ui` and `codegen` modules now fail only on riscv64. Enable them on arm32/64 and x86-32/64 targets, while restricting them on riscv64 via `only-<target_arch>` tags. Test Results Summary: +-----------+--------+---------+ | Machine | Passed | Ignored | +-----------+--------+---------+ | arm-32 | 28,320 | 901 | | arm-64 | 28,400 | 849 | | x86-32 | 28,285 | 885 | | x86-64 | 28,518 | 676 | | riscv-64 | 27,845 | 868 | +-----------+--------+---------+ * Backport triagebot.patch to skip tidy linkcheck when triagebot.toml is not present. Distribution tarballs won't include triagebot.toml, which causes tidy checks to fail. This backport ensures tidy checks can still run successfully even when the file is missing. https://github.com/rust-lang/rust/pull/142666/commits * During rust installation, some binaries were installed from 'stage2-tools' built path to '${D}${bindir}'. However, from v1.87 the stage2-tools are no longer built by default. Update logic to install from `stage1-tools` instead. (From OE-Core rev: 16ce25e6970b4a50f6433606a0c87d22ec74ea5a) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.85.1->1.86.0Yash Shinde2025-06-124-109/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rust stable version updated to 1.86.0. https://blog.rust-lang.org/2025/04/03/Rust-1.86.0.html * Add pkgconfig-native and openssl to resolve openssl-sys crate dependency on pkg-config. As per rust document this is a required dependency. Fixes: | error: failed to run custom build command for `openssl-sys v0.9.106` | Could not find openssl via pkg-config: | The pkg-config command could not be found. | | Most likely, you need to install a pkg-config package for your OS. | Try `apt install pkg-config`, or `yum install pkg-config`, | or `pkg install pkg-config`, or `apk add pkgconfig` depending on your distribution https://crates.io/crates/openssl-sys/0.9.108/dependencies https://github.com/rust-lang/rust/blob/master/INSTALL.md#dependencies * Add Ninja as a dependency for building Rust to prevent bootstrap build regression. Fixes: | Building LLD for x86_64-unknown-linux-gnu | | Couldn't find required command: ninja (or ninja-build) | | You should install ninja as described at | <https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages>, | or set `ninja = false` in the `[llvm]` section of `config.toml`. | Alternatively, set `download-ci-llvm = true` in that `[llvm]` section | to download LLVM rather than building it. * Add bash to DEPENDS to resolve missing dependency for subtree-sync.sh Fixes: ERROR: rust-1.86.0-r0 do_package_qa: QA Issue: /usr/lib/rustlib/src/rust/library/portable-simd/subtree-sync.sh contained in package rust requires /bin/bash, but no providers found in RDEPENDS:rust? [file-rdeps] * Add do_install:append() task to remove cargo bin from rust native builds. This resolves the following conflict: Fixes: ERROR: libstd-rs-1.86.0-r0 do_prepare_recipe_sysroot: The file /usr/bin/cargo is installed by both rust-native and cargo-native, aborting * Update Unicode-3.0 license checksums. License-Update: Copyright and license files to distributions are updated. https://github.com/rust-lang/rust/commit/f9c16997dc016a3ef1456f56df2ab564a1c48cb2 It adds copyright and license files (including HTML versions) to distributions, aligns with license compliance tools like reuse, and ensures all required license texts are properly included and formatted. * Disable building of extended Rust tools to reduce build time and filesystem usage. Update config.toml to disable building of extended Rust tools that are not required. This helps minimize unnecessary build time and filesystem usage. * The "remote-test-server" bin is now generated in stage2-tools-bin dir rather than stage1. Update the test suite accordingly. * Fix do_package QA issue by packing missing zsh files and directories: Fixes: do_package: QA Issue: rust: Files/directories were installed but not shipped in any package: /usr/share/zsh /usr/share/zsh/site-functions /usr/share/zsh/site-functions/_cargo Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install * From v1.86.0, a "self-contained" LLD is built as part of rust bootstrap build. This results in additional build time and installations. Disable rust-lld in config.toml to prevent it. References: https://github.com/rust-lang/rust/pull/135001 https://github.com/rust-lang/rust/commit/8744b44e6bde053f7656a3c727c968177ee8e4b6 * Drop Zdual-proc-macros-additional-check.patch patch since it's merged with v1.86.0 https://github.com/rust-lang/rust/commit/139d6ba054a1a4cc5fe64981ad46fd5547bd4916 * LTO config is applied to rustdoc from v1.86.0. Rebase 0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch which disables it to avoid suffixes in binaries causing non-reproducibility. https://github.com/rust-lang/rust/commit/1fe351b * Restrict tests using "//@only <target_arch>" to avoid failures on riscv64, which is now part of default AB testing. Since riscv64 is Tier 2 with no automated testing, some tests may fail. This approach ensures tests continue running on supported architectures while skipping them on riscv64. https://doc.rust-lang.org/rustc/platform-support.html#tier-2-with-host-tools (From OE-Core rev: c064ef18343a956aea397d36d2e7665d6c8afd7d) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Disable cross-unwinding support in llvm libunwindKhem Raj2025-05-291-0/+46
| | | | | | | | | | | | | This is default in LLVM but rust does not use cmake to build itself so it needs to replicate the behavior Fixes rust build with clang/musl for aarch64 (From OE-Core rev: f05d42d11e56cbbda6034bd7f773dc690b68bdbd) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: re-enable the unit tests that are previously ignoredDeepesh Varatharajan2025-05-151-44/+0
| | | | | | | | | | | | Some unit tests were previously marked as ignored due to failures in earlier versions of Rust. With the upgrade to Rust 1.85.1, these tests are now passing consistently. They've been re-enabled and verified to run successfully on the latest version. (From OE-Core rev: 56149c8c2108973666251e21609a7210a91984cf) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Fix build with GCC-15 on aarch64/muslKhem Raj2025-05-011-0/+66
| | | | | | | | | | | | | GCC-15 has _CHKFEAT_GCS defined in arm_acle.h to indicate gcs intrinsics support, this trips llvm libunwind gcs feature detection logic to set gcs feature on. However the contructs used in unwindlib are assuming clang and the needed target attribute is not available in gcc it should be +gcs to work with both clang and gcc (From OE-Core rev: aa5b42b32093fdd10e0a8f8a124322610c84f60b) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: re-enable the unit tests that are ignoredDeepesh Varatharajan2025-04-231-100/+0
| | | | | | | | | | | | Some unit tests were previously marked as ignored due to failures in earlier versions of Rust. With the upgrade to Rust 1.85.1, these tests are now passing consistently. They've been re-enabled and verified to run successfully on the latest version. (From OE-Core rev: 65c207fb034848f9ef0de8cf8725c5eded363aca) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: re-enable the unit tests that are ignoredDeepesh Varatharajan2025-04-201-95/+0
| | | | | | | | | | | | | Some unit tests were previously marked as ignored due to failures in earlier versions of Rust. With the upgrade to Rust 1.85.1, these tests are now passing consistently. They've been re-enabled and verified to run successfully on the latest version. (From OE-Core rev: 775108f131412122beb2b844dc5e2a4d47ce3b89) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cargo-c,rust: Fix build on risv32Khem Raj2025-04-102-236/+112
| | | | | | | | | | Apply fix in libc that are needed for rustix-0.38 to build. (From OE-Core rev: c21fd6f1c0b6a9df9950c541025f24e342b7a118) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.85.0->1.85.1Yash Shinde2025-04-011-41/+0
| | | | | | | | | | | | | Rust stable version updated to 1.85.1 https://blog.rust-lang.org/2025/03/18/Rust-1.85.1.html Dropped patches: downgrade-bootstrap-cc.patch since it's merged with v1.85.1. (From OE-Core rev: b141115b9c8e052df096e55d92972b1db4c84f4e) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.84.1->1.85.0Yash Shinde2025-04-017-282/+360
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rust stable version updated to 1.85.0 https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html Some of the major updates: - Update LIC_FILES_CHKSUM in libstd-rs and rust recipes. License-Update: Unicode license text is updated to Unicode-3.0 License. https://github.com/rust-lang/rust/commit/6d2a3e9786ec43a0e0af20386e7046328296ac86 [RP: Update LICENSE to reference Unicode-3.0] - Pass '-Zforce-unstable-if-unmarked' to RUSTFLAGS in libstd-rs.bb Fix: https://github.com/rust-lang/rust/issues/133857#issuecomment-2526341227 - Downgrade bootstrap cc version causing bootstrap to fail on custom targets. (Backported from v1.85.1) Fix: https://github.com/rust-lang/rust/pull/137460/commits/e4ca11f87ffca8c63aa56d45b46e62b6acc58bd7 - Explicitly set float ABI for all ARM 32 bits targets. Fix: https://github.com/rust-lang/rust/commit/a51fefcaab835b310e2e26005b50982d0049d905 - Rust v1.85.0 tarball doesn't ship gcc tree. Drop "remove_gcc_directory" postfunc which removed it and prevented the bloat. Fix: https://github.com/rust-lang/rust/commit/13c3f9b9498013837782b46120085ea19ca75518 Adapted the patch changes with v1.85.0: repro-issue-fix-with-cc-crate-hashmap.patch revert-link-std-statically-in-rustc_driver-feature.patch rust-oe-selftest.patch rv32-cargo-rustix-0.38.40-fix.patch Dropped patches: fix-tidy-check-failure.patch since it's merged with v1.85.0. (From OE-Core rev: 3130069fdebb92f20b962fa8074564a27c3fb6b9) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Oe-selftest changes for rust v1.84.1Deepesh Varatharajan2025-03-272-0/+31
| | | | | | | | | | | | | | Ignore the failing unit test. The tidy check failed due to a typo, which was already reported and fixed in the Rust upstream. Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/8e7734978245522cbbd14e53e08e888faf031ded] (From OE-Core rev: 94a244a14075ead1b3b5e966c0fe713cd448cad8) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Fix build failure when multilibs are enabledDeepesh Varatharajan2025-03-271-0/+31
| | | | | | | | | | | | | | | When multilibs are enabled, building rust is failing because of the following commit https://github.com/rust-lang/rust/commit/68034f837a39387e49fc7d7c5b088f5372a1127e with stage1/rustc cannot able to find dependent *.so files. The issue is been fixed inrust-master with the following commit by passing the necessary library paths before executing stage1/rustc Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/139d6ba054a1a4cc5fe64981ad46fd5547bd4916] (From OE-Core rev: ab29b970ba7e08eabca92018d103af5f249ed2c5) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.83.0->1.84.1Deepesh Varatharajan2025-03-275-216/+255
| | | | | | | | | | | | | | | | | | | | | | | | | Rust stable version updated to 1.84.1. https://blog.rust-lang.org/2025/01/30/Rust-1.84.1.html Renamed and modified the below patch to adapt the new version. rv32-cargo-rustix-0.38.37-fix.patch->rv32-cargo-rustix-0.38.38-fix.patch Modified the below patches to adapt the new version. repro-issue-fix-with-cc-crate-hashmap.patch revert-link-std-statically-in-rustc_driver-feature.patch Dropped the below patches : 0001-NFC-fix-build-failure-100993.patch https://github.com/llvm/llvm-project/commit/6ee49080e4bb43efe7ede10bed15935853bbd434 revert-Zdual-proc-macros-additional-check.patch Issue is fixed in rust-master and the fix is backported in the subsequent patch of the series. (From OE-Core rev: 4265f668de8c6708cb3a003ad655559031724149) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Oe-selftest changes for rust v1.83.0Deepesh Varatharajan2025-03-051-0/+31
| | | | | | | | | | | | Few unit tests are failing for x86_64 arch. Ignore the failing unit tests. Upstream-Status: Pending (From OE-Core rev: c71f9efc3140d279813ff6eb474fdbf5e677e348) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.82.0->1.83.0Deepesh Varatharajan2025-03-057-200/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rust stable version updated to 1.83.0. https://blog.rust-lang.org/2024/11/28/Rust-1.83.0.html Renamed and modified the below patch to adapt the new version. rv32-cargo-rustix-0.38.34-fix.patch->rv32-cargo-rustix-0.38.37-fix.patch Modified the below patches to adapt the new version. repro-issue-fix-with-cc-crate-hashmap.patch revert-link-std-statically-in-rustc_driver-feature.patch Dropped: zlib-off64_t.patch https://github.com/madler/zlib/commit/a566e156b3fa07b566ddbf6801b517a9dba04fa3kq Because of the following commit , https://github.com/rust-lang/rust/commit/68034f837a39387e49fc7d7c5b088f5372a1127e when we enable lib32, getting build failure because there is a check for target support for "-Zdual-proc-macros" flag not functioning properly when lib32 is enabled in the build environment. So for now reverting this commit and bring back the previous behavior, where the "-Zdual-proc-macros" flag is always added for building proc macros, regardless of the target architecture's support. This would bypass the check introduced in the patch, allowing the build to proceed without error, even when building for a 64-bit architecture with lib32 enabled. (From OE-Core rev: 40d8dafdf556d7ce79c12a6de872193be9a0928a) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Oe-selftest changes for rust v1.82.0Deepesh Varatharajan2025-02-201-0/+48
| | | | | | | | | | | | A few tests are getting failed with x86 arch.The unsupported/failing tests are added to the exclude list and ignore the failing unit tests. Upstream-Status: Pending (From OE-Core rev: b1340173be2a3a91fbb135eb0e24e50c3b996425) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: oe-selftest issue fix with v1.82Deepesh Varatharajan2025-02-201-0/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | A new feature "Link std statically in rustc_driver" was introduced in rust_1.82 [https://github.com/rust-lang/rust/pull/122362],and which is causing the below failure in oe-selftest. Running unittests src/main.rs (build/x86_64-unknown-linux-gnu/stage1-rustc/ x86_64-poky-linux-gnu/release/deps/rustc_main-92223b15c9f2d827) uploaded ".../build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-poky-linux-gnu/ release/deps/rustc_main-92223b15c9f2d827", waiting for result /tmp/work/test4056/rustc_main-92223b15c9f2d827: error while loading shared libraries: librustc_driver-fb0866b1cd913c20.so: cannot open shared object file: No such file or directory The rustc_main binary depends on the librustc_driver-*.so file. However, this file has not been copied to QEMU. If we manually copy the file into QEMU and export the LD_LIBRARY_PATH, the issue does not occur. Issue reprorted to upstream and reverted the buggy code as a workaround. Upstream-Status: Inappropriate [reported at https://github.com/rust-lang/rust/issues/136237] (From OE-Core rev: 977bd1a10771a6588e596e1bbfd49e9af659aa4a) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.81.0->1.82.0Deepesh Varatharajan2025-02-204-102/+181
| | | | | | | | | | | | | | | Rust stable version updated to 1.82.0. https://blog.rust-lang.org/2024/10/17/Rust-1.82.0.html Renamed the below patch to adapt the new version. rv32-cargo-rustix-0.38.28-fix.patch->rv32-cargo-rustix-0.38.34-fix.patch Dropped: rv32-rustix-libc-backend.patch [addressed with rv32-cargo-rustix-0.38.34-fix.patch] (From OE-Core rev: cfa431e734a642796140347f09c3c54b41a7bb75) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: restore parallel builds, disable lto only for rustdocAlexander Kanavin2025-02-052-26/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | The original reproducibility fix was problematic for a couple reasons: - disabling both lto and parallel builds had an unfortunate effect of nearly doubling rust-native and rust build times (which are slow to begin with). Disabling lto hurts runtime performance too. - both of these things were done for the *entire build*, while the only problematic item is the librustdoc crate. - lto=off option in config.toml has an effect only on building rustc (the compiler itself), and doesn't help with rustdoc reproducibility. Actual fix is the codegen-units setting, which indirectly disables lto via giving llvm only one unit to work with at a time. After some digging, here's a more targeted fix for the problem. Why librustdoc is non-reproducible, but not anything else remains a mystery, hidden deep in rust-llvm's lto optimization code. (From OE-Core rev: a1977407a88a2004c3a6d2dba1d5bfe1aa1664b2) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: increase test timeout againAdrian Freihofer2025-01-201-1/+1
| | | | | | | | | | | | | | Fixes [YOCTO #15625] The first attempt to get around the timeout was to double it from 5000 to 10000, which doesn't seem to be enough. Let's try to fix this by extending the timeout by a factor of 10. (From OE-Core rev: fb19e038582a2bfc414465ef396c30197f67128f) Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.80.1->1.81.0Deepesh Varatharajan2025-01-144-106/+58
| | | | | | | | | | | | | | | | | | https://blog.rust-lang.org/2024/09/05/Rust-1.81.0.html Drop the following backported patches which is addressed with rust v1.81.0 upgrade. 0001-cargo-do-not-write-host-information-into-compilation.patch https://github.com/rust-lang/cargo/commit/2db0bab16139d094f689587b73539aae386a1919 hardcodepaths.patch https://github.com/rust-lang/rust/commit/28503d69ac204ff208d115aea30dc09d6fca8728 (From OE-Core rev: 611ec9ffbac974f472a828277ba7f3e344e99ca3) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.79.0->1.80.0Harish Sadineni2024-11-181-154/+45
| | | | | | | | | | | | | | | | | Update the patch files with rust v1.80.0. The patch repro-issue-fix-with-cc-crate-hashmap.patch addresses the rust reprouciblity issue by correcting the way hash values are generated for different build paths. https://blog.rust-lang.org/2024/07/25/Rust-1.80.0.html (From OE-Core rev: d68449da0df795abe3233383a82d0b6b7908d736) Signed-off-by: Sunil Dora <SunilKumar.Dora@windriver.com> Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Add patch to increase timeout in process-sigpipe rust selftestPeter Tatrai2024-11-121-0/+31
| | | | | | | | | | | | | | | | | This commit adds a patch to increase the timeout in the process-sigpipe rust selftest to prevent occasional failures under heavy server load. The patch aims to reduce the likelihood of false negatives when the test environment is overloaded. Patch file: * oeqa-selftest-Increase-timeout-in-process-sigpipe-ru.patch Fixes [YOCTO #15625] (From OE-Core rev: 12c85933e2150ba78a8a914787e400c95c5cf585) Signed-off-by: Peter Tatrai <peter.tatrai.ext@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.78.0->1.79.0Yash Shinde2024-08-294-70/+91
| | | | | | | | | | | | | | | | Update the patch files with rust v1.79.0. Drop the following backported patch which is merged with rust v1.79 upgrade. - cross-targets-backport.patch https://blog.rust-lang.org/2024/06/13/Rust-1.79.0.html (From OE-Core rev: 0e20d8e0a292f720c9ed419547d8f6d738c5d4d8) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Oe-selftest changes for rust v1.79Yash Shinde2024-08-291-29/+40
| | | | | | | | | | | | | | | | | | | | | | | | * Sort the exclude list in alphabetical order. * Add some of the upsupported/failing tests to the exclude list and ignore the failing unit tests. * Remove duplicated tests from the exclude list. * Testing summary Target PASS SKIPPED ARM 17241 599 ARM64 17279 561 MIPS64 17228 612 PPC 17194 629 X86 17257 583 X86-64 17416 424 (From OE-Core rev: 61ec0f0f78d9db4c3fc02365713d5fd77b78a7ea) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.77.2->1.78.0Yash Shinde2024-08-209-251/+161
| | | | | | | | | | | | | | | | * Drop the following backported patches which are merged with rust v1.78 upgrade. - 0001-Revert-Map-source-absolute-paths-to-OUT_DIR-as-relat.patch - repro-issue-fix-with-v175.patch - deadcode-backport.patch https://blog.rust-lang.org/2024/05/02/Rust-1.78.0.html (From OE-Core rev: a3fb378afcc1fb01e9813fe902dbd6090ded75d7) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Oe-selftest changes for rust v1.78Yash Shinde2024-08-201-2/+62
| | | | | | | | | | Add some of the upsupported/failing tests to the exclude list and ignore the failing unit tests. (From OE-Core rev: 81bbd6db47f45628ff4be400e1f2fa5b09ccd0bb) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Upgrade 1.76.0->1.77.0Yash Shinde2024-08-094-85/+27
| | | | | | | | | | | | * Drop backported patch 0001-Handle-vendored-sources-when-remapping-paths.patch as it's merged with rust v1.77.0. https://blog.rust-lang.org/2024/03/21/Rust-1.77.0.html (From OE-Core rev: 8b6b224fc116150c0af658473eecd05b742de7b1) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Oe-selftest changes for rust v1.77Yash Shinde2024-08-092-3/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the file paths for v1.77 and fix the dead code error as follows: Compiling coverage-dump v0.1.0 (/home/poky/build-st/tmp/work/core2-64-poky-linux/rust/1.77.0/rustc-1.77.0-src/src/tools/coverage-dump) error: field `0` is never read --> src/tools/coverage-dump/src/covfun.rs:222:15 | 222 | Expansion(u32), | --------- ^^^ | | | field in this variant | = note: `-D dead-code` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(dead_code)]` help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field | 222 | Expansion(()), | ~~ error: could not compile `coverage-dump` (bin "coverage-dump") due to 1 previous error Only the required change is backported here to run the build without any errors. Other changes are merged with the commit in v1.78. Reference: https://github.com/rust-lang/rust/commit/9a5034a20ed8b055dc615271f9d9cf27f9e494f0#diff-d4ecc6273352a2a8ebd02c45233d9bff7c6694f20b67ddad0614af7a89c06748 (From OE-Core rev: 072df9d3d8792a6f0250cc5e37545f04e6a046ec) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: reproducibility issue fix with v1.76Yash Shinde2024-08-091-0/+59
| | | | | | | | | | | | A few crates are using the updated version of the 'cc' crate and this is causing the generated object file names containing a unique hashmap id. The hashmap addition to generated files is reverted here. (From OE-Core rev: 25fed23ea9dcd1e7f0c11a1e3a988a33d5676c0b) 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.75.0->1.76.0Yash Shinde2024-08-097-1666/+26
| | | | | | | | | | | | | | | | | | | | | | | * Drop "--doc" option for rust oe-selftest since it is not supported on bootstrap builds for cross-targets. * Drop the following backported patches which are merged with rust v1.76 upgrade. - custom-target-cfg.patch - rustc-bootstrap.patch - rv32-missing-syscalls.patch - target-build-value.patch https://blog.rust-lang.org/2024/02/08/Rust-1.76.0.html * Drop 'rust-rustdoc' and 'rust-dbg' from 'exclude_packages' list to check for rust reproducibility. (From OE-Core rev: 71d17ed3c7be029fc68e9dd3f5d6c4aa72ef861a) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: Oe-selftest fixes for rust v1.76Yash Shinde2024-08-092-0/+352
| | | | | | | | | | Add the failing tests in rust v1.76 to the exclude list and add "ignore" tags to ignore failing unit test cases. (From OE-Core rev: 75399802515ac423503e637281a4585dd00d7c75) Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: rustdoc reproducibility issue fixSundeep KOKKONDA2024-07-301-0/+26
| | | | | | | | | | | | | | The 'codegen-units' option split the crate into multiple compilation units for parallel compilation. Currently, this split is causing the rustdoc to generate differnt binary between the builds. To fix this the codegen-units & the lto options are disabled. More info about options: https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units https://doc.rust-lang.org/rustc/codegen-options/index.html#lto (From OE-Core rev: 0c00875de10b171f4ff2990af351a8124ec7e972) Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: add reproducibility patch to eliminate host leakageAlexander Kanavin2024-05-281-0/+51
| | | | | | | | | | [YOCTO #15185] (From OE-Core rev: 924df18b47e9a69fa295bafe37bdb39d8eaea2bb) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rust: correctly link rust-snapshot into build/stage0Alexander Kanavin2024-05-221-37/+0
| | | | | | | | | | | | | | | | | | 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: bf5732e2b235ce06fa1f24fe8f0dbcbc068500e3) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* 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>