mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-19 22:03:45 -09:00
When the rust package was added in Buildroot it was using
the 1.23.0 release [1] where some vendored sources contained a
Cargo.toml.orig file that caused issues with
support/scripts/apply-patches.sh used by Buildroot package
infrastructure.
Since then, Buildroot is now using rust 1.74.1 (2024.02.x),
1.79.0 (2024.08.x) and 1.82.0 (master) where vendored
sources no longer contains any Cargo.toml.orig file.
So this post-extract hook is no longer needed.
Moreover, since Rust 1.81.0 are present in
src/tools/rustc-perf/collector/compile-benchmarks/<vendored pkg>
where there is no .cargo-checksum.json file.
Since then, the sed command fail and stop the build:
sed: can't read [...]/host-rust-1.81.0/src/tools/rustc-perf/collector/compile-benchmarks/serde_derive-1.0.136/.cargo-checksum.json: No such file or directory
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/8232367821
[1] b50522d838
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
84 lines
2.5 KiB
Makefile
84 lines
2.5 KiB
Makefile
################################################################################
|
|
#
|
|
# rust
|
|
#
|
|
################################################################################
|
|
|
|
# When updating this version, check whether support/download/cargo-post-process
|
|
# still generates the same archives.
|
|
RUST_VERSION = 1.82.0
|
|
RUST_SOURCE = rustc-$(RUST_VERSION)-src.tar.xz
|
|
RUST_SITE = https://static.rust-lang.org/dist
|
|
RUST_LICENSE = Apache-2.0 or MIT
|
|
RUST_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
|
|
|
|
HOST_RUST_PROVIDES = host-rustc
|
|
|
|
HOST_RUST_DEPENDENCIES = \
|
|
toolchain \
|
|
host-pkgconf \
|
|
host-python3 \
|
|
host-rust-bin \
|
|
host-openssl \
|
|
host-zlib \
|
|
$(BR2_CMAKE_HOST_DEPENDENCY)
|
|
|
|
HOST_RUST_VERBOSITY = $(if $(VERBOSE),2,0)
|
|
|
|
define HOST_RUST_CONFIGURE_CMDS
|
|
( \
|
|
echo '[build]'; \
|
|
echo 'target = ["$(RUSTC_TARGET_NAME)"]'; \
|
|
echo 'cargo = "$(HOST_RUST_BIN_DIR)/cargo/bin/cargo"'; \
|
|
echo 'rustc = "$(HOST_RUST_BIN_DIR)/rustc/bin/rustc"'; \
|
|
echo 'python = "$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR)"'; \
|
|
echo 'submodules = false'; \
|
|
echo 'vendor = true'; \
|
|
echo 'extended = true'; \
|
|
echo 'tools = ["cargo"]'; \
|
|
echo 'compiler-docs = false'; \
|
|
echo 'docs = false'; \
|
|
echo 'verbose = $(HOST_RUST_VERBOSITY)'; \
|
|
echo '[install]'; \
|
|
echo 'prefix = "$(HOST_DIR)"'; \
|
|
echo 'sysconfdir = "$(HOST_DIR)/etc"'; \
|
|
echo '[rust]'; \
|
|
echo 'channel = "stable"'; \
|
|
echo 'musl-root = "$(STAGING_DIR)"' ; \
|
|
echo '[target.$(RUSTC_TARGET_NAME)]'; \
|
|
echo 'cc = "$(TARGET_CROSS)gcc"'; \
|
|
echo '[llvm]'; \
|
|
echo 'ninja = false'; \
|
|
echo 'ldflags = "$(HOST_LDFLAGS)"'; \
|
|
) > $(@D)/config.toml
|
|
endef
|
|
|
|
define HOST_RUST_BUILD_CMDS
|
|
cd $(@D); $(HOST_MAKE_ENV) $(HOST_PKG_CARGO_ENV) \
|
|
$(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) x.py build
|
|
endef
|
|
|
|
HOST_RUST_INSTALL_OPTS = \
|
|
--prefix=$(HOST_DIR) \
|
|
--disable-ldconfig
|
|
|
|
define HOST_RUST_INSTALL_RUSTC
|
|
cd $(@D)/build/tmp/tarball/rust/$(RUSTC_HOST_NAME)/rust-$(RUST_VERSION)-$(RUSTC_HOST_NAME); \
|
|
./install.sh $(HOST_RUST_INSTALL_OPTS) --components=rustc,cargo,rust-std-$(RUSTC_HOST_NAME)
|
|
endef
|
|
|
|
ifeq ($(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS),y)
|
|
define HOST_RUST_INSTALL_LIBSTD_TARGET
|
|
cd $(@D)/build/tmp/tarball/rust-std/$(RUSTC_TARGET_NAME)/rust-std-$(RUST_VERSION)-$(RUSTC_TARGET_NAME); \
|
|
./install.sh $(HOST_RUST_INSTALL_OPTS)
|
|
endef
|
|
endif
|
|
|
|
define HOST_RUST_INSTALL_CMDS
|
|
cd $(@D); $(HOST_MAKE_ENV) $(HOST_DIR)/bin/python$(PYTHON3_VERSION_MAJOR) x.py dist
|
|
$(HOST_RUST_INSTALL_RUSTC)
|
|
$(HOST_RUST_INSTALL_LIBSTD_TARGET)
|
|
endef
|
|
|
|
$(eval $(host-generic-package))
|