David Daney <ddaney.cavm@xxxxxxxxx> writes: > On 02/25/2015 01:31 PM, Måns Rullgård wrote: >> Paul Martin <paul.martin@xxxxxxxxxxxxxxx> writes: >> >>> Some change between 3.19 and 4.0-rc1 has broken the FPE such that some >>> code running on an Octeon II is subtly not working. >>> > > Can you say where your userspace comes from, so we can try to > reproduce the issue? > >>> eg. >>> >>> $ echo "1 2" | gawk '{ print $1 }' >>> 1 2 >>> >>> which should output (and does output on 3.19) >>> >>> $ echo "1 2" | gawk '{ print $1 }' >>> 1 >>> >>> I'm going to try bisecting this over the next few days. >> >> Are you running a 32-bit userland? If so, enabling >> MIPS_O32_FP64_SUPPORT should fix this. > > ?? > > 32-bit userland (Debian for instance) typically shouldn't need special > "Exprimental" config options enabled. Indeed, it should not. Someone made a mistake. > If we can identify the offending patch, we should revert it. The offending patch is 46490b57 "MIPS: kernel: elf: Improve the overall ABI and FPU mode checks" There is no need for a full revert. This is enough to make things work: diff --git a/arch/mips/kernel/elf.c b/arch/mips/kernel/elf.c index d2c09f6..57f0353 100644 --- a/arch/mips/kernel/elf.c +++ b/arch/mips/kernel/elf.c @@ -148,9 +148,6 @@ int arch_check_elf(void *_ehdr, bool has_interpreter, struct mode_req prog_req, interp_req; int fp_abi, interp_fp_abi, abi0, abi1, max_abi; - if (!config_enabled(CONFIG_MIPS_O32_FP64_SUPPORT)) - return 0; - fp_abi = get_fp_abi(state->fp_abi); if (has_interpreter) { @@ -245,9 +242,6 @@ void mips_set_personality_fp(struct arch_elf_state *state) * not be worried about N32/N64 binaries. */ - if (!config_enabled(CONFIG_MIPS_O32_FP64_SUPPORT)) - return; - switch (state->overall_fp_mode) { case FP_FRE: set_thread_fp_mode(1, 0); -- Måns Rullgård mans@xxxxxxxxx