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:
authorCorinna Vinschen <corinna@vinschen.de>2023-10-31 15:07:36 +0300
committerCorinna Vinschen <corinna@vinschen.de>2023-10-31 15:27:51 +0300
commit2ef627c46eb2b7cbc359088e5619be74637e9b90 (patch)
tree4ac06bf7733b84bed105475a3c1815201f47494f /winsup
parent60d1eeac6c6185ac77b181929c773015a2772fe8 (diff)
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>
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/cygwin.din2
-rw-r--r--winsup/cygwin/release/3.4.103
2 files changed, 4 insertions, 1 deletions
diff --git a/winsup/cygwin/cygwin.din b/winsup/cygwin/cygwin.din
index 3afadb7f3..d5e8f8c05 100644
--- a/winsup/cygwin/cygwin.din
+++ b/winsup/cygwin/cygwin.din
@@ -534,7 +534,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 c75283991..ec28cdf7e 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