about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-07-17 17:56:43 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-07-17 17:56:43 +0000
commit831b9896d8e957580591a3cbe11dcd5ac6743ba2 (patch)
tree5242f61fab491bec10b154d470f4b9694a393824
parentb21c2d5020d85596c0391e03054d7fe031ffd60b (diff)
downloadglibc-831b9896d8e957580591a3cbe11dcd5ac6743ba2.tar.gz
glibc-831b9896d8e957580591a3cbe11dcd5ac6743ba2.tar.xz
glibc-831b9896d8e957580591a3cbe11dcd5ac6743ba2.zip
Fix fallback fesetenv and feupdateenv on FE_NOMASK_ENV (bug 17088).
This patch fixes bug 17088, fallback fesetenv and feupdateenv not
giving an error for an FE_NOMASK_ENV argument when it requires traps
to be enabled.  (This is the bug tested for by test-fenv-return.c.)

Tested mips64 soft-float.

	[BZ #17088]
	* math/fesetenv.c (__fesetenv)
	[FE_NOMASK_ENV && FE_ALL_EXCEPT != 0]: Return 1 for FE_NOMASK_ENV.
	* math/feupdateenv.c (__feupdateenv)
	[FE_NOMASK_ENV && FE_ALL_EXCEPT != 0]: Likewise.
-rw-r--r--ChangeLog6
-rw-r--r--NEWS4
-rw-r--r--math/fesetenv.c4
-rw-r--r--math/feupdateenv.c4
4 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 041839be81..d32f47a3af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2014-07-17  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #17088]
+	* math/fesetenv.c (__fesetenv)
+	[FE_NOMASK_ENV && FE_ALL_EXCEPT != 0]: Return 1 for FE_NOMASK_ENV.
+	* math/feupdateenv.c (__feupdateenv)
+	[FE_NOMASK_ENV && FE_ALL_EXCEPT != 0]: Likewise.
+
 	* sysdeps/unix/sysv/linux/s390/kernel-features.h: New file.
 	* sysdeps/unix/sysv/linux/kernel-features.h [__s390__]
 	(__ASSUME_SOCKETCALL): Do not define.
diff --git a/NEWS b/NEWS
index e734bafa37..aada32b243 100644
--- a/NEWS
+++ b/NEWS
@@ -21,8 +21,8 @@ Version 2.20
   16882, 16885, 16888, 16890, 16912, 16915, 16916, 16917, 16918, 16922,
   16927, 16928, 16932, 16943, 16958, 16965, 16966, 16967, 16977, 16978,
   16984, 16990, 16996, 17009, 17022, 17031, 17042, 17048, 17050, 17058,
-  17061, 17062, 17069, 17075, 17079, 17084, 17086, 17092, 17097, 17125,
-  17135, 17137, 17153.
+  17061, 17062, 17069, 17075, 17079, 17084, 17086, 17088, 17092, 17097,
+  17125, 17135, 17137, 17153.
 
 * Optimized strchr implementation for AArch64.  Contributed by ARM Ltd.
 
diff --git a/math/fesetenv.c b/math/fesetenv.c
index acfe5f4889..9bf42c0f6c 100644
--- a/math/fesetenv.c
+++ b/math/fesetenv.c
@@ -23,6 +23,10 @@
 int
 __fesetenv (const fenv_t *envp)
 {
+#if defined FE_NOMASK_ENV && FE_ALL_EXCEPT != 0
+  if (envp == FE_NOMASK_ENV)
+    return 1;
+#endif
   /* Nothing to do.  */
   return 0;
 }
diff --git a/math/feupdateenv.c b/math/feupdateenv.c
index 13d819e479..08d8ae28a4 100644
--- a/math/feupdateenv.c
+++ b/math/feupdateenv.c
@@ -23,6 +23,10 @@
 int
 __feupdateenv (const fenv_t *envp)
 {
+#if defined FE_NOMASK_ENV && FE_ALL_EXCEPT != 0
+  if (envp == FE_NOMASK_ENV)
+    return 1;
+#endif
   /* Nothing to do.  */
   return 0;
 }