]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Use libm_alias_double for dbl-64 fma.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 4 Oct 2017 20:32:48 +0000 (20:32 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 4 Oct 2017 20:32:48 +0000 (20:32 +0000)
This patch makes dbl-64 fma use libm_alias_double.  The ldbl-opt
version is removed.  The sparc32 version no longer needs to handle
compat symbols, while alpha needs a new wrapper to avoid getting the
ldbl-128 version (where ldbl-opt is earlier in the list of sysdeps
directories, so previously fma came from there).

Tested for x86_64, and tested with build-many-glibcs.py that installed
stripped shared libraries are unchanged by the patch.

* sysdeps/ieee754/dbl-64/s_fma.c: Include <libm-alias-double.h>.
(fma): Define using libm_alias_double.
* sysdeps/ieee754/ldbl-opt/s_fma.c: Remove file.
* sysdeps/sparc/sparc32/fpu/s_fma.c: Do not include
<math_ldbl_opt.h>.
(fmal): Do not define as compat symbol here.
* sysdeps/alpha/fpu/s_fma.c: New file.

ChangeLog
sysdeps/alpha/fpu/s_fma.c [new file with mode: 0644]
sysdeps/ieee754/dbl-64/s_fma.c
sysdeps/ieee754/ldbl-opt/s_fma.c [deleted file]
sysdeps/sparc/sparc32/fpu/s_fma.c

index 23f2595bcea2474f2da155f05c3f9a8a577dab45..4d94f133dc4753409ef866b7bbba7a04fb5c83cd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2017-10-04  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/ieee754/dbl-64/s_fma.c: Include <libm-alias-double.h>.
+       (fma): Define using libm_alias_double.
+       * sysdeps/ieee754/ldbl-opt/s_fma.c: Remove file.
+       * sysdeps/sparc/sparc32/fpu/s_fma.c: Do not include
+       <math_ldbl_opt.h>.
+       (fmal): Do not define as compat symbol here.
+       * sysdeps/alpha/fpu/s_fma.c: New file.
+
 2017-10-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
 
        * sysdeps/aarch64/dl-machine.h (elf_machine_rela): Expand MIN.
diff --git a/sysdeps/alpha/fpu/s_fma.c b/sysdeps/alpha/fpu/s_fma.c
new file mode 100644 (file)
index 0000000..8f62605
--- /dev/null
@@ -0,0 +1,2 @@
+/* Always use dbl-64 version because long double is emulated in software.  */
+#include <sysdeps/ieee754/dbl-64/s_fma.c>
index 68c8515fb1f58d90fc7976cfbc53abafdf003d6e..3a5a8858cebcccb0b4fc7b461a47408d9e3cf79f 100644 (file)
@@ -22,6 +22,7 @@
 #include <fenv.h>
 #include <ieee754.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 #include <tininess.h>
 
 /* This implementation uses rounding to odd to avoid problems with
@@ -292,10 +293,5 @@ __fma (double x, double y, double z)
     }
 }
 #ifndef __fma
-weak_alias (__fma, fma)
-#endif
-
-#ifdef NO_LONG_DOUBLE
-strong_alias (__fma, __fmal)
-weak_alias (__fmal, fmal)
+libm_alias_double (__fma, fma)
 #endif
diff --git a/sysdeps/ieee754/ldbl-opt/s_fma.c b/sysdeps/ieee754/ldbl-opt/s_fma.c
deleted file mode 100644 (file)
index 1723c5c..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <math_ldbl_opt.h>
-#include <sysdeps/ieee754/dbl-64/s_fma.c>
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fma, fmal, GLIBC_2_1);
-#endif
index bfdcb23b3a63f44694681f422f8eadae244ea7bc..8f62605870439f2a821b9ee95bc868a8794aa363 100644 (file)
@@ -1,6 +1,2 @@
 /* Always use dbl-64 version because long double is emulated in software.  */
-#include <math_ldbl_opt.h>
 #include <sysdeps/ieee754/dbl-64/s_fma.c>
-#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)
-compat_symbol (libm, __fma, fmal, GLIBC_2_1);
-#endif