Commit Graph

22 Commits

Author SHA1 Message Date
Jonas Jelonek
7b531ac66f rust: fix host build on aarch64 darwin
rust/host failed to compile on macOS running on Apple Silicon M1 Pro
because the host target triple is autogenerated to be
'arm64-unknown-linux-'. Rust doesn't have such a target triple, thus the
build fails because there are no pre-built artifacts for bootstrapping.

Fix this by setting RUSTC_HOST_ARCH to 'aarch64-apple-darwin' in case
our host is HOST_ARCH=arm64 and HOST_OS=darwin.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
(squashed 105fa3920e and c287e98af2)
2023-08-20 21:37:07 +08:00
Tianling Shen
d61b48687f rust: Update to 1.71.1
Version 1.71.1 (2023-08-03)
===========================

- Fix CVE-2023-38497: Cargo did not respect the umask when extracting dependencies
- Fix bash completion for users of Rustup
- Do not show `suspicious_double_ref_op` lint when calling `borrow()`
- Fix ICE: substitute types before checking inlining compatibility
- Fix ICE: don't use `can_eq` in `derive(..)` suggestion for missing method
- Fix building Rust 1.71.0 from the source tarball

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit a896412813)
2023-08-07 08:41:04 +08:00
Tianling Shen
4d6d2bcc08 rust: put host build dir to target build dir
When user runs `make clean` command, everything in `$(STAGING_DIR)`
(where we installed rust) will be removed, but `$(BUILD_DIR_HOST)`
(where we compiled rust and stored build stage) is untouched.

So when user starts a new build after that, OpenWrt buildroot will
still consider `rust` is installed already, resulting the build error
"cargo: command not found".

Fix this by moving to target build dir as well.

Fixes: f489e019ac ("rust: compile host package per target")

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit efdbac38dc)
2023-07-23 00:53:28 +08:00
Tianling Shen
9f76dc2e22 rust: Update to 1.71.0
Refreshed patches.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 971d326768)
2023-07-18 14:19:00 +01:00
Orne Brocaar
26de69a8f0 rust: compile host package per target
While the compiled binaries are intended to run on the host system, the
rust/host package does include the target matching the configured
OpenWrt target.

If using (for example) ./scripts/env to switch between different
OpenWrt configurations, this will cause issues if the different
configuration is for a different target. In such case there will be a
mismatch between the available Rust target and OpenWrt target and the
following error will be printed:

> error[E0463]: can't find crate for `core`
> note: the `XXX` target may not be installed

This fix will add the RUSTC_TARGET_ARCH as HOST_BUILD_DIR and CARGO_HOME
suffix, such that rust/host will be compiled in case an OpenWrt
configuration change causes the RUSTC_TARGET_ARCH to change.

Fixes: #21530

Signed-off-by: Orne Brocaar <info@brocaar.com>
[Applied Jeffery To's suggestion for build and install path]
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit f489e019ac)
2023-07-18 14:18:50 +01:00
Tianling Shen
312889a2bb rust: enable riscv64 support
rust natively supports riscv64 so let's enable it.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit 7ace3bb7d6)
2023-06-15 21:01:11 +08:00
Tianling Shen
e3fbc5a7fd rust: bump libc to 0.2.146
Fixes build with musl 1.2.4.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
(cherry picked from commit ba267237e7)
2023-06-07 16:46:02 +08:00
Luca Barbato
3f2856dfa0 rust: update to 1.70.0
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
(cherry picked from commit 81add12294)
2023-06-07 16:45:58 +08:00
Luca Barbato
1f9baddd43 rust: update to 1.69.0
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2023-04-21 06:09:47 +08:00
Luca Barbato
0db6a13526 rust: update to 1.68.2
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2023-04-03 02:30:53 +08:00
Oskari Rauta
49782b3db4 rust: update to 1.68.1
also add new variable CARGO_VARS to make it possible
to pass environment variables for cargo process.
This is necessary when for example, cross-compiling
netavark.

Signed-off-by: Oskari Rauta <oskari.rauta@gmail.com>
2023-03-31 03:35:41 +08:00
Tianling Shen
bb3082a1c5 rust: fix build with glibc
Don't set musl-specific options/ldflags when using glibc.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-24 02:08:47 +08:00
Tianling Shen
09d482c3b2 rust: enable use of prebuilt llvm toolchain
llvm-bpf is not ready for generic usage, so use prebuilt llvm toolchain
provided by the rust project to speedup build (~1hour faster).

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-24 02:08:47 +08:00
Tianling Shen
65ce42c401 maturin: adapt new rust build standard
While at it, move maturin out of rust directory.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-24 02:08:47 +08:00
Tianling Shen
e7016bb4bc rust: refactor build helper
Added new RustBinPackage, RustBinHostBuild wrapper.
Added new RUST_PKG_FEATURES flag.
Moved CARGO_HOME to STAGING_DIR_HOSTPKG.
Overrode default Build/Compile and Host/Compile to Cargo build.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-24 02:08:47 +08:00
Tianling Shen
473bc722ea rust: remove useless target dependencies and configuration
They are for the target build which is not supported yet, drop them.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-24 02:08:47 +08:00
Tianling Shen
513f751bcb rust: remove useless tarball package
These tarball cannot be reused, so simply drop them.

Also move cargo config to a file instead of using echo command.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2023-03-24 02:08:47 +08:00
Luca Barbato
e784c54b76 rust-lang: update to 1.68.0
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2023-03-13 19:48:34 +08:00
Luca Barbato
2d3e0da711 rust-lang: Add an Host/Compile helper as well
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2023-03-10 14:24:16 +00:00
Luca Barbato
44d1d22a16 rust-lang: Apply suggestions from code review
Co-authored-by: Tianling Shen <cnsztl@gmail.com>
Signed-off-by: Luca Barbato <luca.barbato@gmail.com>
2023-03-10 14:24:16 +00:00
Luca Barbato
674bad0559 maturin: Add package
Build tool for rust-python packages.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2023-03-10 14:24:16 +00:00
Luca Barbato
83785a7ce0 rust-lang: Add the rust language support
Based on work from Donald Hoskins <grommish@gmail.com>.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2023-03-10 14:24:16 +00:00