Created attachment 180878 [details] Replace SOFTFLOAT tests with __mips_soft_float, which gcc/clang define for us. Replace SOFTFLOAT tests with __mips_soft_float, which gcc/clang define for us. base r308130 (review D8376) extended softfloat/hardfloat support, but used a macro that never actually gets set except in libc and msun's Makefile.inc. So libc and libm got built correctly, but any program including fenv.h itself assumed it was on a hardfloat systen and emitted inline fpu instructions for fedisableexcept() and friends. Using __mips_soft_float is better, since it's a compiler-internal macro that is always set correctly for the target.
I'll take this. We need it in our CheriBSD tree as well.
A commit references this bug: Author: brooks Date: Thu Mar 16 21:05:22 UTC 2017 New revision: 315424 URL: https://svnweb.freebsd.org/changeset/base/315424 Log: Replace SOFTFLOAT with __mips_soft_float, which gcc/clang define for us. D8376 extended softfloat/hardfloat support, but used a macro that never actually gets set except in libc and msun's Makefile.inc. So libc and libm got built correctly, but any program including fenv.h itself assumed it was on a hardfloat systen and emitted inline fpu instructions for fedisableexcept() and friends. Using __mips_soft_float makes everything work in all cases, since it's a compiler-internal macro that is always set correctly for the target PR: 217845 Submitted by: Dan Nelson <dnelson_1901@yahoo.com> MFC after: 1 week Changes: head/lib/libc/mips/Makefile.inc head/lib/libc/mips/gen/_setjmp.S head/lib/libc/mips/gen/flt_rounds.c head/lib/libc/mips/gen/setjmp.S head/lib/msun/mips/Makefile.inc head/lib/msun/mips/fenv.c head/lib/msun/mips/fenv.h
I'd left this open to MFC, but the other hard-float changes haven't been merged to 11 so there's nothing useful to merge at this time.