arch: Refactor BR2_SOFT_FLOAT into per-architecture options

As we are going to introduced a more advanced support of floating
point options for the ARM architecture, we need to adjust how the
soft-float option is handled. We replace the current hidden option
BR2_PREFER_SOFT_FLOAT option and the visible BR2_SOFT_FLOAT option by:

 * A global hidden BR2_SOFT_FLOAT option, defined in arch/Config.in,
   that tells whether the architecture-specific code is using software
   emulated floating point. This hidden option can be used throughout
   Buildroot to determine whether soft float is used or not.

 * Per-architecture visible BR2_<arch>_SOFT_FLOAT options, for the
   architecture for which it makes sense, which allows users to select
   soft float emulation when needed.

This change will allow each architecture to have a different way of
presenting its floating point capabilities.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Thomas Petazzoni 2013-07-16 10:03:13 +02:00 committed by Peter Korsgaard
parent d774551787
commit 9b3e72b4fd
5 changed files with 32 additions and 21 deletions

View File

@ -1,6 +1,9 @@
config BR2_ARCH_IS_64
bool
config BR2_SOFT_FLOAT
bool
choice
prompt "Target Architecture"
default BR2_i386

View File

@ -79,6 +79,16 @@ endchoice
config BR2_ARM_EABI
def_bool y
config BR2_ARM_SOFT_FLOAT
bool "Use soft-float"
default y
select BR2_SOFT_FLOAT
help
If your target CPU does not have a Floating Point Unit (FPU)
or a kernel FPU emulator, but you still wish to support
floating point functions, then everything will need to be
compiled with soft floating point support (-msoft-float).
config BR2_ARM_ENABLE_NEON
bool "Enable NEON SIMD extension support"
depends on BR2_ARM_CPU_MAYBE_HAS_NEON

View File

@ -52,6 +52,16 @@ config BR2_MIPS_NABI64
depends on BR2_ARCH_IS_64
endchoice
config BR2_MIPS_SOFT_FLOAT
bool "Use soft-float"
default y
select BR2_SOFT_FLOAT
help
If your target CPU does not have a Floating Point Unit (FPU)
or a kernel FPU emulator, but you still wish to support
floating point functions, then everything will need to be
compiled with soft floating point support (-msoft-float).
config BR2_ARCH
default "mips" if BR2_mips
default "mipsel" if BR2_mipsel

View File

@ -88,6 +88,15 @@ config BR2_powerpc_SPE
depends on BR2_powerpc_8540 || BR2_powerpc_8548
endchoice
config BR2_POWERPC_SOFT_FLOAT
bool "Use soft-float"
select BR2_SOFT_FLOAT
help
If your target CPU does not have a Floating Point Unit (FPU)
or a kernel FPU emulator, but you still wish to support
floating point functions, then everything will need to be
compiled with soft floating point support (-msoft-float).
config BR2_ARCH
default "powerpc" if BR2_powerpc

View File

@ -90,27 +90,6 @@ config BR2_USE_MMU
If your target has a MMU, you should say Y here. If you
are unsure, just say Y.
config BR2_PREFER_SOFT_FLOAT
bool
default y if BR2_arm
default y if BR2_armeb
default y if BR2_avr32
default y if BR2_mips
default y if BR2_mipsel
config BR2_SOFT_FLOAT
bool "Use software floating point by default"
depends on BR2_arm || BR2_armeb || BR2_avr32 || BR2_mips || BR2_mipsel || BR2_powerpc
# External toolchains will automatically do soft float or hard
# float depending on their configuration
depends on BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_CTNG
default $(BR2_PREFER_SOFT_FLOAT)
help
If your target CPU does not have a Floating Point Unit (FPU) or a
kernel FPU emulator, but you still wish to support floating point
functions, then everything will need to be compiled with soft
floating point support (-msoft-float).
config BR2_TARGET_OPTIMIZATION
string "Target Optimizations"
default "-pipe"