1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

Prefer new libm function wrappers for !LIBM_SVID_COMPAT.

The initial obsoletion of SVID libm error handling left the old
wrappers and __kernel_standard still being used for new ports and
static linking, just with macro definitions of _LIB_VERSION and
matherr that meant symbols with those names were never actually used
and the code for different error handling variants could be optimized
out.

This patch cleans things up further by eliminating the
__kernel_standard use for new ports and static linking.  Now, the old
wrappers no longer generate any code in the !LIBM_SVID_COMPAT case,
while the new errno-only wrappers that were added for float128 support
are now also used for float, double and long double in that case.

The changes are generally straightforward.  The w_scalb*_compat
wrappers continue to be used (scalb is obsolescent in the sense of not
being supported for float128, but is present in supported standards -
the 2001 edition of POSIX and earlier XSI versions - so remains
supported for static linking and new ports, as do the float and long
double variants that are existing GNU extensions).  Those wrappers
would only call __kernel_standard in the _LIB_VERSION == _SVID_ case.
Since we would like to be able to compile most of glibc without
optimization, relying on a static function whose only use is under an
if (0) condition being optimized away to avoid an undefined
__kernel_standard reference may not be a good idea.  Thus, the
relevant code in the scalb wrappers has LIBM_SVID_COMPAT conditionals
added to guarantee it's not built at all in the case where
__kernel_standard does not exist.

Just as i386 has its own w_sqrt_compat.c, so w_sqrt.c is also added.
ia64 gets dummy w_*.c to prevent those files being built where they
would conflict with the ia64 libm, as with its existing w_*_compat.c.

Conditions disabling code for !LIBM_SVID_COMPAT are needed in both the
math/ wrappers and in the long double wrappers in ldbl-opt (to avoid
them setting up aliases and symbol versions for undefined symbols).  I
hope that future cleanups to how libm function aliases and symbol
versioning are done will eliminate the need for most of the ldbl-opt
wrappers.

