Go patch committed: Provide matherr function

Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
Thu Feb 9 13:49:00 GMT 2012

Ian Lance Taylor <iant@google.com> writes:

> On SVID-based systems, when certain math functions encounter an
> exceptional condition they call a magic function named matherr.  That
> function is permitted to change the result which the math functions will
> return.  a program is permitted to provide its own version of matherr.
> Solaris works this way and at least the Solaris version of matherr does
> not act as Go, or an ordinary interpretation of the function, would
> expect.  E.g., calling acos on an out-of-range value will return 0
> rather than NaN.

Unfortunately, this breaks the libgo build on Solaris 8 and 9:

/vol/gcc/src/hg/trunk/local/libgo/runtime/go-matherr.c: In function 'matherr':
/vol/gcc/src/hg/trunk/local/libgo/runtime/go-matherr.c:38:17: error: 'NAN' undeclared (first use in this function)
/vol/gcc/src/hg/trunk/local/libgo/runtime/go-matherr.c:38:17: note: each undeclared identifier is reported only once for each function it appears in
/vol/gcc/src/hg/trunk/local/libgo/runtime/go-matherr.c:68:28: error: 'INFINITY' undeclared (first use in this function)
make[4]: *** [go-matherr.lo] Error 1

I couldn't find an appproprite replacement in the system headers.


Rainer Orth, Center for Biotechnology, Bielefeld University

More information about the Gcc-patches mailing list