Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorJozef Lawrynowicz <jozef.l@mittosystems.com>2018-12-06 19:14:01 +0300
committerCorinna Vinschen <corinna@vinschen.de>2019-01-23 12:46:24 +0300
commitb14a879d85b171960df789ac8ba2332004f838e0 (patch)
tree532dd01e4a882b5cf7d50ad237082574c01e67f6 /winsup
parent1f10a00ba717b22b154205508e60af0dcb641ed3 (diff)
Remove matherr, and SVID and X/Open math library configurations
Default math library configuration is now IEEE
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/common.din1
-rw-r--r--winsup/cygwin/i686.din1
-rw-r--r--winsup/cygwin/include/cygwin/version.h3
-rw-r--r--winsup/cygwin/math/acosh.def.h4
-rw-r--r--winsup/cygwin/math/complex_internal.h31
-rw-r--r--winsup/cygwin/math/cos.def.h4
-rw-r--r--winsup/cygwin/math/exp.def.h6
-rw-r--r--winsup/cygwin/math/expm1.def.h2
-rw-r--r--winsup/cygwin/math/log.def.h4
-rw-r--r--winsup/cygwin/math/pow.def.h8
-rw-r--r--winsup/cygwin/math/powi.def.h2
-rw-r--r--winsup/cygwin/math/sin.def.h4
-rw-r--r--winsup/cygwin/math/sqrt.def.h2
-rw-r--r--winsup/cygwin/release/2.12.03
-rw-r--r--winsup/doc/new-features.xml5
15 files changed, 28 insertions, 52 deletions
diff --git a/winsup/cygwin/common.din b/winsup/cygwin/common.din
index 384cf0b15..ca819c63e 100644
--- a/winsup/cygwin/common.din
+++ b/winsup/cygwin/common.din
@@ -907,7 +907,6 @@ malloc_stats SIGFE
malloc_trim SIGFE
malloc_usable_size SIGFE
mallopt SIGFE
-matherr NOSIGFE
mblen NOSIGFE
mbrlen NOSIGFE
mbrtowc NOSIGFE
diff --git a/winsup/cygwin/i686.din b/winsup/cygwin/i686.din
index 934243bbc..174e73dd0 100644
--- a/winsup/cygwin/i686.din
+++ b/winsup/cygwin/i686.din
@@ -366,7 +366,6 @@ _lseek64 = lseek64 SIGFE
_lstat = lstat SIGFE
_lstat64 = lstat64 SIGFE
_malloc = malloc SIGFE
-_matherr = matherr NOSIGFE
_mblen = mblen NOSIGFE
_mbstowcs = mbstowcs NOSIGFE
_mbtowc = mbtowc NOSIGFE
diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h
index d6dcbea0e..c3e971ed8 100644
--- a/winsup/cygwin/include/cygwin/version.h
+++ b/winsup/cygwin/include/cygwin/version.h
@@ -504,12 +504,13 @@ details. */
331: Add timer_getoverrun, DELAYTIMER_MAX.
332: Add signalfd.
333: Add timerfd_create, timerfd_gettime, timerfd_settime.
+ 334: Remove matherr.
Note that we forgot to bump the api for ualarm, strtoll, strtoull,
sigaltstack, sethostname. */
#define CYGWIN_VERSION_API_MAJOR 0
-#define CYGWIN_VERSION_API_MINOR 333
+#define CYGWIN_VERSION_API_MINOR 334
/* There is also a compatibity version number associated with the shared memory
regions. It is incremented when incompatible changes are made to the shared
diff --git a/winsup/cygwin/math/acosh.def.h b/winsup/cygwin/math/acosh.def.h
index c039bd8eb..1fc5deb14 100644
--- a/winsup/cygwin/math/acosh.def.h
+++ b/winsup/cygwin/math/acosh.def.h
@@ -52,12 +52,12 @@ __FLT_ABI(acosh) (__FLT_TYPE x)
int x_class = fpclassify (x);
if (x_class == FP_NAN || x < __FLT_CST(1.0))
{
- __FLT_RPT_DOMAIN ("acosh", x, 0.0, __FLT_NAN);
+ errno = EDOM;
return __FLT_NAN;
}
else if (x_class == FP_INFINITE)
{
- __FLT_RPT_DOMAIN ("acosh", x, 0.0, __FLT_NAN);
+ errno = EDOM;
return __FLT_NAN;
}
diff --git a/winsup/cygwin/math/complex_internal.h b/winsup/cygwin/math/complex_internal.h
index b230b15b8..83b17b0f5 100644
--- a/winsup/cygwin/math/complex_internal.h
+++ b/winsup/cygwin/math/complex_internal.h
@@ -120,34 +120,3 @@
#else
# error "Unknown complex number type"
#endif
-
-#define __FLT_RPT_DOMAIN(NAME, ARG1, ARG2, RSLT) \
- errno = EDOM, \
- __mingw_raise_matherr (_DOMAIN, __FLT_REPORT(NAME), (double) (ARG1), \
- (double) (ARG2), (double) (RSLT))
-#define __FLT_RPT_ERANGE(NAME, ARG1, ARG2, RSLT, OVL) \
- errno = ERANGE, \
- __mingw_raise_matherr (((OVL) ? _OVERFLOW : _UNDERFLOW), \
- __FLT_REPORT(NAME), (double) (ARG1), \
- (double) (ARG2), (double) (RSLT))
-
-#ifdef __CYGWIN__
-inline void __attribute__ ((always_inline))
-__mingw_raise_matherr (int typ, const char *name, double a1, double a2,
- double rslt)
-{
- if (_LIB_VERSION != _POSIX_)
- {
- struct exception ex;
- ex.type = typ;
- ex.name = (char*)name;
- ex.arg1 = a1;
- ex.arg2 = a2;
- ex.retval = rslt;
- matherr(&ex);
- }
-}
-#define _DOMAIN DOMAIN
-#define _OVERFLOW OVERFLOW
-#define _UNDERFLOW UNDERFLOW
-#endif
diff --git a/winsup/cygwin/math/cos.def.h b/winsup/cygwin/math/cos.def.h
index 1058d031f..cbb226e49 100644
--- a/winsup/cygwin/math/cos.def.h
+++ b/winsup/cygwin/math/cos.def.h
@@ -53,12 +53,12 @@ __FLT_ABI(cos) (__FLT_TYPE x)
int x_class = fpclassify (x);
if (x_class == FP_NAN)
{
- __FLT_RPT_DOMAIN ("cos", x, 0.0, x);
+ errno = EDOM;
return x;
}
else if (x_class == FP_INFINITE)
{
- __FLT_RPT_DOMAIN ("cos", x, 0.0, __FLT_NAN);
+ errno = EDOM;
return __FLT_NAN;
}
return (__FLT_TYPE) __cosl_internal ((long double) x);
diff --git a/winsup/cygwin/math/exp.def.h b/winsup/cygwin/math/exp.def.h
index 2419ef6d1..678e7c1ee 100644
--- a/winsup/cygwin/math/exp.def.h
+++ b/winsup/cygwin/math/exp.def.h
@@ -109,13 +109,13 @@ __FLT_ABI(exp) (__FLT_TYPE x)
int x_class = fpclassify (x);
if (x_class == FP_NAN)
{
- __FLT_RPT_DOMAIN ("exp", x, 0.0, x);
+ errno = EDOM;
return x;
}
else if (x_class == FP_INFINITE)
{
__FLT_TYPE r = (signbit (x) ? __FLT_CST (0.0) : __FLT_HUGE_VAL);
- __FLT_RPT_ERANGE ("exp", x, 0.0, r, signbit (x));
+ errno = ERANGE;
return r;
}
else if (x_class == FP_ZERO)
@@ -124,7 +124,7 @@ __FLT_ABI(exp) (__FLT_TYPE x)
}
else if (x > __FLT_MAXLOG)
{
- __FLT_RPT_ERANGE ("exp", x, 0.0, __FLT_HUGE_VAL, 1);
+ errno = ERANGE;
return __FLT_HUGE_VAL;
}
else if (x < __FLT_MINLOG)
diff --git a/winsup/cygwin/math/expm1.def.h b/winsup/cygwin/math/expm1.def.h
index 5a2b6f498..64fe42860 100644
--- a/winsup/cygwin/math/expm1.def.h
+++ b/winsup/cygwin/math/expm1.def.h
@@ -51,7 +51,7 @@ __FLT_ABI(expm1) (__FLT_TYPE x)
int x_class = fpclassify (x);
if (x_class == FP_NAN)
{
- __FLT_RPT_DOMAIN ("expm1", x, 0.0, x);
+ errno = EDOM;
return x;
}
else if (x_class == FP_INFINITE)
diff --git a/winsup/cygwin/math/log.def.h b/winsup/cygwin/math/log.def.h
index 94a77007f..2ba7421a2 100644
--- a/winsup/cygwin/math/log.def.h
+++ b/winsup/cygwin/math/log.def.h
@@ -53,12 +53,12 @@ __FLT_ABI(log) (__FLT_TYPE x)
int x_class = fpclassify (x);
if (x_class == FP_ZERO)
{
- __FLT_RPT_ERANGE ("log", x, 0.0, -__FLT_HUGE_VAL, 1);
+ errno = ERANGE;
return -__FLT_HUGE_VAL;
}
else if (signbit (x))
{
- __FLT_RPT_DOMAIN ("log", x, 0.0, __FLT_NAN);
+ errno = EDOM;
return __FLT_NAN;
}
else if (x_class == FP_INFINITE)
diff --git a/winsup/cygwin/math/pow.def.h b/winsup/cygwin/math/pow.def.h
index a5513c1f9..e1538d9fa 100644
--- a/winsup/cygwin/math/pow.def.h
+++ b/winsup/cygwin/math/pow.def.h
@@ -122,7 +122,7 @@ __FLT_ABI(pow) (__FLT_TYPE x, __FLT_TYPE y)
else if (x_class == FP_NAN || y_class == FP_NAN)
{
rslt = (signbit(x) ? -__FLT_NAN : __FLT_NAN);
- __FLT_RPT_DOMAIN ("pow", x, y, rslt);
+ errno = EDOM;
return rslt;
}
else if (x_class == FP_ZERO)
@@ -133,7 +133,7 @@ __FLT_ABI(pow) (__FLT_TYPE x, __FLT_TYPE y)
if (signbit(x) && internal_modf (y, &d) != 0.0)
{
return signbit (y) ? (1.0 / -x) : __FLT_CST (0.0);
- /*__FLT_RPT_DOMAIN ("pow", x, y, -__FLT_NAN);
+ /*errno = EDOM;
return -__FLT_NAN; */
}
odd_y = (internal_modf (__FLT_ABI (ldexp) (y, -1), &d) != 0.0) ? 1 : 0;
@@ -167,7 +167,7 @@ __FLT_ABI(pow) (__FLT_TYPE x, __FLT_TYPE y)
if (signbit(x) && internal_modf (y, &d) != 0.0)
{
return signbit(y) ? 1.0 / -x : -x;
- /*__FLT_RPT_DOMAIN ("pow", x, y, -__FLT_NAN);
+ /*errno = EDOM;
return -__FLT_NAN;*/
}
odd_y = (internal_modf (__FLT_ABI (ldexp) (y, -1), &d) != 0.0) ? 1 : 0;
@@ -195,7 +195,7 @@ __FLT_ABI(pow) (__FLT_TYPE x, __FLT_TYPE y)
{
if (signbit (x))
{
- __FLT_RPT_DOMAIN ("pow", x, y, -__FLT_NAN);
+ errno = EDOM;
return -__FLT_NAN;
}
if (y == __FLT_CST(0.5))
diff --git a/winsup/cygwin/math/powi.def.h b/winsup/cygwin/math/powi.def.h
index f7fa860a6..e3840e757 100644
--- a/winsup/cygwin/math/powi.def.h
+++ b/winsup/cygwin/math/powi.def.h
@@ -83,7 +83,7 @@ __FLT_ABI(__powi) (__FLT_TYPE x, int y)
else if (x_class == FP_NAN)
{
rslt = (signbit(x) ? -__FLT_NAN : __FLT_NAN);
- __FLT_RPT_DOMAIN ("__powi", x, (__FLT_TYPE) y, rslt);
+ errno = EDOM;
return rslt;
}
else if (x_class == FP_ZERO)
diff --git a/winsup/cygwin/math/sin.def.h b/winsup/cygwin/math/sin.def.h
index c9b3b0499..dfb1cb49f 100644
--- a/winsup/cygwin/math/sin.def.h
+++ b/winsup/cygwin/math/sin.def.h
@@ -53,12 +53,12 @@ __FLT_ABI(sin) (__FLT_TYPE x)
int x_class = fpclassify (x);
if (x_class == FP_NAN)
{
- __FLT_RPT_DOMAIN ("sin", x, 0.0, x);
+ errno = EDOM;
return x;
}
else if (x_class == FP_INFINITE)
{
- __FLT_RPT_DOMAIN ("sin", x, 0.0, __FLT_NAN);
+ errno = EDOM;
return __FLT_NAN;
}
return (__FLT_TYPE) __sinl_internal ((long double) x);
diff --git a/winsup/cygwin/math/sqrt.def.h b/winsup/cygwin/math/sqrt.def.h
index 2690d1d9f..ee858a785 100644
--- a/winsup/cygwin/math/sqrt.def.h
+++ b/winsup/cygwin/math/sqrt.def.h
@@ -73,7 +73,7 @@ __FLT_ABI (sqrt) (__FLT_TYPE x)
if (x_class == FP_ZERO)
return __FLT_CST (-0.0);
- __FLT_RPT_DOMAIN ("sqrt", x, 0.0, x);
+ errno = EDOM;
return x;
}
else if (x_class == FP_ZERO)
diff --git a/winsup/cygwin/release/2.12.0 b/winsup/cygwin/release/2.12.0
index ba911ee54..af74b099e 100644
--- a/winsup/cygwin/release/2.12.0
+++ b/winsup/cygwin/release/2.12.0
@@ -53,6 +53,9 @@ What changed:
- Wctype functions updated to Unicode 11.0.
+- Remove matherr, and SVID and X/Open math library configurations.
+ Default math library configuration is now IEEE.
+
Bug Fixes
---------
diff --git a/winsup/doc/new-features.xml b/winsup/doc/new-features.xml
index a1799d08b..59db9c98a 100644
--- a/winsup/doc/new-features.xml
+++ b/winsup/doc/new-features.xml
@@ -86,6 +86,11 @@ to free the parent directory.
Wctype functions updated to Unicode 11.0.
</para></listitem>
+</para></listitem>
+Remove matherr, and SVID and X/Open math library configurations.
+Default math library configuration is now IEEE.
+<listitem><para>
+
</itemizedlist>
</sect2>