Tested for x86_64 and x86, and with build-many-glibcs.py.

	* sysdeps/generic/math-type-macros-double.h: Include
	<math-svid-compat.h>.
	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
	* sysdeps/generic/math-type-macros-float.h: Include
	<math-svid-compat.h>.
	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
	* sysdeps/generic/math-type-macros-ldouble.h: Include
	<math-svid-compat.h>.
	(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
	* math/lgamma-compat.h (BUILD_LGAMMA): Include LIBM_SVID_COMPAT
	condition.
	* math/w_acos_compat.c: Condition contents on [LIBM_SVID_COMPAT].
	* math/w_acosf_compat.c: Likewise.
	* math/w_acosh_compat.c: Likewise.
	* math/w_acoshf_compat.c: Likewise.
	* math/w_acoshl_compat.c: Likewise.
	* math/w_acosl_compat.c: Likewise.
	* math/w_asin_compat.c: Likewise.
	* math/w_asinf_compat.c: Likewise.
	* math/w_asinl_compat.c: Likewise.
	* math/w_atan2_compat.c: Likewise.
	* math/w_atan2f_compat.c: Likewise.
	* math/w_atan2l_compat.c: Likewise.
	* math/w_atanh_compat.c: Likewise.
	* math/w_atanhf_compat.c: Likewise.
	* math/w_atanhl_compat.c: Likewise.
	* math/w_cosh_compat.c: Likewise.
	* math/w_coshf_compat.c: Likewise.
	* math/w_coshl_compat.c: Likewise.
	* math/w_exp10_compat.c: Likewise.
	* math/w_exp10f_compat.c: Likewise.
	* math/w_exp10l_compat.c: Likewise.
	* math/w_exp2_compat.c: Likewise.
	* math/w_exp2f_compat.c: Likewise.
	* math/w_exp2l_compat.c: Likewise.
	* math/w_fmod_compat.c: Likewise.
	* math/w_fmodf_compat.c: Likewise.
	* math/w_fmodl_compat.c: Likewise.
	* math/w_hypot_compat.c: Likewise.
	* math/w_hypotf_compat.c: Likewise.
	* math/w_hypotl_compat.c: Likewise.
	* math/w_j0_compat.c: Likewise.
	* math/w_j0f_compat.c: Likewise.
	* math/w_j0l_compat.c: Likewise.
	* math/w_j1_compat.c: Likewise.
	* math/w_j1f_compat.c: Likewise.
	* math/w_j1l_compat.c: Likewise.
	* math/w_jn_compat.c: Likewise.
	* math/w_jnf_compat.c: Likewise.
	* math/w_jnl_compat.c: Likewise.
	* math/w_lgamma_r_compat.c: Likewise.
	* math/w_lgammaf_r_compat.c: Likewise.
	* math/w_lgammal_r_compat.c: Likewise.
	* math/w_log10_compat.c: Likewise.
	* math/w_log10f_compat.c: Likewise.
	* math/w_log10l_compat.c: Likewise.
	* math/w_log2_compat.c: Likewise.
	* math/w_log2f_compat.c: Likewise.
	* math/w_log2l_compat.c: Likewise.
	* math/w_log_compat.c: Likewise.
	* math/w_logf_compat.c: Likewise.
	* math/w_logl_compat.c: Likewise.
	* math/w_pow_compat.c: Likewise.
	* math/w_powf_compat.c: Likewise.
	* math/w_powl_compat.c: Likewise.
	* math/w_remainder_compat.c: Likewise.
	* math/w_remainderf_compat.c: Likewise.
	* math/w_remainderl_compat.c: Likewise.
	* math/w_sinh_compat.c: Likewise.
	* math/w_sinhf_compat.c: Likewise.
	* math/w_sinhl_compat.c: Likewise.
	* math/w_sqrt_compat.c: Likewise.
	* math/w_sqrtf_compat.c: Likewise.
	* math/w_sqrtl_compat.c: Likewise.
	* math/w_tgamma_compat.c: Likewise.
	* math/w_tgammaf_compat.c: Likewise.
	* math/w_tgammal_compat.c: Likewise.
	* math/w_scalb_compat.c (sysv_scalb): Condition definition on
	[LIBM_SVID_COMPAT].
	(__scalb): Condition call to sysv_scalb on [LIBM_SVID_COMPAT].
	* math/w_scalbf_compat.c (sysv_scalbf): Condition definition on
	[LIBM_SVID_COMPAT].
	(__scalbf): Condition call to sysv_scalbf on [LIBM_SVID_COMPAT].
	* math/w_scalbl_compat.c (sysv_scalbl): Condition definition on
	[LIBM_SVID_COMPAT].
	(__scalbl): Condition call to sysv_scalbl on [LIBM_SVID_COMPAT].
	* sysdeps/i386/fpu/w_sqrt.c: New file.
	* sysdeps/ia64/fpu/w_acos.c: Likewise.
	* sysdeps/ia64/fpu/w_acosf.c: Likewise.
	* sysdeps/ia64/fpu/w_acosh.c: Likewise.
	* sysdeps/ia64/fpu/w_acoshf.c: Likewise.
	* sysdeps/ia64/fpu/w_acoshl.c: Likewise.
	* sysdeps/ia64/fpu/w_acosl.c: Likewise.
	* sysdeps/ia64/fpu/w_asin.c: Likewise.
	* sysdeps/ia64/fpu/w_asinf.c: Likewise.
	* sysdeps/ia64/fpu/w_asinl.c: Likewise.
	* sysdeps/ia64/fpu/w_atan2.c: Likewise.
	* sysdeps/ia64/fpu/w_atan2f.c: Likewise.
	* sysdeps/ia64/fpu/w_atan2l.c: Likewise.
	* sysdeps/ia64/fpu/w_atanh.c: Likewise.
	* sysdeps/ia64/fpu/w_atanhf.c: Likewise.
	* sysdeps/ia64/fpu/w_atanhl.c: Likewise.
	* sysdeps/ia64/fpu/w_cosh.c: Likewise.
	* sysdeps/ia64/fpu/w_coshf.c: Likewise.
	* sysdeps/ia64/fpu/w_coshl.c: Likewise.
	* sysdeps/ia64/fpu/w_exp.c: Likewise.
	* sysdeps/ia64/fpu/w_exp10.c: Likewise.
	* sysdeps/ia64/fpu/w_exp10f.c: Likewise.
	* sysdeps/ia64/fpu/w_exp10l.c: Likewise.
	* sysdeps/ia64/fpu/w_exp2.c: Likewise.
	* sysdeps/ia64/fpu/w_exp2f.c: Likewise.
	* sysdeps/ia64/fpu/w_exp2l.c: Likewise.
	* sysdeps/ia64/fpu/w_expf.c: Likewise.
	* sysdeps/ia64/fpu/w_expl.c: Likewise.
	* sysdeps/ia64/fpu/w_fmod.c: Likewise.
	* sysdeps/ia64/fpu/w_fmodf.c: Likewise.
	* sysdeps/ia64/fpu/w_fmodl.c: Likewise.
	* sysdeps/ia64/fpu/w_hypot.c: Likewise.
	* sysdeps/ia64/fpu/w_hypotf.c: Likewise.
	* sysdeps/ia64/fpu/w_hypotl.c: Likewise.
	* sysdeps/ia64/fpu/w_lgamma_r.c: Likewise.
	* sysdeps/ia64/fpu/w_lgammaf_r.c: Likewise.
	* sysdeps/ia64/fpu/w_lgammal_r.c: Likewise.
	* sysdeps/ia64/fpu/w_log.c: Likewise.
	* sysdeps/ia64/fpu/w_log10.c: Likewise.
	* sysdeps/ia64/fpu/w_log10f.c: Likewise.
	* sysdeps/ia64/fpu/w_log10l.c: Likewise.
	* sysdeps/ia64/fpu/w_log2.c: Likewise.
	* sysdeps/ia64/fpu/w_log2f.c: Likewise.
	* sysdeps/ia64/fpu/w_log2l.c: Likewise.
	* sysdeps/ia64/fpu/w_logf.c: Likewise.
	* sysdeps/ia64/fpu/w_logl.c: Likewise.
	* sysdeps/ia64/fpu/w_pow.c: Likewise.
	* sysdeps/ia64/fpu/w_powf.c: Likewise.
	* sysdeps/ia64/fpu/w_powl.c: Likewise.
	* sysdeps/ia64/fpu/w_remainder.c: Likewise.
	* sysdeps/ia64/fpu/w_remainderf.c: Likewise.
	* sysdeps/ia64/fpu/w_remainderl.c: Likewise.
	* sysdeps/ia64/fpu/w_sinh.c: Likewise.
	* sysdeps/ia64/fpu/w_sinhf.c: Likewise.
	* sysdeps/ia64/fpu/w_sinhl.c: Likewise.
	* sysdeps/ia64/fpu/w_sqrt.c: Likewise.
	* sysdeps/ia64/fpu/w_sqrtf.c: Likewise.
	* sysdeps/ia64/fpu/w_sqrtl.c: Likewise.
	* sysdeps/ia64/fpu/w_tgamma.c: Likewise.
	* sysdeps/ia64/fpu/w_tgammaf.c: Likewise.
	* sysdeps/ia64/fpu/w_tgammal.c: Likewise.
	* sysdeps/ieee754/dbl-64/w_exp_compat.c: Condition contents on
	[LIBM_SVID_COMPAT].
	* sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
	* sysdeps/ieee754/k_standard.c: Likewise.
	* sysdeps/ieee754/k_standardf.c: Likewise.
	* sysdeps/ieee754/k_standardl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-64-128/w_expl_compat.c: Condition
	long_double_symbol call on [LIBM_SVID_COMPAT].
	* sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c: Condition
	long_double_symbol and compat_symbol calls on [LIBM_SVID_COMPAT].
This commit is contained in:
Joseph Myers
2017-09-05 23:35:55 +00:00
parent 05b38d64b1
commit 4f3647e46e
165 changed files with 535 additions and 70 deletions

183
ChangeLog
View File

@ -1,3 +1,186 @@
2017-09-05 Joseph Myers <joseph@codesourcery.com>
* sysdeps/generic/math-type-macros-double.h: Include
<math-svid-compat.h>.
(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
* sysdeps/generic/math-type-macros-float.h: Include
<math-svid-compat.h>.
(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
* sysdeps/generic/math-type-macros-ldouble.h: Include
<math-svid-compat.h>.
(__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT.
* math/lgamma-compat.h (BUILD_LGAMMA): Include LIBM_SVID_COMPAT
condition.
* math/w_acos_compat.c: Condition contents on [LIBM_SVID_COMPAT].
* math/w_acosf_compat.c: Likewise.
* math/w_acosh_compat.c: Likewise.
* math/w_acoshf_compat.c: Likewise.
* math/w_acoshl_compat.c: Likewise.
* math/w_acosl_compat.c: Likewise.
* math/w_asin_compat.c: Likewise.
* math/w_asinf_compat.c: Likewise.
* math/w_asinl_compat.c: Likewise.
* math/w_atan2_compat.c: Likewise.
* math/w_atan2f_compat.c: Likewise.
* math/w_atan2l_compat.c: Likewise.
* math/w_atanh_compat.c: Likewise.
* math/w_atanhf_compat.c: Likewise.
* math/w_atanhl_compat.c: Likewise.
* math/w_cosh_compat.c: Likewise.
* math/w_coshf_compat.c: Likewise.
* math/w_coshl_compat.c: Likewise.
* math/w_exp10_compat.c: Likewise.
* math/w_exp10f_compat.c: Likewise.
* math/w_exp10l_compat.c: Likewise.
* math/w_exp2_compat.c: Likewise.
* math/w_exp2f_compat.c: Likewise.
* math/w_exp2l_compat.c: Likewise.
* math/w_fmod_compat.c: Likewise.
* math/w_fmodf_compat.c: Likewise.
* math/w_fmodl_compat.c: Likewise.
* math/w_hypot_compat.c: Likewise.
* math/w_hypotf_compat.c: Likewise.
* math/w_hypotl_compat.c: Likewise.
* math/w_j0_compat.c: Likewise.
* math/w_j0f_compat.c: Likewise.
* math/w_j0l_compat.c: Likewise.
* math/w_j1_compat.c: Likewise.
* math/w_j1f_compat.c: Likewise.
* math/w_j1l_compat.c: Likewise.
* math/w_jn_compat.c: Likewise.
* math/w_jnf_compat.c: Likewise.
* math/w_jnl_compat.c: Likewise.
* math/w_lgamma_r_compat.c: Likewise.
* math/w_lgammaf_r_compat.c: Likewise.
* math/w_lgammal_r_compat.c: Likewise.
* math/w_log10_compat.c: Likewise.
* math/w_log10f_compat.c: Likewise.
* math/w_log10l_compat.c: Likewise.
* math/w_log2_compat.c: Likewise.
* math/w_log2f_compat.c: Likewise.
* math/w_log2l_compat.c: Likewise.
* math/w_log_compat.c: Likewise.
* math/w_logf_compat.c: Likewise.
* math/w_logl_compat.c: Likewise.
* math/w_pow_compat.c: Likewise.
* math/w_powf_compat.c: Likewise.
* math/w_powl_compat.c: Likewise.
* math/w_remainder_compat.c: Likewise.
* math/w_remainderf_compat.c: Likewise.
* math/w_remainderl_compat.c: Likewise.
* math/w_sinh_compat.c: Likewise.
* math/w_sinhf_compat.c: Likewise.
* math/w_sinhl_compat.c: Likewise.
* math/w_sqrt_compat.c: Likewise.
* math/w_sqrtf_compat.c: Likewise.
* math/w_sqrtl_compat.c: Likewise.
* math/w_tgamma_compat.c: Likewise.
* math/w_tgammaf_compat.c: Likewise.
* math/w_tgammal_compat.c: Likewise.
* math/w_scalb_compat.c (sysv_scalb): Condition definition on
[LIBM_SVID_COMPAT].
(__scalb): Condition call to sysv_scalb on [LIBM_SVID_COMPAT].
* math/w_scalbf_compat.c (sysv_scalbf): Condition definition on
[LIBM_SVID_COMPAT].
(__scalbf): Condition call to sysv_scalbf on [LIBM_SVID_COMPAT].
* math/w_scalbl_compat.c (sysv_scalbl): Condition definition on
[LIBM_SVID_COMPAT].
(__scalbl): Condition call to sysv_scalbl on [LIBM_SVID_COMPAT].
* sysdeps/i386/fpu/w_sqrt.c: New file.
* sysdeps/ia64/fpu/w_acos.c: Likewise.
* sysdeps/ia64/fpu/w_acosf.c: Likewise.
* sysdeps/ia64/fpu/w_acosh.c: Likewise.
* sysdeps/ia64/fpu/w_acoshf.c: Likewise.
* sysdeps/ia64/fpu/w_acoshl.c: Likewise.
* sysdeps/ia64/fpu/w_acosl.c: Likewise.
* sysdeps/ia64/fpu/w_asin.c: Likewise.
* sysdeps/ia64/fpu/w_asinf.c: Likewise.
* sysdeps/ia64/fpu/w_asinl.c: Likewise.
* sysdeps/ia64/fpu/w_atan2.c: Likewise.
* sysdeps/ia64/fpu/w_atan2f.c: Likewise.
* sysdeps/ia64/fpu/w_atan2l.c: Likewise.
* sysdeps/ia64/fpu/w_atanh.c: Likewise.
* sysdeps/ia64/fpu/w_atanhf.c: Likewise.
* sysdeps/ia64/fpu/w_atanhl.c: Likewise.
* sysdeps/ia64/fpu/w_cosh.c: Likewise.
* sysdeps/ia64/fpu/w_coshf.c: Likewise.
* sysdeps/ia64/fpu/w_coshl.c: Likewise.
* sysdeps/ia64/fpu/w_exp.c: Likewise.
* sysdeps/ia64/fpu/w_exp10.c: Likewise.
* sysdeps/ia64/fpu/w_exp10f.c: Likewise.
* sysdeps/ia64/fpu/w_exp10l.c: Likewise.
* sysdeps/ia64/fpu/w_exp2.c: Likewise.
* sysdeps/ia64/fpu/w_exp2f.c: Likewise.
* sysdeps/ia64/fpu/w_exp2l.c: Likewise.
* sysdeps/ia64/fpu/w_expf.c: Likewise.
* sysdeps/ia64/fpu/w_expl.c: Likewise.
* sysdeps/ia64/fpu/w_fmod.c: Likewise.
* sysdeps/ia64/fpu/w_fmodf.c: Likewise.
* sysdeps/ia64/fpu/w_fmodl.c: Likewise.
* sysdeps/ia64/fpu/w_hypot.c: Likewise.
* sysdeps/ia64/fpu/w_hypotf.c: Likewise.
* sysdeps/ia64/fpu/w_hypotl.c: Likewise.
* sysdeps/ia64/fpu/w_lgamma_r.c: Likewise.
* sysdeps/ia64/fpu/w_lgammaf_r.c: Likewise.
* sysdeps/ia64/fpu/w_lgammal_r.c: Likewise.
* sysdeps/ia64/fpu/w_log.c: Likewise.
* sysdeps/ia64/fpu/w_log10.c: Likewise.
* sysdeps/ia64/fpu/w_log10f.c: Likewise.
* sysdeps/ia64/fpu/w_log10l.c: Likewise.
* sysdeps/ia64/fpu/w_log2.c: Likewise.
* sysdeps/ia64/fpu/w_log2f.c: Likewise.
* sysdeps/ia64/fpu/w_log2l.c: Likewise.
* sysdeps/ia64/fpu/w_logf.c: Likewise.
* sysdeps/ia64/fpu/w_logl.c: Likewise.
* sysdeps/ia64/fpu/w_pow.c: Likewise.
* sysdeps/ia64/fpu/w_powf.c: Likewise.
* sysdeps/ia64/fpu/w_powl.c: Likewise.
* sysdeps/ia64/fpu/w_remainder.c: Likewise.
* sysdeps/ia64/fpu/w_remainderf.c: Likewise.
* sysdeps/ia64/fpu/w_remainderl.c: Likewise.
* sysdeps/ia64/fpu/w_sinh.c: Likewise.
* sysdeps/ia64/fpu/w_sinhf.c: Likewise.
* sysdeps/ia64/fpu/w_sinhl.c: Likewise.
* sysdeps/ia64/fpu/w_sqrt.c: Likewise.
* sysdeps/ia64/fpu/w_sqrtf.c: Likewise.
* sysdeps/ia64/fpu/w_sqrtl.c: Likewise.
* sysdeps/ia64/fpu/w_tgamma.c: Likewise.
* sysdeps/ia64/fpu/w_tgammaf.c: Likewise.
* sysdeps/ia64/fpu/w_tgammal.c: Likewise.
* sysdeps/ieee754/dbl-64/w_exp_compat.c: Condition contents on
[LIBM_SVID_COMPAT].
* sysdeps/ieee754/flt-32/w_expf_compat.c: Likewise.
* sysdeps/ieee754/k_standard.c: Likewise.
* sysdeps/ieee754/k_standardf.c: Likewise.
* sysdeps/ieee754/k_standardl.c: Likewise.
* sysdeps/ieee754/ldbl-128/w_expl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-96/w_expl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-64-128/w_expl_compat.c: Condition
long_double_symbol call on [LIBM_SVID_COMPAT].
* sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_acosl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_asinl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_coshl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_j0l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_j1l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_jnl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log10l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_log2l_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_logl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_powl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c: Likewise.
* sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c: Condition
long_double_symbol and compat_symbol calls on [LIBM_SVID_COMPAT].
2017-09-05 Steve Ellcey <sellcey@cavium.com> 2017-09-05 Steve Ellcey <sellcey@cavium.com>
* include/shlib-compat.h (TEST_COMPAT): New Macro. * include/shlib-compat.h (TEST_COMPAT): New Macro.

View File

@ -41,7 +41,8 @@
#define HAVE_LGAMMA_COMPAT SHLIB_COMPAT (libm, LGAMMA_OLD_VER, LGAMMA_NEW_VER) #define HAVE_LGAMMA_COMPAT SHLIB_COMPAT (libm, LGAMMA_OLD_VER, LGAMMA_NEW_VER)
/* Whether to build this version at all. */ /* Whether to build this version at all. */
#define BUILD_LGAMMA (HAVE_LGAMMA_COMPAT || !USE_AS_COMPAT) #define BUILD_LGAMMA \
(LIBM_SVID_COMPAT && (HAVE_LGAMMA_COMPAT || !USE_AS_COMPAT))
/* The name to use for this version. */ /* The name to use for this version. */
#if USE_AS_COMPAT #if USE_AS_COMPAT

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper acos */ /* wrapper acos */
double double
__acos (double x) __acos (double x)
@ -41,3 +42,4 @@ weak_alias (__acos, acos)
strong_alias (__acos, __acosl) strong_alias (__acos, __acosl)
weak_alias (__acos, acosl) weak_alias (__acos, acosl)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper acosf */ /* wrapper acosf */
float float
__acosf (float x) __acosf (float x)
@ -37,3 +38,4 @@ __acosf (float x)
return __ieee754_acosf (x); return __ieee754_acosf (x);
} }
weak_alias (__acosf, acosf) weak_alias (__acosf, acosf)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper acosh */ /* wrapper acosh */
double double
__acosh (double x) __acosh (double x)
@ -36,3 +37,4 @@ weak_alias (__acosh, acosh)
strong_alias (__acosh, __acoshl) strong_alias (__acosh, __acoshl)
weak_alias (__acosh, acoshl) weak_alias (__acosh, acoshl)
# endif # endif
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper acoshf */ /* wrapper acoshf */
float float
__acoshf (float x) __acoshf (float x)
@ -32,3 +33,4 @@ __acoshf (float x)
return __ieee754_acoshf (x); return __ieee754_acoshf (x);
} }
weak_alias (__acoshf, acoshf) weak_alias (__acoshf, acoshf)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper acosl */ /* wrapper acosl */
long double long double
__acoshl (long double x) __acoshl (long double x)
@ -32,3 +33,4 @@ __acoshl (long double x)
return __ieee754_acoshl (x); return __ieee754_acoshl (x);
} }
weak_alias (__acoshl, acoshl) weak_alias (__acoshl, acoshl)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper acosl */ /* wrapper acosl */
long double long double
__acosl (long double x) __acosl (long double x)
@ -37,3 +38,4 @@ __acosl (long double x)
return __ieee754_acosl (x); return __ieee754_acosl (x);
} }
weak_alias (__acosl, acosl) weak_alias (__acosl, acosl)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper asin */ /* wrapper asin */
double double
__asin (double x) __asin (double x)
@ -41,3 +42,4 @@ weak_alias (__asin, asin)
strong_alias (__asin, __asinl) strong_alias (__asin, __asinl)
weak_alias (__asin, asinl) weak_alias (__asin, asinl)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper asinf */ /* wrapper asinf */
float float
__asinf (float x) __asinf (float x)
@ -37,3 +38,4 @@ __asinf (float x)
return __ieee754_asinf (x); return __ieee754_asinf (x);
} }
weak_alias (__asinf, asinf) weak_alias (__asinf, asinf)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper asinl */ /* wrapper asinl */
long double long double
__asinl (long double x) __asinl (long double x)
@ -37,3 +38,4 @@ __asinl (long double x)
return __ieee754_asinl (x); return __ieee754_asinl (x);
} }
weak_alias (__asinl, asinl) weak_alias (__asinl, asinl)
#endif

