buildroot/package/rustc/Config.in.host
Sam Voss 025b863e6f rust: modify Rust packaging to be usable as host-tool only
This commit modifies the host-rust virtual package to default to
host-rust-bin when no other selection has been made, as long as the
host supports rust. This allows host only tools to still use rust when
the target architecture does not support it.

Add target-specific variable which is used to differentiate host and
target arch requirements (BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS).

A target package shall depend on this variable where a host package will
use the previously defined BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS. The new
"target" version is selectable for the same set of architectures as
before, but now depends on the host variant.

Signed-off-by: Sam Voss <sam.voss@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-09-12 23:44:57 +02:00

83 lines
2.5 KiB
Plaintext

# All host rust packages should depend on this option
config BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
bool
default y if BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
# All target rust packages should depend on this option
config BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
bool
# The pre-built Rust standard library is only available for the
# following architectures/ABIs, and is built against glibc.
default y if BR2_i386
default y if BR2_x86_64
default y if BR2_aarch64
default y if BR2_arm && !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5 \
&& !(BR2_ARM_CPU_ARMV7A && BR2_ARM_EABI)
default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
default y if (BR2_mips || BR2_mipsel) && !BR2_MIPS_CPU_MIPS32R6
default y if (BR2_mips64 || BR2_mips64el) && !BR2_MIPS_CPU_MIPS64R6 \
&& BR2_MIPS_NABI64
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
config BR2_PACKAGE_HOST_RUSTC_ARCH
string
default "armv7" if BR2_ARM_CPU_ARMV7A
default BR2_ARCH if !BR2_ARM_CPU_ARMV7A
config BR2_PACKAGE_HOST_RUSTC_ABI
string
default "eabi" if BR2_ARM_EABI
default "eabihf" if BR2_ARM_EABIHF
default "abi64" if BR2_MIPS_NABI64
config BR2_PACKAGE_HOST_RUSTC
bool "host rustc"
depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
help
Compiler for the Rust language
http://www.rust-lang.org
if BR2_PACKAGE_HOST_RUSTC
choice
prompt "Rust compiler variant"
default BR2_PACKAGE_HOST_RUST_BIN
help
Select a Rust compiler
config BR2_PACKAGE_HOST_RUST
bool "host rust"
depends on BR2_HOST_GCC_AT_LEAST_4_7 # required by LLVM
# triggers ICE on trunc_int_for_mode, at explow.c:56
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_aarch64
help
This package will build the compiler for the host as well as
two flavors of the standard library: one for the host, another
for the target. Both are installed in the host directory.
comment "host-rust needs a toolchain w/ gcc >= 5"
depends on BR2_aarch64
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_5
comment "host-rust needs host gcc >= 4.7"
depends on !BR2_HOST_GCC_AT_LEAST_4_7
config BR2_PACKAGE_HOST_RUST_BIN
bool "host rust (pre-built)"
help
This package will install pre-built versions of the compiler
for the host and the Rust standard library for the target.
endchoice
endif
config BR2_PACKAGE_PROVIDES_HOST_RUSTC
string
default "host-rust" if BR2_PACKAGE_HOST_RUST
# Default to host-rust-bin as long as host arch supports it
default "host-rust-bin" if !BR2_PACKAGE_HOST_RUST
depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS