]> sourceware.org Git - glibc.git/commitdiff
Use libm_alias_double for dbl-64 modf.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 3 Oct 2017 23:46:23 +0000 (23:46 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 3 Oct 2017 23:46:23 +0000 (23:46 +0000)
This patch makes dbl-64 modf use libm_alias_double.  Both the dbl-64
and dbl-64/wordsize-64 versions are changed, and the ldbl-opt version
is changed to define the libc compat symbol only.  Because of
multiarch wrappers, the changed implementations are made not to define
aliases at all if __modf is defined as a macro, as with other
functions, so avoiding duplicate compat symbols while allowing those
wrappers to be simplified.

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

* sysdeps/ieee754/dbl-64/s_modf.c: Include <libm-alias-double.h>.
(modf): Define using libm_alias_double, only if [!__modf].
* sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c: Include
<libm-alias-double.h>.
(modf): Define using libm_alias_double, only if [!__modf].
* sysdeps/ieee754/ldbl-opt/s_modf.c (modfl): Only define libc
compat symbol here.
* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
(weak_alias): Do not undefine and redefine.
(strong_alias): Likewise.
* sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c
(weak_alias): Likewise.
(strong_alias): Likewise.

ChangeLog
sysdeps/ieee754/dbl-64/s_modf.c
sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c
sysdeps/ieee754/ldbl-opt/s_modf.c
sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c

index dceeb542c79a957d9a1fd4f20578494d8022adec..a36e2f6a0df7553ca8a350853d78aee46f4aae69 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2017-10-03  Joseph Myers  <joseph@codesourcery.com>
 
+       * sysdeps/ieee754/dbl-64/s_modf.c: Include <libm-alias-double.h>.
+       (modf): Define using libm_alias_double, only if [!__modf].
+       * sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c: Include
+       <libm-alias-double.h>.
+       (modf): Define using libm_alias_double, only if [!__modf].
+       * sysdeps/ieee754/ldbl-opt/s_modf.c (modfl): Only define libc
+       compat symbol here.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
+       (weak_alias): Do not undefine and redefine.
+       (strong_alias): Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf-ppc64.c
+       (weak_alias): Likewise.
+       (strong_alias): Likewise.
+
        * sysdeps/ieee754/dbl-64/s_logb.c: Include <libm-alias-double.h>.
        (logb): Define using libm_alias_double, only if [!__logb].
        * sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c: Include
index 0cad7b16a710c37f7e942641cb15580774377ede..722511c64ac180a08c35d3f777b45dfc2335935e 100644 (file)
@@ -21,6 +21,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 
 static const double one = 1.0;
 
@@ -79,8 +80,6 @@ __modf (double x, double *iptr)
        }
     }
 }
-weak_alias (__modf, modf)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__modf, __modfl)
-weak_alias (__modf, modfl)
+#ifndef __modf
+libm_alias_double (__modf, modf)
 #endif
index c309e562726293b709a0c5ebfe129b01927ea700..8d14e78ef006e59dea0316221692dac572e0e139 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <math.h>
 #include <math_private.h>
+#include <libm-alias-double.h>
 #include <stdint.h>
 
 static const double one = 1.0;
@@ -59,8 +60,6 @@ __modf(double x, double *iptr)
            return x;
        }
 }
-weak_alias (__modf, modf)
-#ifdef NO_LONG_DOUBLE
-strong_alias (__modf, __modfl)
-weak_alias (__modf, modfl)
+#ifndef __modf
+libm_alias_double (__modf, modf)
 #endif
index 93acb43ae6b894db6ea252d6ebbe7352e1cec725..268a728e9bf9879d99ed3a59dea1e5414fecd0f8 100644 (file)
@@ -1,9 +1,5 @@
 #include <math_ldbl_opt.h>
 #include <sysdeps/ieee754/dbl-64/s_modf.c>
-#if IS_IN (libm)
-# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
-compat_symbol (libm, __modf, modfl, GLIBC_2_0);
-# endif
-#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
 compat_symbol (libc, __modf, modfl, GLIBC_2_0);
 #endif
index 6561fdf8e11dd81a4ba8cf7693e4dec685779e5b..554dc99545d0347328425bc725c68071a487d66c 100644 (file)
 #include <math.h>
 #include <math_ldbl_opt.h>
 
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-
 #define __modf __modf_ppc32
 
 #include <sysdeps/ieee754/dbl-64/s_modf.c>
index 43318ee4dd5370629eaa1c7a5ed08c75a4a1a1ef..7b5656d807b094de1d8debeef796802a4ed7e261 100644 (file)
 #include <math.h>
 #include <math_ldbl_opt.h>
 
-#undef weak_alias
-#define weak_alias(a,b)
-#undef strong_alias
-#define strong_alias(a,b)
-
 #define __modf __modf_ppc64
 
 #include <sysdeps/ieee754/dbl-64/s_modf.c>
This page took 0.080023 seconds and 5 git commands to generate.