mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
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.
This commit is contained in:
parent
bedac13671
commit
a8dce6197a
26
ChangeLog
26
ChangeLog
@ -1,3 +1,29 @@
|
|||||||
|
2017-10-09 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2017-10-09 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
2017-10-09 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
|
||||||
* lib/glob.c (__glob_pattern_type): Remove now-spurious
|
* lib/glob.c (__glob_pattern_type): Remove now-spurious
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <math_private.h>
|
#include <math_private.h>
|
||||||
#include <math-svid-compat.h>
|
#include <math-svid-compat.h>
|
||||||
|
#include <libm-alias-double.h>
|
||||||
|
|
||||||
|
|
||||||
#if LIBM_SVID_COMPAT
|
#if LIBM_SVID_COMPAT
|
||||||
@ -33,9 +34,5 @@ __lgamma_r(double x, int *signgamp)
|
|||||||
|
|
||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
weak_alias (__lgamma_r, lgamma_r)
|
libm_alias_double_r (__lgamma, lgamma, _r)
|
||||||
# ifdef NO_LONG_DOUBLE
|
|
||||||
strong_alias (__lgamma_r, __lgammal_r)
|
|
||||||
weak_alias (__lgamma_r, lgammal_r)
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -34,12 +34,6 @@
|
|||||||
#define M_CALL_FUNC_R_S(x) M_CALL_FUNC_R_X (x)
|
#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 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
|
FLOAT
|
||||||
M_DECL_FUNC_R (__lgamma) (FLOAT x, int *signgamp)
|
M_DECL_FUNC_R (__lgamma) (FLOAT x, int *signgamp)
|
||||||
{
|
{
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <math_private.h>
|
#include <math_private.h>
|
||||||
#include <math-svid-compat.h>
|
#include <math-svid-compat.h>
|
||||||
|
#include <libm-alias-float.h>
|
||||||
|
|
||||||
|
|
||||||
#if LIBM_SVID_COMPAT
|
#if LIBM_SVID_COMPAT
|
||||||
@ -36,5 +37,5 @@ __lgammaf_r(float x, int *signgamp)
|
|||||||
|
|
||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
weak_alias (__lgammaf_r, lgammaf_r)
|
libm_alias_float_r (__lgamma, lgamma, _r)
|
||||||
#endif
|
#endif
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <math_private.h>
|
#include <math_private.h>
|
||||||
#include <math-svid-compat.h>
|
#include <math-svid-compat.h>
|
||||||
|
#include <libm-alias-ldouble.h>
|
||||||
|
|
||||||
|
|
||||||
#if LIBM_SVID_COMPAT
|
#if LIBM_SVID_COMPAT
|
||||||
@ -37,5 +38,5 @@ __lgammal_r(long double x, int *signgamp)
|
|||||||
|
|
||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
weak_alias (__lgammal_r, lgammal_r)
|
libm_alias_ldouble_r (__lgamma, lgamma, _r)
|
||||||
#endif
|
#endif
|
||||||
|
@ -33,6 +33,10 @@
|
|||||||
# define declare_mgen_alias(from, to) libm_alias_double (from, to)
|
# define declare_mgen_alias(from, to) libm_alias_double (from, to)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef declare_mgen_alias_r
|
||||||
|
# define declare_mgen_alias_r(from, to) libm_alias_double_r (from, to, _r)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Supply the generic macros. */
|
/* Supply the generic macros. */
|
||||||
#include <math-type-macros.h>
|
#include <math-type-macros.h>
|
||||||
|
|
||||||
|
@ -36,6 +36,10 @@
|
|||||||
# define declare_mgen_alias(from, to) libm_alias_float (from, to)
|
# define declare_mgen_alias(from, to) libm_alias_float (from, to)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef declare_mgen_alias_r
|
||||||
|
# define declare_mgen_alias_r(from, to) libm_alias_float_r (from, to, _r)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Supply the generic macros. */
|
/* Supply the generic macros. */
|
||||||
#include <math-type-macros.h>
|
#include <math-type-macros.h>
|
||||||
|
|
||||||
|
@ -38,6 +38,10 @@
|
|||||||
# define declare_mgen_alias(from, to) libm_alias_float128 (from, to)
|
# define declare_mgen_alias(from, to) libm_alias_float128 (from, to)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef declare_mgen_alias_r
|
||||||
|
# define declare_mgen_alias_r(from, to) libm_alias_float128_r (from, to, _r)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Supply the generic macros. */
|
/* Supply the generic macros. */
|
||||||
#include <math-type-macros.h>
|
#include <math-type-macros.h>
|
||||||
|
|
||||||
|
@ -33,6 +33,10 @@
|
|||||||
# define declare_mgen_alias(from, to) libm_alias_ldouble (from, to)
|
# define declare_mgen_alias(from, to) libm_alias_ldouble (from, to)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef declare_mgen_alias_r
|
||||||
|
# define declare_mgen_alias_r(from, to) libm_alias_ldouble_r (from, to, _r)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Supply the generic macros. */
|
/* Supply the generic macros. */
|
||||||
#include <math-type-macros.h>
|
#include <math-type-macros.h>
|
||||||
|
|
||||||
|
@ -34,12 +34,13 @@
|
|||||||
converts a string into the appropriate FLOAT nan
|
converts a string into the appropriate FLOAT nan
|
||||||
value.
|
value.
|
||||||
|
|
||||||
Optionally, these headers may inject a non-standard
|
|
||||||
definition for the following:
|
|
||||||
|
|
||||||
declare_mgen_alias(from,to)
|
declare_mgen_alias(from,to)
|
||||||
This exposes the appropriate symbol(s) for a
|
This exposes the appropriate symbol(s) for a
|
||||||
function f of type FLOAT. */
|
function f of type FLOAT.
|
||||||
|
|
||||||
|
declare_mgen_alias_r(from,to)
|
||||||
|
This exposes the appropriate symbol(s) for a
|
||||||
|
function f_r of type FLOAT. */
|
||||||
|
|
||||||
#ifndef M_PFX
|
#ifndef M_PFX
|
||||||
# error "M_PFX must be defined."
|
# error "M_PFX must be defined."
|
||||||
@ -59,6 +60,12 @@
|
|||||||
#ifndef CFLOAT
|
#ifndef CFLOAT
|
||||||
# error "CFLOAT must be defined."
|
# error "CFLOAT must be defined."
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef declare_mgen_alias
|
||||||
|
# error "declare_mgen_alias must be defined."
|
||||||
|
#endif
|
||||||
|
#ifndef declare_mgen_alias_r
|
||||||
|
# error "declare_mgen_alias_r must be defined."
|
||||||
|
#endif
|
||||||
|
|
||||||
#define __M_CONCAT(a,b) a ## b
|
#define __M_CONCAT(a,b) a ## b
|
||||||
#define __M_CONCATX(a,b) __M_CONCAT(a,b)
|
#define __M_CONCATX(a,b) __M_CONCAT(a,b)
|
||||||
@ -102,9 +109,4 @@
|
|||||||
# define M_DECL_FUNC(f) M_SUF (f)
|
# define M_DECL_FUNC(f) M_SUF (f)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* If the type does not declare special aliasing, use the default. */
|
|
||||||
#ifndef declare_mgen_alias
|
|
||||||
# define declare_mgen_alias(from, to) weak_alias (M_SUF (from), M_SUF (to))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _MATH_TYPE_MACROS */
|
#endif /* _MATH_TYPE_MACROS */
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
#include <math_ldbl_opt.h>
|
|
||||||
#include <math/w_lgamma_r_compat.c>
|
|
||||||
#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
|
|
||||||
compat_symbol (libm, __lgamma_r, lgammal_r, GLIBC_2_0);
|
|
||||||
#endif
|
|
@ -1,7 +0,0 @@
|
|||||||
#include <math_ldbl_opt.h>
|
|
||||||
#undef weak_alias
|
|
||||||
#define weak_alias(n,a)
|
|
||||||
#include <math/w_lgammal_r_compat.c>
|
|
||||||
#if LIBM_SVID_COMPAT
|
|
||||||
long_double_symbol (libm, __lgammal_r, lgammal_r);
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue
Block a user