Re: [PATCH 2/2] libm: Set math_errhandling to match library and hardware

Corinna Vinschen via Newlib <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
On Aug  3 10:55, Keith Packard via Newlib wrote:
> math_errhandling is specified to contain two bits of information:
> 
>  1. MATH_ERRNO     -- Set when the library sets errno
>  2. MATH_ERREXCEPT -- Set when math operations report exceptions
> 
> MATH_ERRNO should match whether the original math code is compiled in
> _IEEE_LIBM mode and the new math code has WANT_ERRNO == 1.
> 
> MATH_ERREXCEPT should match whether the underlying hardware has
> exception support. This patch adds configurations of this value for
> RISC-V, ARM, Aarch64, x86 and x86_64 when using HW float.
> 
> Signed-off-by: Keith Packard <[email protected]>
> ---
>  newlib/libc/include/machine/ieeefp.h | 11 +++++++++++
>  newlib/libc/include/math.h           | 12 +++++++++++-
>  2 files changed, 22 insertions(+), 1 deletion(-)

Prior to this patch, math_errhandling on Cygwin was set to MATH_ERRNO.
With this patch, math_errhandling on Cygwin is set to MATH_ERREXCEPT.

That may break backward compatibility.  From your patch I take it
that not setting MATH_ERREXCEPT before was just missing, but actually
changing the MATH_ERRNO bit looks wrong to me.

Does that mean Cygwin just has to define _IEEE_LIBM somehwere?  I don't
see that any target is setting _IEEE_LIBM anywhere...


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.