rust: Move cargo config options into environment variables

This also:

* Modify the "release" profile in place of adding the "stripped" profile

  Only the profile for target is modified; there are no file size
  constraints for host.

* For host, build with the "release" profile

* For target, build with either the "dev" or "release" profile based on
  CONFIG_DEBUG

There is no environment variable to specify the "strip" option, but
enabling this option is not necessary as the build system will already
strip binaries based on CONFIG_NO_STRIP / CONFIG_USE_STRIP /
CONFIG_USE_SSTRIP.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This commit is contained in:
Jeffery To 2023-10-02 02:16:22 +08:00
parent 49aaf19c65
commit 5c5123f0f6
No known key found for this signature in database
GPG Key ID: C616D9E719E868E4
5 changed files with 8 additions and 13 deletions

View File

@ -97,10 +97,6 @@ define Host/Install
done ; \
find . -mindepth 2 -maxdepth 2 -type f -name install.sh \
-execdir bash '{}' --prefix=$(STAGING_DIR)/host --disable-ldconfig \; ; \
\
sed -e 's|@RUSTC_TARGET_ARCH@|$(RUSTC_TARGET_ARCH)|g' \
-e 's|@TARGET_CC_NOCACHE@|$(TARGET_CC_NOCACHE)|g' \
$(CURDIR)/files/cargo-config > $(CARGO_HOME)/config.toml ; \
)
endef

View File

@ -1,7 +0,0 @@
[target.@RUSTC_TARGET_ARCH@]
linker = "@TARGET_CC_NOCACHE@"
[profile.stripped]
inherits = "release"
opt-level = "s"
strip = true

View File

@ -23,7 +23,7 @@ define Host/Compile/Cargo
CARGO_HOME=$(CARGO_HOME) \
CC=$(HOSTCC_NOCACHE) \
cargo install -v \
--profile stripped \
--profile $(CARGO_HOST_PROFILE) \
$(if $(RUST_HOST_FEATURES),--features "$(RUST_HOST_FEATURES)") \
--root $(HOST_INSTALL_DIR) \
--path "$(if $(strip $(1)),$(strip $(1)),.)" $(2) ; \

View File

@ -21,13 +21,15 @@ define Build/Compile/Cargo
( \
cd $(PKG_BUILD_DIR) ; \
CARGO_HOME=$(CARGO_HOME) \
CARGO_PROFILE_RELEASE_OPT_LEVEL=s \
CARGO_TARGET_$(subst -,_,$(call toupper,$(RUSTC_TARGET_ARCH)))_LINKER=$(TARGET_CC_NOCACHE) \
TARGET_CFLAGS="$(TARGET_CFLAGS) $(RUSTC_CFLAGS)" \
TARGET_CC=$(TARGET_CC_NOCACHE) \
CC=$(HOSTCC_NOCACHE) \
RUSTFLAGS="$(CARGO_RUSTFLAGS)" \
$(CARGO_VARS) \
cargo install -v \
--profile stripped \
--profile $(CARGO_PKG_PROFILE) \
--target $(RUSTC_TARGET_ARCH) \
$(if $(strip $(RUST_PKG_FEATURES)),--features "$(strip $(RUST_PKG_FEATURES))") \
--root $(PKG_INSTALL_DIR) \

View File

@ -62,3 +62,7 @@ endif
# Support only a subset for now.
RUST_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mipsel||mips64||mips64el||mipsel||powerpc64||riscv64||x86_64)
CARGO_HOST_PROFILE:=release
CARGO_PKG_PROFILE:=$(if $(CONFIG_DEBUG),dev,release)