123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- # All host rust packages should depend on this option
- # When adding new entries below, update RUST_HOSTS in utils/update-rust
- config BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
- bool
- default y if BR2_HOSTARCH = "aarch64"
- default y if BR2_HOSTARCH = "powerpc"
- default y if BR2_HOSTARCH = "powerpc64"
- default y if BR2_HOSTARCH = "powerpc64le"
- default y if BR2_HOSTARCH = "riscv64"
- default y if BR2_HOSTARCH = "s390x"
- default y if BR2_HOSTARCH = "x86"
- default y if BR2_HOSTARCH = "x86_64"
- # The pre-built Rust standard library is only available for a number
- # of architectures/C libraries combinations, with different levels of
- # support: Tier 1 platforms, Tier 2 platforms with host tools, Tier 2
- # platforms, Tier 3 platforms. Below, we support Tier 1, Tier 2 with
- # host tools and Tier 2 platforms.
- # The below entries match Tier 1 platforms as described at
- # https://doc.rust-lang.org/nightly/rustc/platform-support.html.
- # When adding new entries below, update RUST_TARGETS in utils/update-rust
- config BR2_PACKAGE_HOST_RUSTC_TARGET_TIER1_PLATFORMS
- bool
- # aarch64-unknown-linux-gnu
- default y if BR2_aarch64 && BR2_TOOLCHAIN_USES_GLIBC
- # i686-unknown-linux-gnu
- default y if (BR2_x86_i686 || BR2_x86_pentiumpro || BR2_X86_CPU_HAS_MMX) && BR2_TOOLCHAIN_USES_GLIBC
- # x86_64-unknown-linux-gnu
- default y if BR2_x86_64 && BR2_TOOLCHAIN_USES_GLIBC
- # The below entries match Tier 2 platforms with host tools as
- # described at
- # https://doc.rust-lang.org/nightly/rustc/platform-support.html.
- # When adding new entries below, update RUST_TARGETS in utils/update-rust
- config BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_HOST_TOOLS_PLATFORMS
- bool
- # aarch64-unknown-linux-musl
- default y if BR2_aarch64 && BR2_TOOLCHAIN_USES_MUSL
- # arm-unknown-linux-gnueabi
- default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_GLIBC
- # arm-unknown-linux-gnueabihf
- default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_GLIBC
- # armv7-unknown-linux-gnueabihf
- default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_GLIBC
- # armv7-unknown-linux-gnueabihf for armv8 hardware with 32-bit
- # userspace
- default y if BR2_arm && BR2_ARM_CPU_ARMV8A && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_GLIBC
- # powerpc-unknown-linux-gnu
- default y if BR2_powerpc && BR2_TOOLCHAIN_USES_GLIBC
- # powerpc64-unknown-linux-gnu
- default y if BR2_powerpc64 && BR2_TOOLCHAIN_USES_GLIBC
- # powerpc64le-unknown-linux-gnu
- default y if BR2_powerpc64le && BR2_TOOLCHAIN_USES_GLIBC
- # riscv64gc-unknown-linux-gnu
- # "g" stands for imafd, and we also need "c".
- default y if BR2_RISCV_64 && BR2_RISCV_ISA_RVI && BR2_RISCV_ISA_RVM && \
- BR2_RISCV_ISA_RVA && BR2_RISCV_ISA_RVF && \
- BR2_RISCV_ISA_RVD && BR2_RISCV_ISA_RVC && \
- BR2_TOOLCHAIN_USES_GLIBC
- # s390x-unknown-linux-gnu
- default y if BR2_s390x && BR2_TOOLCHAIN_USES_GLIBC
- # x86_64-unknown-linux-musl
- default y if BR2_x86_64 && BR2_TOOLCHAIN_USES_MUSL
- # The below entries match Tier 2 platforms without host tools as
- # described at
- # https://doc.rust-lang.org/nightly/rustc/platform-support.html.
- # When adding new entries below, update RUST_TARGETS in utils/update-rust
- config BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_PLATFORMS
- bool
- # arm-unknown-linux-musleabi
- default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_MUSL
- # arm-unknown-linux-musleabihf
- default y if BR2_ARM_CPU_ARMV6 && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_MUSL
- # armv5te-unknown-linux-gnueabi
- default y if BR2_ARM_CPU_ARMV5 && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_GLIBC
- # armv5te-unknown-linux-musleabi
- default y if BR2_ARM_CPU_ARMV5 && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_MUSL
- # armv7-unknown-linux-gnueabi
- default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_GLIBC
- # armv7-unknown-linux-musleabi
- default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABI && BR2_TOOLCHAIN_USES_MUSL
- # armv7-unknown-linux-musleabihf
- default y if BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_MUSL
- # armv7-unknown-linux-musleabihf for armv8 hardware with 32-bit
- # userspace
- default y if BR2_arm && BR2_ARM_CPU_ARMV8A && BR2_ARM_EABIHF && BR2_TOOLCHAIN_USES_MUSL
- # i586-unknown-linux-gnu
- default y if BR2_x86_i586 && BR2_TOOLCHAIN_USES_GLIBC
- # i586-unknown-linux-musl
- default y if BR2_x86_i586 && BR2_TOOLCHAIN_USES_MUSL
- # i686-unknown-linux-musl
- default y if (BR2_x86_i686 || BR2_x86_pentiumpro || BR2_X86_CPU_HAS_MMX) && BR2_TOOLCHAIN_USES_MUSL
- # sparc64-unknown-linux-gnu
- default y if BR2_sparc64 && BR2_TOOLCHAIN_USES_GLIBC
- # All target rust packages should depend on this option
- # Note: With musl based toolchain, we need a C++ cross compiler to
- # build host-rust some target libraries (libunwind) from llvm source
- # code bundled in rust sources.
- config BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
- bool
- default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER1_PLATFORMS
- default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_HOST_TOOLS_PLATFORMS
- default y if BR2_PACKAGE_HOST_RUSTC_TARGET_TIER2_PLATFORMS
- depends on BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_USES_MUSL
- depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
- config BR2_PACKAGE_HOST_RUSTC_ARCH
- string
- default "armv5te" if BR2_ARM_CPU_ARMV5
- default "arm" if BR2_ARM_CPU_ARMV6
- default "armv7" if BR2_ARM_CPU_ARMV7A
- default "armv7" if BR2_ARM_CPU_ARMV7A || (BR2_arm && BR2_ARM_CPU_ARMV8A)
- default "riscv64gc" if BR2_RISCV_64
- default BR2_ARCH
- 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"
- # RUSTC_TARGET_NAME must be set for building host-rust
- # otherwise config.toml is broken.
- depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
- # triggers ICE on trunc_int_for_mode, at explow.c:56
- depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_aarch64
- # rust uses llvm >= 17 since 1.73.0
- select BR2_HOST_CMAKE_AT_LEAST_3_20
- 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
- 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
|