]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commit
rust: Upgrade 1.85.1->1.86.0
authorYash Shinde <Yash.Shinde@windriver.com>
Tue, 10 Jun 2025 06:19:54 +0000 (23:19 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 12 Jun 2025 12:12:02 +0000 (13:12 +0100)
commitc064ef18343a956aea397d36d2e7665d6c8afd7d
tree14f7900bb4187345909c0a18cac280c6e57a2faa
parent48b6851420ac54b181647bf23fe1ad86c75fa650
rust: Upgrade 1.85.1->1.86.0

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

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
13 files changed:
meta/conf/distro/include/tcmode-default.inc
meta/lib/oeqa/selftest/cases/rust.py
meta/recipes-devtools/rust/cargo_1.86.0.bb [moved from meta/recipes-devtools/rust/cargo_1.85.1.bb with 100% similarity]
meta/recipes-devtools/rust/files/0001-Define-more-ioctl-codes-on-riscv32gc-unknown-linux-g.patch
meta/recipes-devtools/rust/files/0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch
meta/recipes-devtools/rust/files/Zdual-proc-macros-additional-check.patch [deleted file]
meta/recipes-devtools/rust/files/rust-oe-selftest.patch
meta/recipes-devtools/rust/libstd-rs_1.86.0.bb [moved from meta/recipes-devtools/rust/libstd-rs_1.85.1.bb with 95% similarity]
meta/recipes-devtools/rust/rust-cross-canadian_1.86.0.bb [moved from meta/recipes-devtools/rust/rust-cross-canadian_1.85.1.bb with 100% similarity]
meta/recipes-devtools/rust/rust-llvm_1.86.0.bb [moved from meta/recipes-devtools/rust/rust-llvm_1.85.1.bb with 96% similarity]
meta/recipes-devtools/rust/rust-snapshot.inc
meta/recipes-devtools/rust/rust-source.inc
meta/recipes-devtools/rust/rust_1.86.0.bb [moved from meta/recipes-devtools/rust/rust_1.85.1.bb with 96% similarity]