View File

@ -26,6 +26,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double double
__atan2 (double y, double x) __atan2 (double y, double x)
{ {
@ -44,3 +45,4 @@ weak_alias (__atan2, atan2)
strong_alias (__atan2, __atan2l) strong_alias (__atan2, __atan2l)
weak_alias (__atan2, atan2l) weak_alias (__atan2, atan2l)
# endif # endif
#endif

View File

@ -26,6 +26,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float float
__atan2f (float y, float x) __atan2f (float y, float x)
{ {
@ -40,3 +41,4 @@ __atan2f (float y, float x)
return z; return z;
} }
weak_alias (__atan2f, atan2f) weak_alias (__atan2f, atan2f)
#endif

View File

@ -26,6 +26,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double long double
__atan2l (long double y, long double x) __atan2l (long double y, long double x)
{ {
@ -40,3 +41,4 @@ __atan2l (long double y, long double x)
return z; return z;
} }
weak_alias (__atan2l, atan2l) weak_alias (__atan2l, atan2l)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper atanh */ /* wrapper atanh */
double double
__atanh (double x) __atanh (double x)
@ -39,3 +40,4 @@ weak_alias (__atanh, atanh)
strong_alias (__atanh, __atanhl) strong_alias (__atanh, __atanhl)
weak_alias (__atanh, atanhl) weak_alias (__atanh, atanhl)
# endif # endif
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper atanhf */ /* wrapper atanhf */
float float
__atanhf (float x) __atanhf (float x)
@ -35,3 +36,4 @@ __atanhf (float x)
return __ieee754_atanhf (x); return __ieee754_atanhf (x);
} }
weak_alias (__atanhf, atanhf) weak_alias (__atanhf, atanhf)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper atanhl */ /* wrapper atanhl */
long double long double
__atanhl (long double x) __atanhl (long double x)
@ -35,3 +36,4 @@ __atanhl (long double x)
return __ieee754_atanhl (x); return __ieee754_atanhl (x);
} }
weak_alias (__atanhl, atanhl) weak_alias (__atanhl, atanhl)
#endif

