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>
* 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)
/* 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. */
#if USE_AS_COMPAT

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper acos */
double
__acos (double x)
@ -37,7 +38,8 @@ __acos (double x)
return __ieee754_acos (x);
}
weak_alias (__acos, acos)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__acos, __acosl)
weak_alias (__acos, acosl)
# endif
#endif

View File

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

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper acosh */
double
__acosh (double x)
@ -32,7 +33,8 @@ __acosh (double x)
return __ieee754_acosh (x);
}
weak_alias (__acosh, acosh)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__acosh, __acoshl)
weak_alias (__acosh, acoshl)
# endif
#endif

View File

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

View File

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

View File

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

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper asin */
double
__asin (double x)
@ -37,7 +38,8 @@ __asin (double x)
return __ieee754_asin (x);
}
weak_alias (__asin, asin)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__asin, __asinl)
weak_alias (__asin, asinl)
# endif
#endif

View File

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

View File

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

View File

@ -26,6 +26,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double
__atan2 (double y, double x)
{
@ -40,7 +41,8 @@ __atan2 (double y, double x)
return z;
}
weak_alias (__atan2, atan2)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__atan2, __atan2l)
weak_alias (__atan2, atan2l)
# endif
#endif

View File

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

View File

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

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper atanh */
double
__atanh (double x)
@ -35,7 +36,8 @@ __atanh (double x)
return __ieee754_atanh (x);
}
weak_alias (__atanh, atanh)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__atanh, __atanhl)
weak_alias (__atanh, atanhl)
# endif
#endif

View File

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

View File

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

View File

@ -18,6 +18,7 @@
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double
__cosh (double x)
{
@ -29,7 +30,8 @@ __cosh (double x)
return z;
}
weak_alias (__cosh, cosh)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__cosh, __coshl)
weak_alias (__cosh, coshl)
# endif
#endif

View File

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

View File

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

View File

@ -25,6 +25,7 @@
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double
__exp10 (double x)
{
@ -37,15 +38,16 @@ __exp10 (double x)
return z;
}
weak_alias (__exp10, exp10)
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
strong_alias (__exp10, __pow10)
compat_symbol (libm, __pow10, pow10, GLIBC_2_1);
#endif
#ifdef NO_LONG_DOUBLE
# endif
# ifdef NO_LONG_DOUBLE
strong_alias (__exp10, __exp10l)
weak_alias (__exp10, exp10l)
# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
strong_alias (__exp10l, __pow10l)
compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1);
# endif
# endif
#endif

View File

@ -25,6 +25,7 @@
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
float
__exp10f (float x)
{
@ -37,7 +38,8 @@ __exp10f (float x)
return z;
}
weak_alias (__exp10f, exp10f)
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
strong_alias (__exp10f, __pow10f)
compat_symbol (libm, __pow10f, pow10f, GLIBC_2_1);
# endif
#endif

View File

@ -25,6 +25,7 @@
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double
__exp10l (long double x)
{
@ -37,7 +38,8 @@ __exp10l (long double x)
return z;
}
weak_alias (__exp10l, exp10l)
#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27)
strong_alias (__exp10l, __pow10l)
compat_symbol (libm, __pow10l, pow10l, GLIBC_2_1);
# endif
#endif

View File

@ -6,6 +6,7 @@
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double
__exp2 (double x)
{
@ -18,7 +19,8 @@ __exp2 (double x)
return z;
}
weak_alias (__exp2, exp2)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__exp2, __exp2l)
weak_alias (__exp2, exp2l)
# endif
#endif

View File

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

View File

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

View File

@ -20,6 +20,7 @@
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper fmod */
double
__fmod (double x, double y)
@ -32,7 +33,8 @@ __fmod (double x, double y)
return __ieee754_fmod (x, y);
}
weak_alias (__fmod, fmod)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__fmod, __fmodl)
weak_alias (__fmod, fmodl)
# endif
#endif

View File

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

View File

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

View File

@ -19,6 +19,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double
__hypot (double x, double y)
{
@ -30,7 +31,8 @@ __hypot (double x, double y)
return z;
}
weak_alias (__hypot, hypot)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__hypot, __hypotl)
weak_alias (__hypot, hypotl)
# endif
#endif

View File

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

View File

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

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper j0 */
double
j0 (double x)
@ -33,9 +34,9 @@ j0 (double x)
return __ieee754_j0 (x);
}
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
weak_alias (j0, j0l)
#endif
# endif
/* wrapper y0 */
@ -64,6 +65,7 @@ y0 (double x)
return __ieee754_y0 (x);
}
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
weak_alias (y0, y0l)
# endif
#endif

View File

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

View File

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

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper j1 */
double
j1 (double x)
@ -33,9 +34,9 @@ j1 (double x)
return __ieee754_j1 (x);
}
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
weak_alias (j1, j1l)
#endif
# endif
/* wrapper y1 */
@ -64,6 +65,7 @@ y1 (double x)
return __ieee754_y1 (x);
}
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
weak_alias (y1, y1l)
# endif
#endif

