[Buildroot] [PATCH 1/1] rustc: disable for ARMV7A with EABI

Thomas Petazzoni thomas.petazzoni at bootlin.com
Mon Feb 26 22:52:26 UTC 2018


Hello,

On Mon, 26 Feb 2018 21:04:21 +0100, Eric Le Bihan wrote:
> The Rust project does not support armv7a EABI, only EABIHF [1]. So
> disable rustc for this ARM variant.

Are you sure ?

> [1] https://forge.rust-lang.org/platform-support.html

On this page, I see:

arm-unknown-linux-gnueabi 	✓ 	✓ 	✓ 	ARMv6 Linux
arm-unknown-linux-gnueabihf 	✓ 	✓ 	✓ 	ARMv6 Linux, hardfloat
armv7-unknown-linux-gnueabihf 	✓ 	✓ 	✓ 	ARMv7 Linux

The arm-unknown-linux-gnueabi variant should apply to ARMv7 as well.

It looks like a better fix would be:

config BR2_PACKAGE_HOST_RUSTC_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
+	default y if BR2_ARM_CPU_ARMV6 || BR2_ARM_CPU_ARMV7A
        default y if BR2_powerpc || BR2_powerpc64
        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_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"

config BR2_PACKAGE_HOST_RUSTC_ARCH
        string
-	default "armv7"  if BR2_ARM_CPU_ARMV7A
+       default "armv7"  if (BR2_ARM_CPU_ARMV7A && BR2_ARM_EABIHF)
        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

Indeed arm-unknown-linux-gnueabi can support ARMv6 and later (including
ARMv7) with EABI, arm-unknown-linux-gnueabihf can support ARMv6 EABIhf,
and armv7-unknown-linux-gnueabihf can support ARMv7 EABIhf.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com


More information about the buildroot mailing list