[Buildroot] [PATCH 1/3] arch/mips: inverse the NaN logic

Romain Naour romain.naour at gmail.com
Sat Oct 7 10:18:29 UTC 2017


Yann, All,

Le 03/09/2017 à 11:53, Yann E. MORIN a écrit :
> Currentlym the possibility to choose the NaN encoding is conditional to
> having a sufficiently recent gcc version.
> 
> Which means that the architecture selection depends on the gcc version.
> 
> But that's opposite to what we've always done in Buildroot: the software
> versions are conditional to the architecture options. There is nothing
> we can do about the hardware: it is there, we can't change it, while we
> can restrict ourselves to using software that is working on said
> hardware.
> 
> Thus, we inverse the logic, to move the condition onto the software
> side: whenever NaN-2008 are selected, we restrict the toolchain
> selection to at least a gcc-4.9.
> 
> But now, the option with the NaN type is always set, so we must enclose
> the code in gcc.mk inside a HAS_NAN_OPTION condition, as is already done
> for the external toolchain case.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> Cc: Vicente Olivert Riera <Vincent.Riera at imgtec.com>
> ---
>  arch/Config.in.mips | 2 +-
>  package/gcc/gcc.mk  | 2 ++
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/Config.in.mips b/arch/Config.in.mips
> index c08b2a2968..13d1a477e6 100644
> --- a/arch/Config.in.mips
> +++ b/arch/Config.in.mips
> @@ -176,10 +176,10 @@ config BR2_MIPS_NAN_LEGACY
>  
>  config BR2_MIPS_NAN_2008
>  	bool
> +	select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9

This series require the previous series "arch: some require a minimal gcc
version" adding this option.

Best regards,
Romain

>  
>  choice
>  	prompt "Target NaN"
> -	depends on BR2_TOOLCHAIN_HAS_MNAN_OPTION
>  	depends on BR2_mips_32r5 || BR2_mips_64r5
>  	default BR2_MIPS_ENABLE_NAN_2008
>  	help
> diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
> index 49ccccf56f..d45b6d7a06 100644
> --- a/package/gcc/gcc.mk
> +++ b/package/gcc/gcc.mk
> @@ -207,9 +207,11 @@ endif
>  ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
>  HOST_GCC_COMMON_CONF_OPTS += --with-abi=$(BR2_GCC_TARGET_ABI)
>  endif
> +ifeq ($(BR2_TOOLCHAIN_HAS_MNAN_OPTION),y)
>  ifneq ($(call qstrip,$(BR2_GCC_TARGET_NAN)),)
>  HOST_GCC_COMMON_CONF_OPTS += --with-nan=$(BR2_GCC_TARGET_NAN)
>  endif
> +endif
>  ifneq ($(call qstrip,$(BR2_GCC_TARGET_FP32_MODE)),)
>  HOST_GCC_COMMON_CONF_OPTS += --with-fp-32=$(BR2_GCC_TARGET_FP32_MODE)
>  endif
> 



More information about the buildroot mailing list