View File

@ -18,6 +18,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double double
__cosh (double x) __cosh (double x)
{ {
@ -33,3 +34,4 @@ weak_alias (__cosh, cosh)
strong_alias (__cosh, __coshl) strong_alias (__cosh, __coshl)
weak_alias (__cosh, coshl) weak_alias (__cosh, coshl)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float float
__coshf (float x) __coshf (float x)
{ {
@ -33,3 +34,4 @@ __coshf (float x)
return z; return z;
} }
weak_alias (__coshf, coshf) weak_alias (__coshf, coshf)
#endif

View File

@ -23,6 +23,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double long double
__coshl (long double x) __coshl (long double x)
{ {
@ -34,3 +35,4 @@ __coshl (long double x)
return z; return z;
} }
weak_alias (__coshl, coshl) weak_alias (__coshl, coshl)
#endif

View File

@ -25,6 +25,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double double
__exp10 (double x) __exp10 (double x)
{ {
@ -49,3 +50,4 @@ strong_alias (__exp10l, __pow10l)
compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1); compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1);
# endif # endif
# endif # endif
#endif

View File

@ -25,6 +25,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float float
__exp10f (float x) __exp10f (float x)
{ {
@ -41,3 +42,4 @@ weak_alias (__exp10f, exp10f)
strong_alias (__exp10f, __pow10f) strong_alias (__exp10f, __pow10f)
compat_symbol (libm, __pow10f, pow10f, GLIBC_2_1); compat_symbol (libm, __pow10f, pow10f, GLIBC_2_1);
# endif # endif
#endif

View File

@ -25,6 +25,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double long double
__exp10l (long double x) __exp10l (long double x)
{ {
@ -41,3 +42,4 @@ weak_alias (__exp10l, exp10l)
strong_alias (__exp10l, __pow10l) strong_alias (__exp10l, __pow10l)
compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1); compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1);
# endif # endif
#endif

View File

@ -6,6 +6,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double double
__exp2 (double x) __exp2 (double x)
{ {
@ -22,3 +23,4 @@ weak_alias (__exp2, exp2)
strong_alias (__exp2, __exp2l) strong_alias (__exp2, __exp2l)
weak_alias (__exp2, exp2l) weak_alias (__exp2, exp2l)
# endif # endif
#endif

View File

@ -6,6 +6,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float float
__exp2f (float x) __exp2f (float x)
{ {
@ -18,3 +19,4 @@ __exp2f (float x)
return z; return z;
} }
weak_alias (__exp2f, exp2f) weak_alias (__exp2f, exp2f)
#endif

View File

@ -6,6 +6,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double long double
__exp2l (long double x) __exp2l (long double x)
{ {
@ -18,3 +19,4 @@ __exp2l (long double x)
return z; return z;
} }
weak_alias (__exp2l, exp2l) weak_alias (__exp2l, exp2l)
#endif

View File

@ -20,6 +20,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper fmod */ /* wrapper fmod */
double double
__fmod (double x, double y) __fmod (double x, double y)
@ -36,3 +37,4 @@ weak_alias (__fmod, fmod)
strong_alias (__fmod, __fmodl) strong_alias (__fmod, __fmodl)
weak_alias (__fmod, fmodl) weak_alias (__fmod, fmodl)
# endif # endif
#endif

View File

@ -20,6 +20,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper fmodf */ /* wrapper fmodf */
float float
__fmodf (float x, float y) __fmodf (float x, float y)
@ -32,3 +33,4 @@ __fmodf (float x, float y)
return __ieee754_fmodf (x, y); return __ieee754_fmodf (x, y);
} }
weak_alias (__fmodf, fmodf) weak_alias (__fmodf, fmodf)
#endif

View File

@ -20,6 +20,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper fmodl */ /* wrapper fmodl */
long double long double
__fmodl (long double x, long double y) __fmodl (long double x, long double y)
@ -32,3 +33,4 @@ __fmodl (long double x, long double y)
return __ieee754_fmodl (x, y); return __ieee754_fmodl (x, y);
} }
weak_alias (__fmodl, fmodl) weak_alias (__fmodl, fmodl)
#endif

View File

@ -19,6 +19,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double double
__hypot (double x, double y) __hypot (double x, double y)
{ {
@ -34,3 +35,4 @@ weak_alias (__hypot, hypot)
strong_alias (__hypot, __hypotl) strong_alias (__hypot, __hypotl)
weak_alias (__hypot, hypotl) weak_alias (__hypot, hypotl)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float float
__hypotf(float x, float y) __hypotf(float x, float y)
{ {
@ -34,3 +35,4 @@ __hypotf(float x, float y)
return z; return z;
} }
weak_alias (__hypotf, hypotf) weak_alias (__hypotf, hypotf)
#endif

View File

@ -23,6 +23,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double long double
__hypotl(long double x, long double y) __hypotl(long double x, long double y)
{ {
@ -35,3 +36,4 @@ __hypotl(long double x, long double y)
return z; return z;
} }
weak_alias (__hypotl, hypotl) weak_alias (__hypotl, hypotl)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper j0 */ /* wrapper j0 */
double double
j0 (double x) j0 (double x)
@ -67,3 +68,4 @@ y0 (double x)
# ifdef NO_LONG_DOUBLE # ifdef NO_LONG_DOUBLE
weak_alias (y0, y0l) weak_alias (y0, y0l)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper j0f */ /* wrapper j0f */
float float
j0f (float x) j0f (float x)
@ -62,3 +63,4 @@ y0f (float x)
return __ieee754_y0f (x); return __ieee754_y0f (x);
} }
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper j0l */ /* wrapper j0l */
long double long double
__j0l (long double x) __j0l (long double x)
@ -63,3 +64,4 @@ __y0l (long double x)
return __ieee754_y0l (x); return __ieee754_y0l (x);
} }
weak_alias (__y0l, y0l) weak_alias (__y0l, y0l)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper j1 */ /* wrapper j1 */
double double
j1 (double x) j1 (double x)
@ -67,3 +68,4 @@ y1 (double x)
# ifdef NO_LONG_DOUBLE # ifdef NO_LONG_DOUBLE
weak_alias (y1, y1l) weak_alias (y1, y1l)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper j1f */ /* wrapper j1f */
float float
j1f (float x) j1f (float x)
@ -62,3 +63,4 @@ y1f (float x)
return __ieee754_y1f (x); return __ieee754_y1f (x);
} }
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper j1l */ /* wrapper j1l */
long double long double
__j1l (long double x) __j1l (long double x)
@ -63,3 +64,4 @@ __y1l (long double x)
return __ieee754_y1l (x); return __ieee754_y1l (x);
} }
weak_alias (__y1l, y1l) weak_alias (__y1l, y1l)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper jn */ /* wrapper jn */
double double
jn (int n, double x) jn (int n, double x)
@ -67,3 +68,4 @@ yn (int n, double x)
# ifdef NO_LONG_DOUBLE # ifdef NO_LONG_DOUBLE
weak_alias (yn, ynl) weak_alias (yn, ynl)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper jnf */ /* wrapper jnf */
float float
jnf (int n, float x) jnf (int n, float x)
@ -62,3 +63,4 @@ ynf (int n, float x)
return __ieee754_ynf (n, x); return __ieee754_ynf (n, x);
} }
#endif

