From: "Jörg Krause" <joerg.krause@embedded.rocks>
To: buildroot@busybox.net
Subject: [Buildroot] [Patch v7 02/10] rust-bin: new package
Date: Sun, 23 Jul 2017 16:00:36 +0200 [thread overview]
Message-ID: <1500818436.12674.1.camel@embedded.rocks> (raw)
In-Reply-To: <20170723081206.7774-3-eric.le.bihan.dev@free.fr>
On Sun, 2017-07-23 at 10:11 +0200, Eric Le Bihan wrote:
> This package provides a pre-built version of rustc, the compiler for the
> Rust programming language, fetched from the upstream project.
>
> A pre-built version of the standard library for the host as well as one
> for the chosen target are also fetched and installed.
>
> Only the host variant is provided to allow the user to cross-compile
> Rust programs and run them on the target.
>
> The menuconfig entry for rustc is also updated to expose this provider.
>
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
> ---
> DEVELOPERS | 1 +
> package/rust-bin/rust-bin.hash | 30 ++++++++++++++++++++++++++++++
> package/rust-bin/rust-bin.mk | 41 +++++++++++++++++++++++++++++++++++++++++
> package/rustc/Config.in.host | 41 +++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 113 insertions(+)
> create mode 100644 package/rust-bin/rust-bin.hash
> create mode 100644 package/rust-bin/rust-bin.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 0c22ffc..312b176 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -493,6 +493,7 @@ F: package/execline/
> F: package/hicolor-icon-theme/
> F: package/jemalloc/
> F: package/ninja/
> +F: package/rust-bin/
> F: package/s6/
> F: package/s6-dns/
> F: package/s6-linux-init/
> diff --git a/package/rust-bin/rust-bin.hash b/package/rust-bin/rust-bin.hash
> new file mode 100644
> index 0000000..538f376
> --- /dev/null
> +++ b/package/rust-bin/rust-bin.hash
> @@ -0,0 +1,30 @@
> +# From https://static.rust-lang.org/dist/rustc-1.19.0-i686-unknown-linux-gnu.tar.xz.sha256
> +sha256 458404eeac5439c7de35eb15b5922835401918935874672c07eb0f579a85fa40 rustc-1.19.0-i686-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rustc-1.19.0-x86_64-unknown-linux-gnu.tar.xz.sha256
> +sha256 023f1b63b77eab1e19e900ed6c15f144914bec82de96d644a20f428be1e565b1 rustc-1.19.0-x86_64-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-aarch64-unknown-linux-gnu.tar.xz.sha256
> +sha256 bcadc15e62aa1e919409fd61212d2cde1b63c065afa4f001b8a33300a06a67ab rust-std-1.19.0-aarch64-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-arm-unknown-linux-gnueabi.tar.xz.sha256
> +sha256 458af663cbd06262bcc1bd3eea741a1ccb3a0b794329542fc81e83891b7291b2 rust-std-1.19.0-arm-unknown-linux-gnueabi.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-arm-unknown-linux-gnueabihf.tar.xz.sha256
> +sha256 6e845a4c2b87f3764c42fbad835fd7deb6a872bfbe5fecdc4412d7344064b07d rust-std-1.19.0-arm-unknown-linux-gnueabihf.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-armv7-unknown-linux-gnueabihf.tar.xz.sha256
> +sha256 5f45d5e4f4b2cf2a91818c68d4fe463745c9133a6d85edb518b77f175eea2065 rust-std-1.19.0-armv7-unknown-linux-gnueabihf.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-i686-unknown-linux-gnu.tar.xz.sha256
> +sha256 f5dffacc264fb82b605dc66180cd327628caadedd4dca0c2115652f1933c6d93 rust-std-1.19.0-i686-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-mips-unknown-linux-gnu.tar.xz.sha256
> +sha256 a74d1d91d28cb09d13b90451f59939ac01fcbb33eb3087e90b45eff76d5ab9ae rust-std-1.19.0-mips-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-mips64-unknown-linux-gnuabi64.tar.xz.sha256
> +sha256 eeb6d00d24ce9250219cb019cf08b64c2b629dec8e3e70546ddd103df5c8b9dc rust-std-1.19.0-mips64-unknown-linux-gnuabi64.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-mips64el-unknown-linux-gnuabi64.tar.xz.sha256
> +sha256 745fc612c64bb43f26be5240333842280c6aacfd5acafe3c279ab9ac1da77a46 rust-std-1.19.0-mips64el-unknown-linux-gnuabi64.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-mipsel-unknown-linux-gnu.tar.xz.sha256
> +sha256 fabb4d203019eefcca2200cf1d519de47a376e71cdca6faa527e94d86b66ecd6 rust-std-1.19.0-mipsel-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-powerpc-unknown-linux-gnu.tar.xz.sha256
> +sha256 0c0a6aad87c97b1777c43386c17a8a0dea4ebe774adcae563768cabb0a039bbf rust-std-1.19.0-powerpc-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-powerpc64-unknown-linux-gnu.tar.xz.sha256
> +sha256 ddb66ff250ebdaab4593634236dcefe707918a424f3f5d2650a3b8e726d8081d rust-std-1.19.0-powerpc64-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-powerpc64le-unknown-linux-gnu.tar.xz.sha256
> +sha256 5ca6c0943c883606c43c11d32c35382f019109544a7820d4279d479ce2393a3c rust-std-1.19.0-powerpc64le-unknown-linux-gnu.tar.xz
> +# From https://static.rust-lang.org/dist/rust-std-1.19.0-x86_64-unknown-linux-gnu.tar.xz.sha256
> +sha256 da67633a1447656c4c9907776fc473b208737f4ed521727eb37a59177d1ae296 rust-std-1.19.0-x86_64-unknown-linux-gnu.tar.xz
> diff --git a/package/rust-bin/rust-bin.mk b/package/rust-bin/rust-bin.mk
> new file mode 100644
> index 0000000..900cc69
> --- /dev/null
> +++ b/package/rust-bin/rust-bin.mk
> @@ -0,0 +1,41 @@
> +################################################################################
> +#
> +# rust-bin
> +#
> +################################################################################
> +
> +RUST_BIN_VERSION = 1.19.0
> +RUST_BIN_SITE = https://static.rust-lang.org/dist
> +RUST_BIN_LICENSE = Apache-2.0 or MIT
> +RUST_BIN_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
> +
> +HOST_RUST_BIN_PROVIDES = host-rustc
> +
> +HOST_RUST_BIN_SOURCE = rustc-$(RUST_BIN_VERSION)-$(RUST_HOST_NAME).tar.xz
> +HOST_RUST_BIN_LIBSTD_SOURCES = \
> + rust-std-$(RUST_BIN_VERSION)-$(RUST_HOST_NAME).tar.xz \
> + rust-std-$(RUST_BIN_VERSION)-$(RUST_TARGET_NAME).tar.xz
> +
> +HOST_RUST_BIN_EXTRA_DOWNLOADS = $(HOST_RUST_BIN_LIBSTD_SOURCES)
> +
> +define HOST_RUST_BIN_LIBSTD_EXTRACT
> + mkdir -p $(@D)/std
> + for file in $(addprefix $(DL_DIR)/,$(HOST_RUST_BIN_LIBSTD_SOURCES)); do \
> + $(TAR) -C $(@D)/std -xJf $${file}; \
> + done
> +endef
> +
> +HOST_RUST_BIN_POST_EXTRACT_HOOKS += HOST_RUST_BIN_LIBSTD_EXTRACT
> +
> +define HOST_RUST_BIN_INSTALL_CMDS
> + for exe in $$(find $(@D) -name install.sh -executable); do \
> + $${exe} \
> + --prefix=$(HOST_DIR) \
> + --docdir=$(HOST_DIR)/share/doc/rust \
> + --libdir=$(HOST_DIR)/lib \
> + --mandir=$(HOST_DIR)/share/man \
> + --disable-ldconfig; \
> + done
> +endef
> +
> +$(eval $(host-generic-package))
> diff --git a/package/rustc/Config.in.host b/package/rustc/Config.in.host
> index fef78a7..7f2c276 100644
> --- a/package/rustc/Config.in.host
> +++ b/package/rustc/Config.in.host
> @@ -1,5 +1,46 @@
> +config BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
> + bool
> + default y
> + depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
> + depends on BR2_i386 || BR2_x86_64 \
> + || BR2_arm || BR2_aarch64 \
> + || BR2_powerpc || BR2_powerpc64 \
> + || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
> + depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
> + depends on !BR2_MIPS_NABI32
> + depends on BR2_TOOLCHAIN_USES_GLIBC
The dependency on the architecture is only true for the available pre-
built std libraries. If we want to support custom targets or building
without std, the architecture depends on the support in LLVM.
So, I really think it's best to untie rustc and std.
Best regards,
J?rg
next prev parent reply other threads:[~2017-07-23 14:00 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-23 8:11 [Buildroot] [Patch v7 00/10] Add support for the Rust programming language Eric Le Bihan
2017-07-23 8:11 ` [Buildroot] [Patch v7 01/10] rustc: new virtual package Eric Le Bihan
2017-07-23 13:14 ` Jörg Krause
2017-08-10 22:34 ` Arnout Vandecappelle
2017-09-07 17:02 ` Eric Le Bihan
2017-07-23 8:11 ` [Buildroot] [Patch v7 02/10] rust-bin: new package Eric Le Bihan
2017-07-23 13:44 ` Jörg Krause
2017-07-23 14:00 ` Jörg Krause [this message]
2017-08-10 23:08 ` Arnout Vandecappelle
2017-09-07 18:13 ` Eric Le Bihan
2017-07-23 8:11 ` [Buildroot] [Patch v7 03/10] rustc: expose host variant in menuconfig Eric Le Bihan
2017-08-10 23:09 ` Arnout Vandecappelle
2017-07-23 8:12 ` [Buildroot] [Patch v7 04/10] rust-bootstrap: new package Eric Le Bihan
2017-08-10 23:13 ` Arnout Vandecappelle
2017-09-07 19:33 ` Eric Le Bihan
2017-07-23 8:12 ` [Buildroot] [Patch v7 05/10] cargo-bootstrap: " Eric Le Bihan
2017-07-23 8:12 ` [Buildroot] [Patch v7 06/10] rust: " Eric Le Bihan
2017-08-10 23:38 ` Arnout Vandecappelle
2017-09-07 19:58 ` Eric Le Bihan
2017-07-23 8:12 ` [Buildroot] [Patch v7 07/10] libssh2: add host variant Eric Le Bihan
2017-07-23 8:19 ` Baruch Siach
2017-08-10 23:40 ` Arnout Vandecappelle
2017-07-23 8:12 ` [Buildroot] [Patch v7 08/10] libhttpparser: " Eric Le Bihan
2017-08-10 23:41 ` Arnout Vandecappelle
2017-07-23 8:12 ` [Buildroot] [Patch v7 09/10] libcurl: " Eric Le Bihan
2017-08-10 23:45 ` Arnout Vandecappelle
2017-07-23 8:12 ` [Buildroot] [Patch v7 10/10] cargo: new package Eric Le Bihan
2017-08-10 23:58 ` Arnout Vandecappelle
2017-09-07 20:20 ` Eric Le Bihan
2017-08-10 23:59 ` [Buildroot] [Patch v7 00/10] Add support for the Rust programming language Arnout Vandecappelle
2017-09-07 20:22 ` Eric Le Bihan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1500818436.12674.1.camel@embedded.rocks \
--to=joerg.krause@embedded.rocks \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.