arch: Refactor BR2_SOFT_FLOAT into per-architecture options
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 16 Jul 2013 08:03:13 +0000 (10:03 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Tue, 16 Jul 2013 12:35:07 +0000 (14:35 +0200)
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>
arch/Config.in
arch/Config.in.arm
arch/Config.in.mips
arch/Config.in.powerpc
toolchain/toolchain-common.in

index 5bb96c5275212aa68d8e152b59002101482ba63c..c2dc9e809c278295580f69cd88a003942ecab776 100644 (file)
@@ -1,6 +1,9 @@
 config BR2_ARCH_IS_64
        bool
 
+config BR2_SOFT_FLOAT
+       bool
+
 choice
        prompt "Target Architecture"
        default BR2_i386
index 027dac2d9dc084fbb2c93e42063bc7139c0aa764..29b2b45a79c65d0b25b1752a00e662f38bb4e6cf 100644 (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
index 1454fb4419d509d1d9ca951168670145e0e5b1df..6242bcc74768222e28285c0a620ef68f370206e2 100644 (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
index 8643efcd7296747eeebd5bc24e108845ace30288..ae70a8aa8025c9a79729706396a092a5a01bacb7 100644 (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
 
index 7c9b842cca26e0605cab06fbe970762e41716fcb..dc3bd2a914adbb71363224f0d10b7fff481dc03d 100644 (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"