View File

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

View File

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

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper jn */
double
jn (int n, double x)
@ -33,9 +34,9 @@ jn (int n, double x)
return __ieee754_jn (n, x);
}
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
weak_alias (jn, jnl)
#endif
# endif
/* wrapper yn */
@ -64,6 +65,7 @@ yn (int n, double x)
return __ieee754_yn (n, x);
}
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
weak_alias (yn, ynl)
# endif
#endif

View File

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

View File

@ -48,11 +48,12 @@ static char rcsid[] = "$NetBSD: $";
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
long double __jnl(int n, long double x) /* wrapper jnl */
{
#ifdef _IEEE_LIBM
# ifdef _IEEE_LIBM
return __ieee754_jnl(n,x);
#else
# else
long double z;
z = __ieee754_jnl(n,x);
if (_LIB_VERSION == _IEEE_
@ -63,15 +64,15 @@ long double __jnl(int n, long double x) /* wrapper jnl */
return __kernel_standard_l((double)n,x,238); /* jn(|x|>X_TLOSS,n) */
} else
return z;
#endif
# endif
}
weak_alias (__jnl, jnl)
long double __ynl(int n, long double x) /* wrapper ynl */
{
#ifdef _IEEE_LIBM
# ifdef _IEEE_LIBM
return __ieee754_ynl(n,x);
#else
# else
long double z;
z = __ieee754_ynl(n,x);
if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z;
@ -87,6 +88,7 @@ long double __ynl(int n, long double x) /* wrapper ynl */
return __kernel_standard_l((double)n,x,239); /* yn(x>X_TLOSS,n) */
} else
return z;
#endif
# endif
}
weak_alias (__ynl, ynl)
#endif

View File

@ -19,6 +19,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double
__lgamma_r(double x, int *signgamp)
{
@ -33,7 +34,8 @@ __lgamma_r(double x, int *signgamp)
return y;
}
weak_alias (__lgamma_r, lgamma_r)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__lgamma_r, __lgammal_r)
weak_alias (__lgamma_r, lgammal_r)
# endif
#endif

View File

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

View File

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

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log10(x) */
double
__log10 (double x)
@ -43,7 +44,8 @@ __log10 (double x)
return __ieee754_log10 (x);
}
weak_alias (__log10, log10)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__log10, __log10l)
weak_alias (__log10, log10l)
# endif
#endif

View File

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

View File

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

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log2(x) */
double
__log2 (double x)
@ -43,7 +44,8 @@ __log2 (double x)
return __ieee754_log2 (x);
}
weak_alias (__log2, log2)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__log2, __log2l)
weak_alias (__log2, log2l)
# endif
#endif

View File

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

View File

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

View File

@ -22,6 +22,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper log(x) */
double
__log (double x)
@ -43,7 +44,8 @@ __log (double x)
return __ieee754_log (x);
}
weak_alias (__log, log)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__log, __logl)
weak_alias (__log, logl)
# endif
#endif

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper remainder */
double
__remainder (double x, double y)
@ -34,8 +35,9 @@ __remainder (double x, double y)
}
weak_alias (__remainder, remainder)
weak_alias (__remainder, drem)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__remainder, __remainderl)
weak_alias (__remainder, remainderl)
weak_alias (__remainder, dreml)
# endif
#endif

View File

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

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper remainderl */
long double
__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, dreml)
#endif

View File

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

View File

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

View File

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

View File

@ -18,6 +18,7 @@
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double
__sinh (double x)
{
@ -29,7 +30,8 @@ __sinh (double x)
return z;
}
weak_alias (__sinh, sinh)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__sinh, __sinhl)
weak_alias (__sinh, sinhl)
# endif
#endif

View File

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

View File

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

View File

@ -21,6 +21,7 @@
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
/* wrapper sqrt */
double
__sqrt (double x)
@ -31,7 +32,8 @@ __sqrt (double x)
return __ieee754_sqrt (x);
}
weak_alias (__sqrt, sqrt)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__sqrt, __sqrtl)
weak_alias (__sqrt, sqrtl)
# endif
#endif

View File

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

View File

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

View File

@ -20,6 +20,7 @@
#include <math_private.h>
#include <math-svid-compat.h>
#if LIBM_SVID_COMPAT
double
__tgamma(double x)
{
@ -41,7 +42,8 @@ __tgamma(double x)
return local_signgam < 0 ? -y : y;
}
weak_alias (__tgamma, tgamma)
#ifdef NO_LONG_DOUBLE
# ifdef NO_LONG_DOUBLE
strong_alias (__tgamma, __tgammal)
weak_alias (__tgamma, tgammal)
# endif
#endif

View File

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

View File

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

View File

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

View File

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

View File

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