Next: Long Double Functions, Previous: Complex, Up: Top
libm
When a libm function detects an exceptional case, errno
may be
set, the matherr
function may be called, and a error message
may be written to the standard error stream. This behavior may not
be reentrant.
With reentrant C libraries like the Red Hat newlib C library, errno
is
a macro which expands to the per-thread error value. This makes it thread
safe.
When the user provides his own matherr
function it must be
reentrant for the math library as a whole to be reentrant.
In normal debugged programs, there are usually no math subroutine
errors—and therefore no assignments to errno
and no matherr
calls; in that situation, the math functions behave reentrantly.