diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2023-10-31 13:07:36 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2023-10-31 13:29:15 +0100 |
commit | 97a975dac2dee9640964f54fa9693f0295c2363c (patch) | |
tree | 8886c6a801e537d192514337d3394966b46e3970 | |
parent | f0c90d3a8aa4409608abe76e035eab5919133a61 (diff) | |
download | newlib-97a975dac2dee9640964f54fa9693f0295c2363c.zip newlib-97a975dac2dee9640964f54fa9693f0295c2363c.tar.gz newlib-97a975dac2dee9640964f54fa9693f0295c2363c.tar.bz2 |
Cygwin: let feraiseexcept actually raise an exception
The exception handling inside of Cygwin functions marked as SIGFE
covers exceptions and lets the library code handle them gracefully.
If these functions want to raise an exception, they have to send a
signal explicitely via raise(3).
That's not what we want in feraiseexcept(). It triggers a floating
point exception explicitely by calling the i387 op "fwait". Being
marked as SIGFE, this exception will be suppressed and the normal
exception handling won't kick in.
Fix this by moving feraiseexcept into the NOSIGFE realm.
Fixes: 0f81b5d4bcaa ("* Makefile.in (DLL_OFILES): Add new fenv.o module.")
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r-- | winsup/cygwin/cygwin.din | 2 | ||||
-rw-r--r-- | winsup/cygwin/release/3.4.10 | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/winsup/cygwin/cygwin.din b/winsup/cygwin/cygwin.din index be40426..c70380f 100644 --- a/winsup/cygwin/cygwin.din +++ b/winsup/cygwin/cygwin.din @@ -532,7 +532,7 @@ fegetround NOSIGFE feholdexcept SIGFE feof SIGFE feof_unlocked SIGFE -feraiseexcept SIGFE +feraiseexcept NOSIGFE ferror SIGFE ferror_unlocked SIGFE fesetenv SIGFE diff --git a/winsup/cygwin/release/3.4.10 b/winsup/cygwin/release/3.4.10 index c752839..ec28cdf 100644 --- a/winsup/cygwin/release/3.4.10 +++ b/winsup/cygwin/release/3.4.10 @@ -6,3 +6,6 @@ Bug Fixes - Fix hang in process initialization if cwd is unreadable. Addresses: https://cygwin.com/pipermail/cygwin/2023-October/254604.html + +- Let feraiseexcept actually raise an exception. + Addresses: https://cygwin.com/pipermail/cygwin/2023-October/254667.html |