[Buildroot] [PATCH v2 1/1] package/pkg-cargo: ensure host/target rustflags are properly split
James Hilliard
james.hilliard1 at gmail.com
Sun Jul 24 21:47:43 UTC 2022
Set HOST_LDFLAGS RUSTFLAGS via the host-config feature, see:
https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#host-config
We have to enable this nightly feature first using:
CARGO_UNSTABLE_HOST_CONFIG="true"
Separately set target RUSTFLAGS for the target triple specific env
variable.
Move RUSTFLAGS for host builds to HOST_PKG_CARGO_ENV so that they
are set for host cargo builds which use python infrastructure.
Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
---
Changes v1 -> v2:
- add RUSTFLAGS to HOST_PKG_CARGO_ENV
---
package/pkg-cargo.mk | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/package/pkg-cargo.mk b/package/pkg-cargo.mk
index f7e3f39503..1c105762f8 100644
--- a/package/pkg-cargo.mk
+++ b/package/pkg-cargo.mk
@@ -32,7 +32,10 @@ PKG_COMMON_CARGO_ENV = \
# using nighly features on stable releases, i.e features that are not
# yet considered stable.
#
-# CARGO_UNSTABLE_TARGET_APPLIES_TO_HOST="true" "enables the nightly
+# CARGO_UNSTABLE_HOST_CONFIG="true" enables the host specific
+# configuration feature
+#
+# CARGO_UNSTABLE_TARGET_APPLIES_TO_HOST="true" enables the nightly
# configuration option target-applies-to-host value to be set
#
# CARGO_TARGET_APPLIES_TO_HOST="false" is actually setting the value
@@ -41,9 +44,11 @@ PKG_COMMON_CARGO_ENV = \
PKG_CARGO_ENV = \
$(PKG_COMMON_CARGO_ENV) \
__CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" \
+ CARGO_UNSTABLE_HOST_CONFIG="true" \
CARGO_UNSTABLE_TARGET_APPLIES_TO_HOST="true" \
CARGO_TARGET_APPLIES_TO_HOST="false" \
CARGO_BUILD_TARGET="$(RUSTC_TARGET_NAME)" \
+ CARGO_HOST_RUSTFLAGS="$(addprefix -C link-args=,$(HOST_LDFLAGS))" \
CARGO_TARGET_$(call UPPERCASE,$(RUSTC_TARGET_NAME))_LINKER=$(notdir $(TARGET_CROSS))gcc
#
@@ -51,11 +56,13 @@ PKG_CARGO_ENV = \
# and should be removed when fixed upstream
#
ifeq ($(NORMALIZED_ARCH),arm)
- PKG_CARGO_ENV += RUSTFLAGS="-Clink-arg=-Wl,--allow-multiple-definition"
+ PKG_CARGO_ENV += \
+ CARGO_TARGET_$(call UPPERCASE,$(RUSTC_TARGET_NAME))_RUSTFLAGS="-Clink-arg=-Wl,--allow-multiple-definition"
endif
HOST_PKG_CARGO_ENV = \
- $(PKG_COMMON_CARGO_ENV)
+ $(PKG_COMMON_CARGO_ENV) \
+ RUSTFLAGS="$(addprefix -C link-args=,$(HOST_LDFLAGS))"
################################################################################
# inner-cargo-package -- defines how the configuration, compilation and
@@ -128,7 +135,6 @@ else # ifeq ($(4),target)
define $(2)_BUILD_CMDS
cd $$($$(PKG)_SRCDIR) && \
$$(HOST_MAKE_ENV) \
- RUSTFLAGS="$$(addprefix -C link-args=,$$(HOST_LDFLAGS))" \
$$(HOST_CONFIGURE_OPTS) \
$$(HOST_PKG_CARGO_ENV) \
$$($(2)_CARGO_ENV) \
@@ -169,7 +175,6 @@ ifndef $(2)_INSTALL_CMDS
define $(2)_INSTALL_CMDS
cd $$($$(PKG)_SRCDIR) && \
$$(HOST_MAKE_ENV) \
- RUSTFLAGS="$$(addprefix -C link-args=,$$(HOST_LDFLAGS))" \
$$(HOST_CONFIGURE_OPTS) \
$$(HOST_PKG_CARGO_ENV) \
$$($(2)_CARGO_ENV) \
--
2.34.1
More information about the buildroot
mailing list