mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-29 05:51:10 +00:00
9ac4470888
This patch converts libm function implementations in math/ from using weak_alias to using libm_alias_double to define public function names, in cases where it would be appropriate to define _Float64 / _Float32x aliases for those functions as well. This eliminates many NO_LONG_DOUBLE conditionals and ldbl-opt wrappers round these function implementations. Tested for x86_64. Also tested with build-many-glibcs.py. Binary differences seen are that the different order in which remainder and drem symbols get defined as a result of this patch (the same source file defines the same aliases, but in a different order of definition) changes the order of symbols in the final libm.so when long double = double, and for ldbl-opt configurations, the compat symbols for Bessel functions were previously defined by e.g. "compat_symbol (libm, j0, j0l, GLIBC_2_0)", which declares j0l as a compat symbol based on j0 and so makes j0l weak because j0 is weak, and are now defined (indirectly via the relevant macros) based on e.g. __j0, so are no longer weak because __j0 isn't weak. * math/s_fma.c: Include <libm-alias-double.h>. (fma): Define using libm_alias_double. * math/s_nextafter.c: Include <libm-alias-double.h>. (nextafter): Define using libm_alias_double. * math/w_acos_compat.c: Include <libm-alias-double.h>. (acos): Define using libm_alias_double. * math/w_acosh_compat.c: Include <libm-alias-double.h>. (aocsh): Define using libm_alias_double. * math/w_asin_compat.c: Include <libm-alias-double.h>. (asin): Define using libm_alias_double. * math/w_atan2_compat.c: Include <libm-alias-double.h>. (atan2): Define using libm_alias_double. * math/w_atanh_compat.c: Include <libm-alias-double.h>. (atanh): Define using libm_alias_double. * math/w_cosh_compat.c: Include <libm-alias-double.h>. (cosh): Define using libm_alias_double. * math/w_exp10_compat.c: Include <libm-alias-double.h>. (exp10): Define using libm_alias_double. * math/w_exp2_compat.c: Include <libm-alias-double.h>. (exp2): Define using libm_alias_double. * math/w_exp_compat.c: Include <libm-alias-double.h>. (exp): Define using libm_alias_double. * math/w_fmod_compat.c: Include <libm-alias-double.h>. (fmod): Define using libm_alias_double. * math/w_hypot_compat.c: Include <libm-alias-double.h>. (hypot): Define using libm_alias_double. * math/w_j0_compat.c: Include <libm-alias-double.h>. (j0): Define using libm_alias_double. (y0): Likewise. * math/w_j1_compat.c: Include <libm-alias-double.h>. (j1): Define using libm_alias_double. (y1): Likewise. * math/w_jn_compat.c: Include <libm-alias-double.h>. (jn): Define using libm_alias_double. (yn): Likewise. * math/w_log10_compat.c: Include <libm-alias-double.h>. (log10): Define using libm_alias_double. * math/w_log2_compat.c: Include <libm-alias-double.h>. (log2): Define using libm_alias_double. * math/w_log_compat.c: Include <libm-alias-double.h>. (log): Define using libm_alias_double. * math/w_pow_compat.c: Include <libm-alias-double.h>. (pow): Define using libm_alias_double. * math/w_remainder_compat.c: Include <libm-alias-double.h>. (remainder): Define using libm_alias_double. * math/w_sinh_compat.c: Include <libm-alias-double.h>. (sinh): Define using libm_alias_double. * math/w_sqrt_compat.c: Include <libm-alias-double.h>. (sqrt): Define using libm_alias_double. * math/w_tgamma_compat.c: Include <libm-alias-double.h>. (tgamma): Define using libm_alias_double. * sysdeps/ieee754/ldbl-opt/s_nextafter.c [LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (nextafterl): Do not define compat symbol here. * sysdeps/ieee754/ldbl-opt/w_exp10_compat.c [LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)] (exp10l): Likewise. * sysdeps/ieee754/ldbl-opt/w_remainder_compat.c [LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)] (remainderl): Likewise. * sysdeps/ieee754/ldbl-opt/w_acos_compat.c: Remove. * sysdeps/ieee754/ldbl-opt/w_acosh_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_asin_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_atan2_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_atanh_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_cosh_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_exp_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_fmod_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_hypot_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_j0_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_j1_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_jn_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_log10_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_log2_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_log_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_pow_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_sinh_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c: Likewise. * sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c: Likewise. |
||
---|---|---|
.. | ||
bits | ||
configure | ||
configure.ac | ||
libm-alias-double.h | ||
libm-alias-ldouble.h | ||
Makefile | ||
math_ldbl_opt.c | ||
math_ldbl_opt.h | ||
nldbl-acos.c | ||
nldbl-acosh.c | ||
nldbl-asin.c | ||
nldbl-asinh.c | ||
nldbl-asprintf_chk.c | ||
nldbl-asprintf.c | ||
nldbl-atan2.c | ||
nldbl-atan.c | ||
nldbl-atanh.c | ||
nldbl-cabs.c | ||
nldbl-cacos.c | ||
nldbl-cacosh.c | ||
nldbl-canonicalize.c | ||
nldbl-carg.c | ||
nldbl-casin.c | ||
nldbl-casinh.c | ||
nldbl-catan.c | ||
nldbl-catanh.c | ||
nldbl-cbrt.c | ||
nldbl-ccos.c | ||
nldbl-ccosh.c | ||
nldbl-ceil.c | ||
nldbl-cexp.c | ||
nldbl-cimag.c | ||
nldbl-clog10.c | ||
nldbl-clog.c | ||
nldbl-compat.c | ||
nldbl-compat.h | ||
nldbl-conj.c | ||
nldbl-copysign.c | ||
nldbl-cos.c | ||
nldbl-cosh.c | ||
nldbl-cpow.c | ||
nldbl-cproj.c | ||
nldbl-creal.c | ||
nldbl-csin.c | ||
nldbl-csinh.c | ||
nldbl-csqrt.c | ||
nldbl-ctan.c | ||
nldbl-ctanh.c | ||
nldbl-dprintf_chk.c | ||
nldbl-dprintf.c | ||
nldbl-erf.c | ||
nldbl-erfc.c | ||
nldbl-exp2.c | ||
nldbl-exp10.c | ||
nldbl-exp.c | ||
nldbl-expm1.c | ||
nldbl-fabs.c | ||
nldbl-fdim.c | ||
nldbl-finite.c | ||
nldbl-floor.c | ||
nldbl-fma.c | ||
nldbl-fmax.c | ||
nldbl-fmaxmag.c | ||
nldbl-fmin.c | ||
nldbl-fminmag.c | ||
nldbl-fmod.c | ||
nldbl-fprintf_chk.c | ||
nldbl-fprintf.c | ||
nldbl-frexp.c | ||
nldbl-fromfp.c | ||
nldbl-fromfpx.c | ||
nldbl-fscanf.c | ||
nldbl-fwprintf_chk.c | ||
nldbl-fwprintf.c | ||
nldbl-fwscanf.c | ||
nldbl-gamma.c | ||
nldbl-getpayload.c | ||
nldbl-hypot.c | ||
nldbl-ilogb.c | ||
nldbl-iovfscanf.c | ||
nldbl-isinf.c | ||
nldbl-isnan.c | ||
nldbl-isoc99_fscanf.c | ||
nldbl-isoc99_fwscanf.c | ||
nldbl-isoc99_scanf.c | ||
nldbl-isoc99_sscanf.c | ||
nldbl-isoc99_swscanf.c | ||
nldbl-isoc99_vfscanf.c | ||
nldbl-isoc99_vfwscanf.c | ||
nldbl-isoc99_vscanf.c | ||
nldbl-isoc99_vsscanf.c | ||
nldbl-isoc99_vswscanf.c | ||
nldbl-isoc99_vwscanf.c | ||
nldbl-isoc99_wscanf.c | ||
nldbl-j0.c | ||
nldbl-j1.c | ||
nldbl-jn.c | ||
nldbl-ldexp.c | ||
nldbl-lgamma_r.c | ||
nldbl-lgamma.c | ||
nldbl-llogb.c | ||
nldbl-llrint.c | ||
nldbl-llround.c | ||
nldbl-log1p.c | ||
nldbl-log2.c | ||
nldbl-log10.c | ||
nldbl-log.c | ||
nldbl-logb.c | ||
nldbl-lrint.c | ||
nldbl-lround.c | ||
nldbl-modf.c | ||
nldbl-nan.c | ||
nldbl-nearbyint.c | ||
nldbl-nextafter.c | ||
nldbl-nextdown.c | ||
nldbl-nexttoward.c | ||
nldbl-nexttowardf.c | ||
nldbl-nextup.c | ||
nldbl-obstack_printf_chk.c | ||
nldbl-obstack_printf.c | ||
nldbl-obstack_vprintf_chk.c | ||
nldbl-obstack_vprintf.c | ||
nldbl-pow.c | ||
nldbl-printf_chk.c | ||
nldbl-printf_fp.c | ||
nldbl-printf_size.c | ||
nldbl-printf.c | ||
nldbl-qecvt_r.c | ||
nldbl-qecvt.c | ||
nldbl-qfcvt_r.c | ||
nldbl-qfcvt.c | ||
nldbl-qgcvt.c | ||
nldbl-remainder.c | ||
nldbl-remquo.c | ||
nldbl-rint.c | ||
nldbl-round.c | ||
nldbl-roundeven.c | ||
nldbl-scalb.c | ||
nldbl-scalbln.c | ||
nldbl-scalbn.c | ||
nldbl-scanf.c | ||
nldbl-setpayload.c | ||
nldbl-setpayloadsig.c | ||
nldbl-signbit.c | ||
nldbl-significand.c | ||
nldbl-sin.c | ||
nldbl-sincos.c | ||
nldbl-sinh.c | ||
nldbl-snprintf_chk.c | ||
nldbl-snprintf.c | ||
nldbl-sprintf_chk.c | ||
nldbl-sprintf.c | ||
nldbl-sqrt.c | ||
nldbl-sscanf.c | ||
nldbl-strfmon_l.c | ||
nldbl-strfmon.c | ||
nldbl-strfroml.c | ||
nldbl-strtold_l.c | ||
nldbl-strtold.c | ||
nldbl-strtoldint.c | ||
nldbl-swprintf_chk.c | ||
nldbl-swprintf.c | ||
nldbl-swscanf.c | ||
nldbl-syslog_chk.c | ||
nldbl-syslog.c | ||
nldbl-tan.c | ||
nldbl-tanh.c | ||
nldbl-tgamma.c | ||
nldbl-totalorder.c | ||
nldbl-totalordermag.c | ||
nldbl-trunc.c | ||
nldbl-ufromfp.c | ||
nldbl-ufromfpx.c | ||
nldbl-vasprintf_chk.c | ||
nldbl-vasprintf.c | ||
nldbl-vdprintf_chk.c | ||
nldbl-vdprintf.c | ||
nldbl-vfprintf_chk.c | ||
nldbl-vfprintf.c | ||
nldbl-vfscanf.c | ||
nldbl-vfwprintf_chk.c | ||
nldbl-vfwprintf.c | ||
nldbl-vfwscanf.c | ||
nldbl-vprintf_chk.c | ||
nldbl-vprintf.c | ||
nldbl-vscanf.c | ||
nldbl-vsnprintf_chk.c | ||
nldbl-vsnprintf.c | ||
nldbl-vsprintf_chk.c | ||
nldbl-vsprintf.c | ||
nldbl-vsscanf.c | ||
nldbl-vswprintf_chk.c | ||
nldbl-vswprintf.c | ||
nldbl-vswscanf.c | ||
nldbl-vsyslog_chk.c | ||
nldbl-vsyslog.c | ||
nldbl-vwprintf_chk.c | ||
nldbl-vwprintf.c | ||
nldbl-vwscanf.c | ||
nldbl-wcstold_l.c | ||
nldbl-wcstold.c | ||
nldbl-wcstoldint.c | ||
nldbl-wprintf_chk.c | ||
nldbl-wprintf.c | ||
nldbl-wscanf.c | ||
nldbl-y0.c | ||
nldbl-y1.c | ||
nldbl-yn.c | ||
s_asinh.c | ||
s_atan.c | ||
s_cbrt.c | ||
s_ceil.c | ||
s_clog10.c | ||
s_clog10l.c | ||
s_copysign.c | ||
s_erf.c | ||
s_expm1.c | ||
s_fabs.c | ||
s_finite.c | ||
s_floor.c | ||
s_fma.c | ||
s_fmal.c | ||
s_frexp.c | ||
s_isinf.c | ||
s_isnan.c | ||
s_ldexp.c | ||
s_ldexpl.c | ||
s_llrint.c | ||
s_llround.c | ||
s_logb.c | ||
s_lrint.c | ||
s_lround.c | ||
s_modf.c | ||
s_nearbyint.c | ||
s_nextafter.c | ||
s_nexttowardfd.c | ||
s_remquo.c | ||
s_rint.c | ||
s_round.c | ||
s_significand.c | ||
s_significandl.c | ||
s_sin.c | ||
s_sincos.c | ||
s_tan.c | ||
s_tanh.c | ||
s_trunc.c | ||
Versions | ||
w_acoshl_compat.c | ||
w_acosl_compat.c | ||
w_asinl_compat.c | ||
w_atan2l_compat.c | ||
w_atanhl_compat.c | ||
w_coshl_compat.c | ||
w_exp10_compat.c | ||
w_exp10l_compat.c | ||
w_expl_compat.c | ||
w_fmodl_compat.c | ||
w_hypotl_compat.c | ||
w_j0l_compat.c | ||
w_j1l_compat.c | ||
w_jnl_compat.c | ||
w_lgamma_compat.c | ||
w_lgamma_compatl.c | ||
w_lgamma_r_compat.c | ||
w_lgammal_r_compat.c | ||
w_log2l_compat.c | ||
w_log10l_compat.c | ||
w_logl_compat.c | ||
w_powl_compat.c | ||
w_remainder_compat.c | ||
w_remainderl_compat.c | ||
w_scalb_compat.c | ||
w_scalbl_compat.c | ||
w_scalbln.c | ||
w_sinhl_compat.c | ||
w_sqrtl_compat.c | ||
w_tgammal_compat.c |