> In November 2011, I wrote in > <http://lists.gnu.org/archive/html/bug-gnulib/2011-11/msg00069.html>: > > glibc 2.11: NaN, fenv bit, errno > MacOS X 10.5: NaN, fenv bit math_errhandling > (always=MATH_ERREXCEPT) > FreeBSD 6.4: NaN, fenv bit math_errhandling > (always=MATH_ERREXCEPT) > OpenBSD 4.9: NaN > NetBSD 5.1: NaN, errno > AIX 7.1: NaN, fenv bit, errno math_errhandling (always=MATH_ERRNO) > HP-UX 11.31: NaN, fenv bit, errno > IRIX 6.5: NaN > OSF/1 5.1: 0, errno (<fenv.h> incomplete) > Solaris 10: NaN, fenv bit, errno math_errhandling > (always=MATH_ERREXCEPT) > Cygwin 1.7.9: NaN, errno > mingw: NaN, fenv bit, errno > MSVC 9: NaN, errno
Actually glibc does not support the 'errno' convention really. See this list of bugs: [1] The following are still open: 6796 fdim() does not set errno on overflow 6785 erf() does not set errno for underflow 6793 logb() does not set errno on pole error 6804 scalb() does not set errno on domain error 6808 yn() does not set errno for overflow error. 6802 remquo() does not set errno on domain error 6792 log1p() does not set errno n error 6801 fma() does not ser errno for various errors 6797 lround() and llround() do not set errno on domain error 6786 erfc() does not set errno for underflow 6798 lrint() and llrint() do not set errno on domain error 6810 tgamma() does not set errno for underflow error 6809 tgamma() sets errno inconsistently for domain error 6795 hypot() does not set errno consistently on error 6787 exp10() does not consistently set errno 6799 nextafter() and nexttoward() doen't set errno on overflow/underflow errors 6807 y0(), y1(), yn() do not raise exception and give wrong errno for pole error 6794 ilogb() does not raise exceptions or set errno on domain errors 6803 scalb(), scalbln(), scalbn() do not set errno on overflow/underflow 6805 j0(), j1(), jn() do not raise exceptions on underflow error 6806 y0(), y1(), yn() do not raise exception on underflow If glibc does not support this error reporting convention, I think there's not much point for gnulib to do it. Btw, a side note about the "fenv bit" convention: 1) "inexact" and "underflow" exceptions cannot be taken seriously because Joseph Myers sais [2]: "C99 and C11 permit spurious underflow exceptions (as well as spurious inexact exceptions, and raising inexact even when the result is exact)." 2) glibc has some open bugs in this area as well: [3] Bruno [1] http://sourceware.org/bugzilla/buglist.cgi?query_format=specific&order=relevance%20desc&bug_status=__all__&content=math%20errno&list_id=3078 [2] http://sourceware.org/bugzilla/show_bug.cgi?id=6778 [3] http://sourceware.org/bugzilla/show_bug.cgi?id=13787