From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick Havelange Date: Mon, 18 May 2020 12:51:54 +0200 Subject: [Buildroot] [PATCH v3 01/10] package/rustc: install cargo config as toolchain post-install hook In-Reply-To: <20200207180829.165689-2-arnout@mind.be> References: <20200207180829.165689-1-arnout@mind.be> <20200207180829.165689-2-arnout@mind.be> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Hello all, What about merging this patch series and then the 2nd improvement http://patchwork.ozlabs.org/project/buildroot/list/?series=159771 (for an unknown reason the 02/10 has not been picked up by patchwork) ? There has been some remarks that in some cases the proposed patch series is not sufficient, however I think these are some edge cases and could be improved later once those patches are applied. I'm also seeing some issues being fixed recently on the old version of rust, and I fear it will lead to duplicate efforts the more we wait for merging those 2 patch series (as a bugfix should be done in the context of the new version, or it might even not be needed, with a bit of luck). Unless there are some blocking issues that I missed.. Regards, Patrick H. On 2020-02-07 19:08, Arnout Vandecappelle (Essensium/Mind) wrote: > The cargo config file is much like the cmake and meson configuration > files, something that tells the cargo build system how the > cross-toolchain is configured. It can be used not only with our own > host-cargo package, but also with a pre-installed cargo. > > Therefore, install the cargo config file as a toolchain post-install > hook, just like we do for cmake and meson. However, we don't have a > pkg-cargo infrastructure (yet) so we can't put it there. The cargo > package itself will be removed soon, so that's not appropriate either. > Therefore, put it in the rustc package - any cargo package will need > rustc. > > Remove the config handling from the cargo package. > > Signed-off-by: Arnout Vandecappelle (Essensium/Mind) > --- > package/cargo/cargo.mk | 6 ------ > package/{cargo/config.in => rustc/cargo-config.in} | 0 > package/rustc/rustc.mk | 12 ++++++++++++ > 3 files changed, 12 insertions(+), 6 deletions(-) > rename package/{cargo/config.in => rustc/cargo-config.in} (100%) > > diff --git a/package/cargo/cargo.mk b/package/cargo/cargo.mk > index a387281b4c..3f6646d027 100644 > --- a/package/cargo/cargo.mk > +++ b/package/cargo/cargo.mk > @@ -80,12 +80,6 @@ endef > > define HOST_CARGO_INSTALL_CMDS > $(INSTALL) -D -m 0755 $(@D)/target/release/cargo $(HOST_DIR)/bin/cargo > - $(INSTALL) -D package/cargo/config.in \ > - $(HOST_DIR)/share/cargo/config > - $(SED) 's/@RUSTC_TARGET_NAME@/$(RUSTC_TARGET_NAME)/' \ > - $(HOST_DIR)/share/cargo/config > - $(SED) 's/@CROSS_PREFIX@/$(notdir $(TARGET_CROSS))/' \ > - $(HOST_DIR)/share/cargo/config > endef > > $(eval $(host-generic-package)) > diff --git a/package/cargo/config.in b/package/rustc/cargo-config.in > similarity index 100% > rename from package/cargo/config.in > rename to package/rustc/cargo-config.in > diff --git a/package/rustc/rustc.mk b/package/rustc/rustc.mk > index 6eea9b4fc5..35ffc36106 100644 > --- a/package/rustc/rustc.mk > +++ b/package/rustc/rustc.mk > @@ -20,3 +20,15 @@ endif > RUSTC_HOST_NAME = $(RUSTC_HOST_ARCH)-unknown-linux-gnu > > $(eval $(host-virtual-package)) > + > +ifeq ($(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS),y) > +define RUSTC_INSTALL_CARGO_CONFIG > + mkdir -p $(HOST_DIR)/share/cargo > + sed -e 's/@RUSTC_TARGET_NAME@/$(RUSTC_TARGET_NAME)/' \ > + -e 's/@CROSS_PREFIX@/$(notdir $(TARGET_CROSS))/' \ > + package/rustc/cargo-config.in \ > + > $(HOST_DIR)/share/cargo/config > +endef > +# check-package disable TypoInPackageVariable - TOOLCHAIN intended > +TOOLCHAIN_POST_INSTALL_STAGING_HOOKS += RUSTC_INSTALL_CARGO_CONFIG > +endif >