rust: Move cargo config options into environment variables
authorJeffery To <jeffery.to@gmail.com>
Sun, 1 Oct 2023 18:16:22 +0000 (02:16 +0800)
committerJeffery To <jeffery.to@gmail.com>
Wed, 11 Oct 2023 07:50:23 +0000 (15:50 +0800)
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>
lang/rust/Makefile
lang/rust/files/cargo-config [deleted file]
lang/rust/rust-host-build.mk
lang/rust/rust-package.mk
lang/rust/rust-values.mk

index 67513d1800b7f620c6da69702115d01a43a33a13..8f99f4144bf3bb9565ab860f0345518bd0aebcdf 100644 (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
 
diff --git a/lang/rust/files/cargo-config b/lang/rust/files/cargo-config
deleted file mode 100644 (file)
index 2f490dc..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-[target.@RUSTC_TARGET_ARCH@]
-linker = "@TARGET_CC_NOCACHE@"
-
-[profile.stripped]
-inherits = "release"
-opt-level = "s"
-strip = true
index 29ecc42a5e32a39e2ab8f96c0b19987ac97aecc1..a03df2493ab227c06282635e3643d900588f6500 100644 (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) ; \
index 231828bab6245a6006b5319e9f3d0872adb90083..713d37d5bef7a04f8373a28d20ca7b888a1f480b 100644 (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) \
index dfd417340aa11198ca7e237ae0d015be236ca9a5..02a68d48f151c90952283ba6666ccc0de73a4a31 100644 (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)