mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-13 06:40:09 +00:00
0ff64d3a18
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.
18 lines
708 B
C
18 lines
708 B
C
#include <math_ldbl_opt.h>
|
|
#undef compat_symbol
|
|
#define compat_symbol(l,n,a,v)
|
|
#include <math/w_exp10l_compat.c>
|
|
#if LIBM_SVID_COMPAT
|
|
# 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
|
|
configurations, that version should have the alias to exp10). So
|
|
it now needs to be redefined to define the compat symbol at version
|
|
LONG_DOUBLE_COMPAT_VERSION. */
|
|
# undef compat_symbol
|
|
# define compat_symbol(lib, local, symbol, version) \
|
|
compat_symbol_reference (lib, local, symbol, version)
|
|
compat_symbol (libm, __pow10l, pow10l, LONG_DOUBLE_COMPAT_VERSION);
|
|
# endif
|
|
#endif
|