This series allows the kernel to be built without any support for floating point. There are 2 main motivations for this: - The specification for nanoMIPS floating point support has not yet been finalized, so building the kernel without floating point will be useful for initial nanoMIPS support. Current nanoMIPS hardware, the MIPS I7200 CPU, has no FPU. - If userland is known not to use floating point instructions then omiting the kernel's support for it can produce respectable code size savings - around 112KB for 64r6el_defconfig. Applies cleanly atop v4.20-rc1. Thanks, Paul Paul Burton (20): MIPS: Hide CONFIG_MIPS_O32_FP64_SUPPORT prompt for >= MIPSr6 MIPS: BCM5xxx: Remove dead init_fpu code MIPS: Simplify FP context initialization MIPS: Ensure emulated FP sets PF_USED_MATH MIPS: Drop forward declarations of sigcontext in asm/fpu.h MIPS: Better abstract R2300 FPU usage in Kconfig MIPS: Introduce CONFIG_MIPS_FP_SUPPORT MIPS: Hardcode cpu_has_fpu=0 when CONFIG_MIPS_FP_SUPPORT=n MIPS: Stub asm/fpu.h functions MIPS: cpu-probe: Avoid probing FPU when CONFIG_MIPS_FP_SUPPORT=n MIPS: traps: Never enable FPU when CONFIG_MIPS_FP_SUPPORT=n MIPS: branch: Remove FP branch handling when CONFIG_MIPS_FP_SUPPORT=n MIPS: unaligned: Remove FP & MSA code when unsupported MIPS: ptrace: Remove FP support when CONFIG_MIPS_FP_SUPPORT=n MIPS: signal: Remove FP context support when CONFIG_MIPS_FP_SUPPORT=n MIPS: Avoid FP ELF checks when CONFIG_MIPS_FP_SUPPORT=n MIPS: Avoid FCSR sanitization when CONFIG_MIPS_FP_SUPPORT=n MIPS: Don't compile math-emu when CONFIG_MIPS_FP_SUPPORT=n MIPS: Remove struct task_struct fpu state when CONFIG_MIPS_FP_SUPPORT=n MIPS: Allow FP support to be disabled arch/mips/Kconfig | 29 ++- arch/mips/Makefile | 2 +- arch/mips/include/asm/cpu-features.h | 11 +- arch/mips/include/asm/dsemul.h | 29 ++- arch/mips/include/asm/elf.h | 26 ++- arch/mips/include/asm/fpu.h | 145 +++++++++--- arch/mips/include/asm/fpu_emulator.h | 11 - arch/mips/include/asm/processor.h | 19 +- arch/mips/include/asm/switch_to.h | 6 +- arch/mips/kernel/Makefile | 3 +- arch/mips/kernel/asm-offsets.c | 7 +- arch/mips/kernel/bmips_5xxx_init.S | 6 - arch/mips/kernel/branch.c | 34 +-- arch/mips/kernel/cpu-probe.c | 54 +++-- arch/mips/kernel/elf.c | 4 + arch/mips/kernel/genex.S | 2 + arch/mips/kernel/mips-r2-to-r6-emul.c | 7 - arch/mips/kernel/ptrace.c | 319 +++++++++++++------------- arch/mips/kernel/ptrace32.c | 33 +-- arch/mips/kernel/r2300_fpu.S | 58 ----- arch/mips/kernel/r4k_fpu.S | 144 ------------ arch/mips/kernel/signal.c | 39 +++- arch/mips/kernel/traps.c | 117 ++++++---- arch/mips/kernel/unaligned.c | 38 +-- arch/mips/kvm/Kconfig | 1 + arch/mips/math-emu/cp1emu.c | 7 + 26 files changed, 600 insertions(+), 551 deletions(-) -- 2.19.1