View File

@ -48,6 +48,7 @@ static char rcsid[] = "$NetBSD: $";
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double __jnl(int n, long double x) /* wrapper jnl */ long double __jnl(int n, long double x) /* wrapper jnl */
{ {
# ifdef _IEEE_LIBM # ifdef _IEEE_LIBM
@ -90,3 +91,4 @@ long double __ynl(int n, long double x) /* wrapper ynl */
# endif # endif
} }
weak_alias (__ynl, ynl) weak_alias (__ynl, ynl)
#endif

View File

@ -19,6 +19,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double double
__lgamma_r(double x, int *signgamp) __lgamma_r(double x, int *signgamp)
{ {
@ -37,3 +38,4 @@ weak_alias (__lgamma_r, lgamma_r)
strong_alias (__lgamma_r, __lgammal_r) strong_alias (__lgamma_r, __lgammal_r)
weak_alias (__lgamma_r, lgammal_r) weak_alias (__lgamma_r, lgammal_r)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float float
__lgammaf_r(float x, int *signgamp) __lgammaf_r(float x, int *signgamp)
{ {
@ -36,3 +37,4 @@ __lgammaf_r(float x, int *signgamp)
return y; return y;
} }
weak_alias (__lgammaf_r, lgammaf_r) weak_alias (__lgammaf_r, lgammaf_r)
#endif

View File

@ -23,6 +23,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double long double
__lgammal_r(long double x, int *signgamp) __lgammal_r(long double x, int *signgamp)
{ {
@ -37,3 +38,4 @@ __lgammal_r(long double x, int *signgamp)
return y; return y;
} }
weak_alias (__lgammal_r, lgammal_r) weak_alias (__lgammal_r, lgammal_r)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log10(x) */ /* wrapper log10(x) */
double double
__log10 (double x) __log10 (double x)
@ -47,3 +48,4 @@ weak_alias (__log10, log10)
strong_alias (__log10, __log10l) strong_alias (__log10, __log10l)
weak_alias (__log10, log10l) weak_alias (__log10, log10l)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log10f(x) */ /* wrapper log10f(x) */
float float
__log10f (float x) __log10f (float x)
@ -43,3 +44,4 @@ __log10f (float x)
return __ieee754_log10f (x); return __ieee754_log10f (x);
} }
weak_alias (__log10f, log10f) weak_alias (__log10f, log10f)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log10l(x) */ /* wrapper log10l(x) */
long double long double
__log10l (long double x) __log10l (long double x)
@ -43,3 +44,4 @@ __log10l (long double x)
return __ieee754_log10l (x); return __ieee754_log10l (x);
} }
weak_alias (__log10l, log10l) weak_alias (__log10l, log10l)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log2(x) */ /* wrapper log2(x) */
double double
__log2 (double x) __log2 (double x)
@ -47,3 +48,4 @@ weak_alias (__log2, log2)
strong_alias (__log2, __log2l) strong_alias (__log2, __log2l)
weak_alias (__log2, log2l) weak_alias (__log2, log2l)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log2f(x) */ /* wrapper log2f(x) */
float float
__log2f (float x) __log2f (float x)
@ -43,3 +44,4 @@ __log2f (float x)
return __ieee754_log2f (x); return __ieee754_log2f (x);
} }
weak_alias (__log2f, log2f) weak_alias (__log2f, log2f)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log2l(x) */ /* wrapper log2l(x) */
long double long double
__log2l (long double x) __log2l (long double x)
@ -43,3 +44,4 @@ __log2l (long double x)
return __ieee754_log2l (x); return __ieee754_log2l (x);
} }
weak_alias (__log2l, log2l) weak_alias (__log2l, log2l)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log(x) */ /* wrapper log(x) */
double double
__log (double x) __log (double x)
@ -47,3 +48,4 @@ weak_alias (__log, log)
strong_alias (__log, __logl) strong_alias (__log, __logl)
weak_alias (__log, logl) weak_alias (__log, logl)
# endif # endif
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper logf(x) */ /* wrapper logf(x) */
float float
__logf (float x) __logf (float x)
@ -43,3 +44,4 @@ __logf (float x)
return __ieee754_logf (x); return __ieee754_logf (x);
} }
weak_alias (__logf, logf) weak_alias (__logf, logf)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper logl(x) */ /* wrapper logl(x) */
long double long double
__logl (long double x) __logl (long double x)
@ -43,3 +44,4 @@ __logl (long double x)
return __ieee754_logl (x); return __ieee754_logl (x);
} }
weak_alias (__logl, logl) weak_alias (__logl, logl)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper pow */ /* wrapper pow */
double double
__pow (double x, double y) __pow (double x, double y)
@ -63,3 +64,4 @@ weak_alias (__pow, pow)
strong_alias (__pow, __powl) strong_alias (__pow, __powl)
weak_alias (__pow, powl) weak_alias (__pow, powl)
# endif # endif
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper powf */ /* wrapper powf */
float float
__powf (float x, float y) __powf (float x, float y)
@ -59,3 +60,4 @@ __powf (float x, float y)
return z; return z;
} }
weak_alias (__powf, powf) weak_alias (__powf, powf)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper powl */ /* wrapper powl */
long double long double
__powl (long double x, long double y) __powl (long double x, long double y)
@ -59,3 +60,4 @@ __powl (long double x, long double y)
return z; return z;
} }
weak_alias (__powl, powl) weak_alias (__powl, powl)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper remainder */ /* wrapper remainder */
double double
__remainder (double x, double y) __remainder (double x, double y)
@ -39,3 +40,4 @@ strong_alias (__remainder, __remainderl)
weak_alias (__remainder, remainderl) weak_alias (__remainder, remainderl)
weak_alias (__remainder, dreml) weak_alias (__remainder, dreml)
# endif # endif
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper remainderf */ /* wrapper remainderf */
float float
__remainderf (float x, float y) __remainderf (float x, float y)
@ -34,3 +35,4 @@ __remainderf (float x, float y)
} }
weak_alias (__remainderf, remainderf) weak_alias (__remainderf, remainderf)
weak_alias (__remainderf, dremf) weak_alias (__remainderf, dremf)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper remainderl */ /* wrapper remainderl */
long double long double
__remainderl (long double x, long double y) __remainderl (long double x, long double y)
@ -34,3 +35,4 @@ __remainderl (long double x, long double y)
} }
weak_alias (__remainderl, remainderl) weak_alias (__remainderl, remainderl)
weak_alias (__remainderl, dreml) weak_alias (__remainderl, dreml)
#endif

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
static double static double
__attribute__ ((noinline)) __attribute__ ((noinline))
sysv_scalb (double x, double fn) sysv_scalb (double x, double fn)
@ -40,15 +41,18 @@ sysv_scalb (double x, double fn)
return z; return z;
} }
#endif
/* Wrapper scalb */ /* Wrapper scalb */
double double
__scalb (double x, double fn) __scalb (double x, double fn)
{ {
#if LIBM_SVID_COMPAT
if (__glibc_unlikely (_LIB_VERSION == _SVID_)) if (__glibc_unlikely (_LIB_VERSION == _SVID_))
return sysv_scalb (x, fn); return sysv_scalb (x, fn);
else else
#endif
{ {
double z = __ieee754_scalb (x, fn); double z = __ieee754_scalb (x, fn);

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
static float static float
__attribute__ ((noinline)) __attribute__ ((noinline))
sysv_scalbf (float x, float fn) sysv_scalbf (float x, float fn)
@ -40,15 +41,18 @@ sysv_scalbf (float x, float fn)
return z; return z;
} }
#endif
/* Wrapper scalbf */ /* Wrapper scalbf */
float float
__scalbf (float x, float fn) __scalbf (float x, float fn)
{ {
#if LIBM_SVID_COMPAT
if (__glibc_unlikely (_LIB_VERSION == _SVID_)) if (__glibc_unlikely (_LIB_VERSION == _SVID_))
return sysv_scalbf (x, fn); return sysv_scalbf (x, fn);
else else
#endif
{ {
float z = __ieee754_scalbf (x, fn); float z = __ieee754_scalbf (x, fn);

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
static long double static long double
__attribute__ ((noinline)) __attribute__ ((noinline))
sysv_scalbl (long double x, long double fn) sysv_scalbl (long double x, long double fn)
@ -40,15 +41,18 @@ sysv_scalbl (long double x, long double fn)
return z; return z;
} }
#endif
/* Wrapper scalbl */ /* Wrapper scalbl */
long double long double
__scalbl (long double x, long double fn) __scalbl (long double x, long double fn)
{ {
#if LIBM_SVID_COMPAT
if (__glibc_unlikely (_LIB_VERSION == _SVID_)) if (__glibc_unlikely (_LIB_VERSION == _SVID_))
return sysv_scalbl (x, fn); return sysv_scalbl (x, fn);
else else
#endif
{ {
long double z = __ieee754_scalbl (x, fn); long double z = __ieee754_scalbl (x, fn);

View File

@ -18,6 +18,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double double
__sinh (double x) __sinh (double x)
{ {
@ -33,3 +34,4 @@ weak_alias (__sinh, sinh)
strong_alias (__sinh, __sinhl) strong_alias (__sinh, __sinhl)
weak_alias (__sinh, sinhl) weak_alias (__sinh, sinhl)
# endif # endif
#endif

View File

@ -21,6 +21,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float float
__sinhf (float x) __sinhf (float x)
{ {
@ -32,3 +33,4 @@ __sinhf (float x)
return z; return z;
} }
weak_alias (__sinhf, sinhf) weak_alias (__sinhf, sinhf)
#endif

View File

@ -22,6 +22,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double long double
__sinhl (long double x) __sinhl (long double x)
{ {
@ -33,3 +34,4 @@ __sinhl (long double x)
return z; return z;
} }
weak_alias (__sinhl, sinhl) weak_alias (__sinhl, sinhl)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper sqrt */ /* wrapper sqrt */
double double
__sqrt (double x) __sqrt (double x)
@ -35,3 +36,4 @@ weak_alias (__sqrt, sqrt)
strong_alias (__sqrt, __sqrtl) strong_alias (__sqrt, __sqrtl)
weak_alias (__sqrt, sqrtl) weak_alias (__sqrt, sqrtl)
# endif # endif
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper sqrtf */ /* wrapper sqrtf */
float float
__sqrtf (float x) __sqrtf (float x)
@ -31,3 +32,4 @@ __sqrtf (float x)
return __ieee754_sqrtf (x); return __ieee754_sqrtf (x);
} }
weak_alias (__sqrtf, sqrtf) weak_alias (__sqrtf, sqrtf)
#endif

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper sqrtl */ /* wrapper sqrtl */
long double long double
__sqrtl (long double x) __sqrtl (long double x)
@ -31,3 +32,4 @@ __sqrtl (long double x)
return __ieee754_sqrtl (x); return __ieee754_sqrtl (x);
} }
weak_alias (__sqrtl, sqrtl) weak_alias (__sqrtl, sqrtl)
#endif

View File

@ -20,6 +20,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double double
__tgamma(double x) __tgamma(double x)
{ {
@ -45,3 +46,4 @@ weak_alias (__tgamma, tgamma)
strong_alias (__tgamma, __tgammal) strong_alias (__tgamma, __tgammal)
weak_alias (__tgamma, tgammal) weak_alias (__tgamma, tgammal)
# endif # endif
#endif

View File

@ -18,6 +18,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float float
__tgammaf(float x) __tgammaf(float x)
{ {
@ -43,3 +44,4 @@ __tgammaf(float x)
return local_signgam < 0 ? - y : y; return local_signgam < 0 ? - y : y;
} }
weak_alias (__tgammaf, tgammaf) weak_alias (__tgammaf, tgammaf)
#endif

View File

@ -23,6 +23,7 @@
#include <math_private.h> #include <math_private.h>
#include <math-svid-compat.h> #include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double long double
__tgammal(long double x) __tgammal(long double x)
{ {
@ -44,3 +45,4 @@ __tgammal(long double x)
return local_signgam < 0 ? - y : y; return local_signgam < 0 ? - y : y;
} }
weak_alias (__tgammal, tgammal) weak_alias (__tgammal, tgammal)
#endif

View File

@ -47,7 +47,9 @@
/* Supply the generic macros. */ /* Supply the generic macros. */
#include <math-type-macros.h> #include <math-type-macros.h>
/* Do not use the type-generic wrapper templates. */ /* Do not use the type-generic wrapper templates if compatibility with
#define __USE_WRAPPER_TEMPLATE 0 SVID error handling is needed. */
#include <math-svid-compat.h>
#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT
#endif #endif

View File

@ -33,7 +33,9 @@
/* Supply the generic macros. */ /* Supply the generic macros. */
#include <math-type-macros.h> #include <math-type-macros.h>
/* Do not use the type-generic wrapper templates. */ /* Do not use the type-generic wrapper templates if compatibility with
#define __USE_WRAPPER_TEMPLATE 0 SVID error handling is needed. */
#include <math-svid-compat.h>
#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT
#endif #endif

View File

@ -30,7 +30,9 @@
/* Supply the generic macros. */ /* Supply the generic macros. */
#include <math-type-macros.h> #include <math-type-macros.h>
/* Do not use the type-generic wrapper templates. */ /* Do not use the type-generic wrapper templates if compatibility with
#define __USE_WRAPPER_TEMPLATE 0 SVID error handling is needed. */
#include <math-svid-compat.h>
#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT
#endif #endif

View File

@ -0,0 +1,9 @@
/* The inline __ieee754_sqrt is not correctly rounding; it's OK for
most internal uses in glibc, but not for sqrt itself. */
#define __ieee754_sqrt __avoid_ieee754_sqrt
#include <math.h>
#include <math_private.h>
#undef __ieee754_sqrt
extern double __ieee754_sqrt (double);
#include <math-type-macros-double.h>
#include <w_sqrt_template.c>

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

1
sysdeps/ia64/fpu/w_exp.c Normal file
View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

Some files were not shown because too many files have changed in this diff Show More