summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-02-01 20:56:08 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-02-01 20:56:08 +0000
commitae1fcb7b92c60ef7134bc8ea82d6089a6841a4b5 (patch)
tree1f7e0c9f120f2d7a3c1d3674f1f352be3784fdbf
parentb1c347e2cd33a1a7f705de5c0876ba47c254a55c (diff)
downloadglibc-ae1fcb7b92c60ef7134bc8ea82d6089a6841a4b5.tar.gz
glibc-ae1fcb7b92c60ef7134bc8ea82d6089a6841a4b5.tar.xz
glibc-ae1fcb7b92c60ef7134bc8ea82d6089a6841a4b5.zip
Add feholdexcept inline in generic math_private.h.
Continuing the process of improving and cleaning up the handling of
configurations lacking support for floating-point exceptions and
rounding modes, this patch adds trivial inline definitions of
feholdexcept and __feholdexcept to the set of inlines for such
configurations in math_private.h.  These inlines were missing from the
tile version used as a basis for the previous inlines, despite a few
such function calls ending up in libm.so.

Tested with build-many-glibcs.py.  As expected, installed stripped
shared libraries are unchanged for architectures supporting exceptions
and rounding modes, but changed for architectures lacking such
support.

	* sysdeps/generic/math_private.h
	[!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (feholdexcept):
	New inline function.
	[!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__feholdexcept):
	Likewise.
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/generic/math_private.h12
2 files changed, 18 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 980c5cbaf3..acfe380aae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2018-02-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/generic/math_private.h
+	[!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (feholdexcept):
+	New inline function.
+	[!FE_HAVE_ROUNDING_MODES && FE_ALL_EXCEPT == 0] (__feholdexcept):
+	Likewise.
+
 	* include/fenv.h [!_ISOMAC && !FE_TONEAREST]: Give #error.
 	[!_ISOMAC] (FE_HAVE_ROUNDING_MODES): New macro.
 	* sysdeps/generic/math_private.h
diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h
index f93cf6927e..0a35cb39fb 100644
--- a/sysdeps/generic/math_private.h
+++ b/sysdeps/generic/math_private.h
@@ -673,6 +673,18 @@ __fegetenv (fenv_t *__e)
 }
 
 extern inline int
+feholdexcept (fenv_t *__e)
+{
+  return 0;
+}
+
+extern inline int
+__feholdexcept (fenv_t *__e)
+{
+  return 0;
+}
+
+extern inline int
 fesetenv (const fenv_t *__e)
 {
   return 0;