Commit 9b3e72b4 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Peter Korsgaard
Browse files

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: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent d7745517
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
config BR2_ARCH_IS_64
       bool

config BR2_SOFT_FLOAT
	bool

choice
	prompt "Target Architecture"
	default BR2_i386
+10 −0
Original line number Diff line number Diff line
@@ -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
+10 −0
Original line number Diff line number Diff line
@@ -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
+9 −0
Original line number Diff line number Diff line
@@ -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

+0 −21
Original line number Diff line number Diff line
@@ -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"