mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
Use generic alias macros in ldbl-opt.
This patch fixes ldbl-opt code to use generic libm alias macros in preparation for getting _FloatN / _FloatNx aliases where appropriate. Four functions are affected, that undefine and redefine alias macros before including the implementations they wrap in such a way that _FloatN / _FloatNx aliases would not appear. s_clog10l.c undefines and redefined declare_mgen_alias, so just needs a libm_alias_ldouble_other call added. w_exp10l_compat.c undefines and redefines weak_alias, but in fact does not need to do so, since math/w_exp10l_compat.c uses libm_alias_ldouble and does not use weak_alias other than through that, so the undefines and redefines of weak_alias are removed. w_lgamma_compatl.c and w_remainderl_compat.c are made to use libm_alias_ldouble_other in conjunction with restoring the original definition of weak_alias so this is effective. Tested with build-many-glibcs.py. Installed stripped shared libraries are unchanged by this patch. * sysdeps/ieee754/ldbl-opt/s_clog10l.c: Use libm_alias_ldouble_other. * sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c (weak_alias): Do not undefine and redefine. [LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)] (exp10l): Do not define here. * sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c [BUILD_LGAMMA] (weak_alias): Undefine and redefine. [BUILD_LGAMMA]: Use libm_alias_ldouble_other. * sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c [LIBM_SVID_COMPAT] (weak_alias): Undefine and redefine here. [LIBM_SVID_COMPAT]: Use libm_alias_ldouble_other.
This commit is contained in:
parent
541f19baf8
commit
0ff64d3a18
13
ChangeLog
13
ChangeLog
@ -1,5 +1,18 @@
|
||||
2017-10-11 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/ieee754/ldbl-opt/s_clog10l.c: Use
|
||||
libm_alias_ldouble_other.
|
||||
* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c (weak_alias): Do not
|
||||
undefine and redefine.
|
||||
[LIBM_SVID_COMPAT && !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)]
|
||||
(exp10l): Do not define here.
|
||||
* sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c [BUILD_LGAMMA]
|
||||
(weak_alias): Undefine and redefine.
|
||||
[BUILD_LGAMMA]: Use libm_alias_ldouble_other.
|
||||
* sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
|
||||
[LIBM_SVID_COMPAT] (weak_alias): Undefine and redefine here.
|
||||
[LIBM_SVID_COMPAT]: Use libm_alias_ldouble_other.
|
||||
|
||||
* soft-fp/fmadf4.c: Include <libm-alias-double.h>.
|
||||
[!__fma] (fma): Define using libm_alias_double.
|
||||
* soft-fp/fmasf4.c: Include <libm-alias-float.h>.
|
||||
|
@ -29,3 +29,4 @@
|
||||
strong_alias (__clog10l_internal, __clog10l__internal)
|
||||
long_double_symbol (libm, __clog10l_internal, __clog10l);
|
||||
long_double_symbol (libm, __clog10l__internal, clog10l);
|
||||
libm_alias_ldouble_other (__clog10, clog10)
|
||||
|
@ -1,18 +1,8 @@
|
||||
#include <math_ldbl_opt.h>
|
||||
#undef weak_alias
|
||||
#define weak_alias(n,a)
|
||||
#undef compat_symbol
|
||||
#define compat_symbol(l,n,a,v)
|
||||
#include <math/w_exp10l_compat.c>
|
||||
#if LIBM_SVID_COMPAT
|
||||
# if !LONG_DOUBLE_COMPAT (libm, GLIBC_2_1)
|
||||
/* If ldbl-opt is used without special versioning for exp10l being
|
||||
required, the generic code does not define exp10l because of the
|
||||
undefine and redefine of weak_alias above. */
|
||||
# undef weak_alias
|
||||
# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
|
||||
weak_alias (__exp10l, exp10l)
|
||||
# endif
|
||||
# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
|
||||
/* compat_symbol was undefined and redefined above to avoid the
|
||||
default pow10l compat symbol at version GLIBC_2_1 (as for ldbl-opt
|
||||
|
@ -9,3 +9,8 @@
|
||||
#if GAMMA_ALIAS
|
||||
long_double_symbol (libm, __gammal, gammal);
|
||||
#endif
|
||||
#if BUILD_LGAMMA
|
||||
# undef weak_alias
|
||||
# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
|
||||
libm_alias_ldouble_other (__lgamma, lgamma)
|
||||
#endif
|
||||
|
@ -3,14 +3,17 @@
|
||||
#define weak_alias(n,a)
|
||||
#include <math/w_remainderl_compat.c>
|
||||
#if LIBM_SVID_COMPAT
|
||||
# if !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
|
||||
/* If ldbl-opt is used without special versioning for remainderl being
|
||||
required, the generic code does not define remainderl because of
|
||||
the undefine and redefine of weak_alias above. */
|
||||
# undef weak_alias
|
||||
# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
|
||||
the undefine and redefine of weak_alias above. In any case, that
|
||||
undefine and redefine mean _FloatN / _FloatNx aliases have not been
|
||||
defined. */
|
||||
# undef weak_alias
|
||||
# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
|
||||
# if !LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
|
||||
weak_alias (__remainderl, remainderl)
|
||||
# endif
|
||||
strong_alias (__remainderl, __dreml)
|
||||
long_double_symbol (libm, __dreml, dreml);
|
||||
libm_alias_ldouble_other (__remainder, remainder)
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user