summaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-10-09 22:04:18 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-10-09 22:04:18 +0000
commita8dce6197a646fcf870dd2e87069eba3c99099e1 (patch)
tree07c054c4700a120114b5e3edbb9d09d5bc8f499d /math
parentbedac136717a1c26fa579aca82124ce3c22254bf (diff)
Use generic macros for lgamma_r function aliases.
Continuing the use of generic macros for defining libm function aliases, in preparation for adding more _FloatN / _FloatNx function names, this patch makes the lgamma_r functions use such macros. declare_mgen_alias_r becomes a standard macro in math-type-macros.h instead of being locally defined in w_lgamma_r_templace.c. This in turn must be defined by each math-type-macros-<type>.h. Rather than providing an unused default in math-type-macros.h, that header is made to give an error if math-type-macros-<type>.h failed to define declare_mgen_alias or declare_mgen_alias_r. The compat lgamma_r wrappers are updated similarly. The ldbl-opt versions are removed as no longer needed. Tested for x86_64, and with build-many-glibcs.py. Installed stripped shared libraries are unchanged except for powerpc64le (where the usual issue applies that an ldbl-opt long double function previously used long_double_symbol unconditionally and now the symbol versions on powerpc64le mean weak_alias is used instead, resulting in the same symbol versions in the final shared library but still enough difference in the input objects for that library not to be byte-identical). * sysdeps/generic/math-type-macros.h [!declare_mgen_alias]: Give error. Remove default definition of declare_mgen_alias. [!declare_mgen_alias_r]: Likewise. * sysdeps/generic/math-type-macros-double.h [!declare_mgen_alias_r] (declare_mgen_alias_r): New macro. * sysdeps/generic/math-type-macros-float.h [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise. * sysdeps/generic/math-type-macros-float128.h [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise. * sysdeps/generic/math-type-macros-ldouble.h [!declare_mgen_alias_r] (declare_mgen_alias_r): Likewise. * math/w_lgamma_r_template.c (declare_mgen_alias_r_x): Remove macro. (declare_mgen_alias_r_s): Likewise. (declare_mgen_alias_r): Likewise. * math/w_lgamma_r_compat.c: Include <libm-alias-double.h>. (lgamma_r): Define using libm_alias_double_r. * math/w_lgammaf_r_compat.c: Include <libm-alias-float.h>. (lgammaf_r): Define using libm_alias_float_r. * math/w_lgammal_r_compat.c: Include <libm-alias-ldouble.h>. (lgammal_r): Define using libm_alias_ldouble_r. * sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c: Remove file. * sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
Diffstat (limited to 'math')
-rw-r--r--math/w_lgamma_r_compat.c7
-rw-r--r--math/w_lgamma_r_template.c6
-rw-r--r--math/w_lgammaf_r_compat.c3
-rw-r--r--math/w_lgammal_r_compat.c3
4 files changed, 6 insertions, 13 deletions
diff --git a/math/w_lgamma_r_compat.c b/math/w_lgamma_r_compat.c
index f88a5df6a5..5b3ceaa2ea 100644
--- a/math/w_lgamma_r_compat.c
+++ b/math/w_lgamma_r_compat.c
@@ -17,6 +17,7 @@
#include <math.h>
#include <math_private.h>
#include <math-svid-compat.h>
+#include <libm-alias-double.h>
#if LIBM_SVID_COMPAT
@@ -33,9 +34,5 @@ __lgamma_r(double x, int *signgamp)
return y;
}
-weak_alias (__lgamma_r, lgamma_r)
-# ifdef NO_LONG_DOUBLE
-strong_alias (__lgamma_r, __lgammal_r)
-weak_alias (__lgamma_r, lgammal_r)
-# endif
+libm_alias_double_r (__lgamma, lgamma, _r)
#endif
diff --git a/math/w_lgamma_r_template.c b/math/w_lgamma_r_template.c
index 5610db167c..57c285b1ef 100644
--- a/math/w_lgamma_r_template.c
+++ b/math/w_lgamma_r_template.c
@@ -34,12 +34,6 @@
#define M_CALL_FUNC_R_S(x) M_CALL_FUNC_R_X (x)
#define M_CALL_FUNC_R(x) M_CALL_FUNC_R_S (M_SUF (x))
-#define declare_mgen_alias_r_x(from, to) weak_alias (from ## _r, to ## _r)
-#define declare_mgen_alias_r_s(from, to) \
- declare_mgen_alias_r_x (from, to)
-#define declare_mgen_alias_r(from, to) \
- declare_mgen_alias_r_s (M_SUF (from), M_SUF (to))
-
FLOAT
M_DECL_FUNC_R (__lgamma) (FLOAT x, int *signgamp)
{
diff --git a/math/w_lgammaf_r_compat.c b/math/w_lgammaf_r_compat.c
index 86003de59a..c7751f13f5 100644
--- a/math/w_lgammaf_r_compat.c
+++ b/math/w_lgammaf_r_compat.c
@@ -20,6 +20,7 @@
#include <math.h>
#include <math_private.h>
#include <math-svid-compat.h>
+#include <libm-alias-float.h>
#if LIBM_SVID_COMPAT
@@ -36,5 +37,5 @@ __lgammaf_r(float x, int *signgamp)
return y;
}
-weak_alias (__lgammaf_r, lgammaf_r)
+libm_alias_float_r (__lgamma, lgamma, _r)
#endif
diff --git a/math/w_lgammal_r_compat.c b/math/w_lgammal_r_compat.c
index 781bfa45e7..09a8070b46 100644
--- a/math/w_lgammal_r_compat.c
+++ b/math/w_lgammal_r_compat.c
@@ -21,6 +21,7 @@
#include <math.h>
#include <math_private.h>
#include <math-svid-compat.h>
+#include <libm-alias-ldouble.h>
#if LIBM_SVID_COMPAT
@@ -37,5 +38,5 @@ __lgammal_r(long double x, int *signgamp)
return y;
}
-weak_alias (__lgammal_r, lgammal_r)
+libm_alias_ldouble_r (__lgamma, lgamma, _r)
#endif