MIPS: Allow FP support to be disabled
authorPaul Burton <paul.burton@mips.com>
Wed, 7 Nov 2018 23:14:11 +0000 (23:14 +0000)
committerPaul Burton <paul.burton@mips.com>
Fri, 9 Nov 2018 18:23:19 +0000 (10:23 -0800)
Allow the user to configure the kernel to omit support for floating
point, by setting CONFIG_MIPS_FP_SUPPORT=n. In an attempt to avoid
problems for users who don't understand the impact of this, only expose
the option when CONFIG_EXPERT=y.

When CONFIG_MIPS_FP_SUPPORT=n all support for FPU hardware, FPU
emulation & FP context will be removed from the kernel. If a userland
program attempts to execute a floating point instruction it will receive
a SIGILL.

Setting CONFIG_MIPS_FP_SUPPORT=n shaves around 112KB from a
64r6el_defconfig build using GCC 8.1.0.

This also helps prepare us for supporting the nanoMIPS ISA, for which
floating point support has not been finalized.

Signed-off-by: Paul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/21014/
Cc: linux-mips@linux-mips.org
arch/mips/Kconfig

index 378379c..9006ae1 100644 (file)
@@ -2256,7 +2256,19 @@ config CPU_GENERIC_DUMP_TLB
        default y if !(CPU_R3000 || CPU_R8000 || CPU_TX39XX)
 
 config MIPS_FP_SUPPORT
-       def_bool y
+       bool "Floating Point support" if EXPERT
+       default y
+       help
+         Select y to include support for floating point in the kernel
+         including initialization of FPU hardware, FP context save & restore
+         and emulation of an FPU where necessary. Without this support any
+         userland program attempting to use floating point instructions will
+         receive a SIGILL.
+
+         If you know that your userland will not attempt to use floating point
+         instructions then you can say n here to shrink the kernel a little.
+
+         If unsure, say y.
 
 config CPU_R2300_FPU
        bool