aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-10-06 20:23:58 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-10-06 20:23:58 +0000
commitf85a176f3f411b7478c2b8cb2708973e8668e7fb (patch)
tree825661a9917eb4fa8f558aba88dbff90fcca0701
parentfd3b4e7c8a0b492fe39243893803f4d9f84e30af (diff)
downloadglibc-f85a176f3f411b7478c2b8cb2708973e8668e7fb.zip
glibc-f85a176f3f411b7478c2b8cb2708973e8668e7fb.tar.gz
glibc-f85a176f3f411b7478c2b8cb2708973e8668e7fb.tar.bz2
Use libm_alias_double in ldbl-128, ldbl-96 fma.
This patch makes the ldbl-128 and ldbl-96 implementations of fma use libm_alias_double. Tested for x86_64, and tested with build-many-glibcs.py that installed stripped shared libraries are unchanged by the patch. * sysdeps/ieee754/ldbl-128/s_fma.c: Include <libm-alias-double.h>. [!__fma] (fma): Define using libm_alias_double. * sysdeps/ieee754/ldbl-96/s_fma.c: Include <libm-alias-double.h>. [!__fma] (fma): Define using libm_alias_double.
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fma.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fma.c3
3 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 6aaf10d..deec63d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2017-10-06 Joseph Myers <joseph@codesourcery.com>
+ * sysdeps/ieee754/ldbl-128/s_fma.c: Include <libm-alias-double.h>.
+ [!__fma] (fma): Define using libm_alias_double.
+ * sysdeps/ieee754/ldbl-96/s_fma.c: Include <libm-alias-double.h>.
+ [!__fma] (fma): Define using libm_alias_double.
+
* sysdeps/ieee754/float128/float128_private.h: Include
<libm-alias-ldouble.h> and <libm-alias-float128.h>.
(libm_alias_ldouble_r): Undefine and redefine.
diff --git a/sysdeps/ieee754/ldbl-128/s_fma.c b/sysdeps/ieee754/ldbl-128/s_fma.c
index 13da290..0f7ecab 100644
--- a/sysdeps/ieee754/ldbl-128/s_fma.c
+++ b/sysdeps/ieee754/ldbl-128/s_fma.c
@@ -20,6 +20,7 @@
#include <math.h>
#include <fenv.h>
#include <ieee754.h>
+#include <libm-alias-double.h>
/* This implementation relies on long double being more than twice as
precise as double and uses rounding to odd in order to avoid problems
@@ -51,5 +52,5 @@ __fma (double x, double y, double z)
return (double) u.d;
}
#ifndef __fma
-weak_alias (__fma, fma)
+libm_alias_double (__fma, fma)
#endif
diff --git a/sysdeps/ieee754/ldbl-96/s_fma.c b/sysdeps/ieee754/ldbl-96/s_fma.c
index 3705920..e573c71 100644
--- a/sysdeps/ieee754/ldbl-96/s_fma.c
+++ b/sysdeps/ieee754/ldbl-96/s_fma.c
@@ -22,6 +22,7 @@
#include <fenv.h>
#include <ieee754.h>
#include <math_private.h>
+#include <libm-alias-double.h>
/* This implementation uses rounding to odd to avoid problems with
double rounding. See a paper by Boldo and Melquiond:
@@ -97,5 +98,5 @@ __fma (double x, double y, double z)
return u.d;
}
#ifndef __fma
-weak_alias (__fma, fma)
+libm_alias_double (__fma, fma)
#endif