![Sam Voss](/assets/img/avatar_default.png)
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>
83 lines
2.5 KiB
Plaintext
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
|