From 4f3647e46e3f645c6516faa299efc6e89d520d7b Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 5 Sep 2017 23:35:55 +0000 Subject: [PATCH] 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 . (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT. * sysdeps/generic/math-type-macros-float.h: Include . (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT. * sysdeps/generic/math-type-macros-ldouble.h: Include . (__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]. --- ChangeLog | 183 ++++++++++++++++++ math/lgamma-compat.h | 3 +- math/w_acos_compat.c | 4 +- math/w_acosf_compat.c | 2 + math/w_acosh_compat.c | 4 +- math/w_acoshf_compat.c | 2 + math/w_acoshl_compat.c | 2 + math/w_acosl_compat.c | 2 + math/w_asin_compat.c | 4 +- math/w_asinf_compat.c | 2 + math/w_asinl_compat.c | 2 + math/w_atan2_compat.c | 4 +- math/w_atan2f_compat.c | 2 + math/w_atan2l_compat.c | 2 + math/w_atanh_compat.c | 4 +- math/w_atanhf_compat.c | 2 + math/w_atanhl_compat.c | 2 + math/w_cosh_compat.c | 4 +- math/w_coshf_compat.c | 2 + math/w_coshl_compat.c | 2 + math/w_exp10_compat.c | 10 +- math/w_exp10f_compat.c | 4 +- math/w_exp10l_compat.c | 4 +- math/w_exp2_compat.c | 4 +- math/w_exp2f_compat.c | 2 + math/w_exp2l_compat.c | 2 + math/w_fmod_compat.c | 4 +- math/w_fmodf_compat.c | 2 + math/w_fmodl_compat.c | 2 + math/w_hypot_compat.c | 4 +- math/w_hypotf_compat.c | 2 + math/w_hypotl_compat.c | 2 + math/w_j0_compat.c | 8 +- math/w_j0f_compat.c | 2 + math/w_j0l_compat.c | 2 + math/w_j1_compat.c | 8 +- math/w_j1f_compat.c | 2 + math/w_j1l_compat.c | 2 + math/w_jn_compat.c | 8 +- math/w_jnf_compat.c | 2 + math/w_jnl_compat.c | 14 +- math/w_lgamma_r_compat.c | 4 +- math/w_lgammaf_r_compat.c | 2 + math/w_lgammal_r_compat.c | 2 + math/w_log10_compat.c | 4 +- math/w_log10f_compat.c | 2 + math/w_log10l_compat.c | 2 + math/w_log2_compat.c | 4 +- math/w_log2f_compat.c | 2 + math/w_log2l_compat.c | 2 + math/w_log_compat.c | 4 +- math/w_logf_compat.c | 2 + math/w_logl_compat.c | 2 + math/w_pow_compat.c | 4 +- math/w_powf_compat.c | 2 + math/w_powl_compat.c | 2 + math/w_remainder_compat.c | 4 +- math/w_remainderf_compat.c | 2 + math/w_remainderl_compat.c | 2 + math/w_scalb_compat.c | 4 + math/w_scalbf_compat.c | 4 + math/w_scalbl_compat.c | 4 + math/w_sinh_compat.c | 4 +- math/w_sinhf_compat.c | 2 + math/w_sinhl_compat.c | 2 + math/w_sqrt_compat.c | 4 +- math/w_sqrtf_compat.c | 2 + math/w_sqrtl_compat.c | 2 + math/w_tgamma_compat.c | 4 +- math/w_tgammaf_compat.c | 2 + math/w_tgammal_compat.c | 2 + sysdeps/generic/math-type-macros-double.h | 6 +- sysdeps/generic/math-type-macros-float.h | 6 +- sysdeps/generic/math-type-macros-ldouble.h | 6 +- sysdeps/i386/fpu/w_sqrt.c | 9 + sysdeps/ia64/fpu/w_acos.c | 1 + sysdeps/ia64/fpu/w_acosf.c | 1 + sysdeps/ia64/fpu/w_acosh.c | 1 + sysdeps/ia64/fpu/w_acoshf.c | 1 + sysdeps/ia64/fpu/w_acoshl.c | 1 + sysdeps/ia64/fpu/w_acosl.c | 1 + sysdeps/ia64/fpu/w_asin.c | 1 + sysdeps/ia64/fpu/w_asinf.c | 1 + sysdeps/ia64/fpu/w_asinl.c | 1 + sysdeps/ia64/fpu/w_atan2.c | 1 + sysdeps/ia64/fpu/w_atan2f.c | 1 + sysdeps/ia64/fpu/w_atan2l.c | 1 + sysdeps/ia64/fpu/w_atanh.c | 1 + sysdeps/ia64/fpu/w_atanhf.c | 1 + sysdeps/ia64/fpu/w_atanhl.c | 1 + sysdeps/ia64/fpu/w_cosh.c | 1 + sysdeps/ia64/fpu/w_coshf.c | 1 + sysdeps/ia64/fpu/w_coshl.c | 1 + sysdeps/ia64/fpu/w_exp.c | 1 + sysdeps/ia64/fpu/w_exp10.c | 1 + sysdeps/ia64/fpu/w_exp10f.c | 1 + sysdeps/ia64/fpu/w_exp10l.c | 1 + sysdeps/ia64/fpu/w_exp2.c | 1 + sysdeps/ia64/fpu/w_exp2f.c | 1 + sysdeps/ia64/fpu/w_exp2l.c | 1 + sysdeps/ia64/fpu/w_expf.c | 1 + sysdeps/ia64/fpu/w_expl.c | 1 + sysdeps/ia64/fpu/w_fmod.c | 1 + sysdeps/ia64/fpu/w_fmodf.c | 1 + sysdeps/ia64/fpu/w_fmodl.c | 1 + sysdeps/ia64/fpu/w_hypot.c | 1 + sysdeps/ia64/fpu/w_hypotf.c | 1 + sysdeps/ia64/fpu/w_hypotl.c | 1 + sysdeps/ia64/fpu/w_lgamma_r.c | 1 + sysdeps/ia64/fpu/w_lgammaf_r.c | 1 + sysdeps/ia64/fpu/w_lgammal_r.c | 1 + sysdeps/ia64/fpu/w_log.c | 1 + sysdeps/ia64/fpu/w_log10.c | 1 + sysdeps/ia64/fpu/w_log10f.c | 1 + sysdeps/ia64/fpu/w_log10l.c | 1 + sysdeps/ia64/fpu/w_log2.c | 1 + sysdeps/ia64/fpu/w_log2f.c | 1 + sysdeps/ia64/fpu/w_log2l.c | 1 + sysdeps/ia64/fpu/w_logf.c | 1 + sysdeps/ia64/fpu/w_logl.c | 1 + sysdeps/ia64/fpu/w_pow.c | 1 + sysdeps/ia64/fpu/w_powf.c | 1 + sysdeps/ia64/fpu/w_powl.c | 1 + sysdeps/ia64/fpu/w_remainder.c | 1 + sysdeps/ia64/fpu/w_remainderf.c | 1 + sysdeps/ia64/fpu/w_remainderl.c | 1 + sysdeps/ia64/fpu/w_sinh.c | 1 + sysdeps/ia64/fpu/w_sinhf.c | 1 + sysdeps/ia64/fpu/w_sinhl.c | 1 + sysdeps/ia64/fpu/w_sqrt.c | 1 + sysdeps/ia64/fpu/w_sqrtf.c | 1 + sysdeps/ia64/fpu/w_sqrtl.c | 1 + sysdeps/ia64/fpu/w_tgamma.c | 1 + sysdeps/ia64/fpu/w_tgammaf.c | 1 + sysdeps/ia64/fpu/w_tgammal.c | 1 + sysdeps/ieee754/dbl-64/w_exp_compat.c | 4 +- sysdeps/ieee754/flt-32/w_expf_compat.c | 2 + sysdeps/ieee754/k_standard.c | 37 ++-- sysdeps/ieee754/k_standardf.c | 2 + sysdeps/ieee754/k_standardl.c | 3 + sysdeps/ieee754/ldbl-128/w_expl_compat.c | 8 +- sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c | 2 + sysdeps/ieee754/ldbl-64-128/w_expl_compat.c | 2 + sysdeps/ieee754/ldbl-96/w_expl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_acosl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_asinl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_coshl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c | 8 +- sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_j0l_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_j1l_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_jnl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_log10l_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_log2l_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_logl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_powl_compat.c | 2 + .../ieee754/ldbl-opt/w_remainderl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c | 2 + sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c | 2 + 165 files changed, 535 insertions(+), 70 deletions(-) create mode 100644 sysdeps/i386/fpu/w_sqrt.c create mode 100644 sysdeps/ia64/fpu/w_acos.c create mode 100644 sysdeps/ia64/fpu/w_acosf.c create mode 100644 sysdeps/ia64/fpu/w_acosh.c create mode 100644 sysdeps/ia64/fpu/w_acoshf.c create mode 100644 sysdeps/ia64/fpu/w_acoshl.c create mode 100644 sysdeps/ia64/fpu/w_acosl.c create mode 100644 sysdeps/ia64/fpu/w_asin.c create mode 100644 sysdeps/ia64/fpu/w_asinf.c create mode 100644 sysdeps/ia64/fpu/w_asinl.c create mode 100644 sysdeps/ia64/fpu/w_atan2.c create mode 100644 sysdeps/ia64/fpu/w_atan2f.c create mode 100644 sysdeps/ia64/fpu/w_atan2l.c create mode 100644 sysdeps/ia64/fpu/w_atanh.c create mode 100644 sysdeps/ia64/fpu/w_atanhf.c create mode 100644 sysdeps/ia64/fpu/w_atanhl.c create mode 100644 sysdeps/ia64/fpu/w_cosh.c create mode 100644 sysdeps/ia64/fpu/w_coshf.c create mode 100644 sysdeps/ia64/fpu/w_coshl.c create mode 100644 sysdeps/ia64/fpu/w_exp.c create mode 100644 sysdeps/ia64/fpu/w_exp10.c create mode 100644 sysdeps/ia64/fpu/w_exp10f.c create mode 100644 sysdeps/ia64/fpu/w_exp10l.c create mode 100644 sysdeps/ia64/fpu/w_exp2.c create mode 100644 sysdeps/ia64/fpu/w_exp2f.c create mode 100644 sysdeps/ia64/fpu/w_exp2l.c create mode 100644 sysdeps/ia64/fpu/w_expf.c create mode 100644 sysdeps/ia64/fpu/w_expl.c create mode 100644 sysdeps/ia64/fpu/w_fmod.c create mode 100644 sysdeps/ia64/fpu/w_fmodf.c create mode 100644 sysdeps/ia64/fpu/w_fmodl.c create mode 100644 sysdeps/ia64/fpu/w_hypot.c create mode 100644 sysdeps/ia64/fpu/w_hypotf.c create mode 100644 sysdeps/ia64/fpu/w_hypotl.c create mode 100644 sysdeps/ia64/fpu/w_lgamma_r.c create mode 100644 sysdeps/ia64/fpu/w_lgammaf_r.c create mode 100644 sysdeps/ia64/fpu/w_lgammal_r.c create mode 100644 sysdeps/ia64/fpu/w_log.c create mode 100644 sysdeps/ia64/fpu/w_log10.c create mode 100644 sysdeps/ia64/fpu/w_log10f.c create mode 100644 sysdeps/ia64/fpu/w_log10l.c create mode 100644 sysdeps/ia64/fpu/w_log2.c create mode 100644 sysdeps/ia64/fpu/w_log2f.c create mode 100644 sysdeps/ia64/fpu/w_log2l.c create mode 100644 sysdeps/ia64/fpu/w_logf.c create mode 100644 sysdeps/ia64/fpu/w_logl.c create mode 100644 sysdeps/ia64/fpu/w_pow.c create mode 100644 sysdeps/ia64/fpu/w_powf.c create mode 100644 sysdeps/ia64/fpu/w_powl.c create mode 100644 sysdeps/ia64/fpu/w_remainder.c create mode 100644 sysdeps/ia64/fpu/w_remainderf.c create mode 100644 sysdeps/ia64/fpu/w_remainderl.c create mode 100644 sysdeps/ia64/fpu/w_sinh.c create mode 100644 sysdeps/ia64/fpu/w_sinhf.c create mode 100644 sysdeps/ia64/fpu/w_sinhl.c create mode 100644 sysdeps/ia64/fpu/w_sqrt.c create mode 100644 sysdeps/ia64/fpu/w_sqrtf.c create mode 100644 sysdeps/ia64/fpu/w_sqrtl.c create mode 100644 sysdeps/ia64/fpu/w_tgamma.c create mode 100644 sysdeps/ia64/fpu/w_tgammaf.c create mode 100644 sysdeps/ia64/fpu/w_tgammal.c diff --git a/ChangeLog b/ChangeLog index 92110bd6718..5e3bc264216 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,186 @@ +2017-09-05 Joseph Myers + + * sysdeps/generic/math-type-macros-double.h: Include + . + (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT. + * sysdeps/generic/math-type-macros-float.h: Include + . + (__USE_WRAPPER_TEMPLATE): Define to !LIBM_SVID_COMPAT. + * sysdeps/generic/math-type-macros-ldouble.h: Include + . + (__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 * include/shlib-compat.h (TEST_COMPAT): New Macro. diff --git a/math/lgamma-compat.h b/math/lgamma-compat.h index 189d1268827..b7b6b36d167 100644 --- a/math/lgamma-compat.h +++ b/math/lgamma-compat.h @@ -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 diff --git a/math/w_acos_compat.c b/math/w_acos_compat.c index 5115732a837..1930105153e 100644 --- a/math/w_acos_compat.c +++ b/math/w_acos_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_acosf_compat.c b/math/w_acosf_compat.c index 0bf557c9c59..97cac13cd6a 100644 --- a/math/w_acosf_compat.c +++ b/math/w_acosf_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_acosh_compat.c b/math/w_acosh_compat.c index 31251ce760b..f6d298e17be 100644 --- a/math/w_acosh_compat.c +++ b/math/w_acosh_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_acoshf_compat.c b/math/w_acoshf_compat.c index 6a4482e5340..7a8c87bf4f2 100644 --- a/math/w_acoshf_compat.c +++ b/math/w_acoshf_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_acoshl_compat.c b/math/w_acoshl_compat.c index b9f66c53efb..79d0370eb33 100644 --- a/math/w_acoshl_compat.c +++ b/math/w_acoshl_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_acosl_compat.c b/math/w_acosl_compat.c index 66600b5d38e..7d2f1835ae7 100644 --- a/math/w_acosl_compat.c +++ b/math/w_acosl_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_asin_compat.c b/math/w_asin_compat.c index 59beea817d7..7780f858831 100644 --- a/math/w_asin_compat.c +++ b/math/w_asin_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_asinf_compat.c b/math/w_asinf_compat.c index 0eb20b10b53..10ee32328e2 100644 --- a/math/w_asinf_compat.c +++ b/math/w_asinf_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_asinl_compat.c b/math/w_asinl_compat.c index c8f4d150c67..c9e1a340cc9 100644 --- a/math/w_asinl_compat.c +++ b/math/w_asinl_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_atan2_compat.c b/math/w_atan2_compat.c index fa098ffeb77..1ca33492070 100644 --- a/math/w_atan2_compat.c +++ b/math/w_atan2_compat.c @@ -26,6 +26,7 @@ #include +#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 diff --git a/math/w_atan2f_compat.c b/math/w_atan2f_compat.c index 15e05d82536..8d7ad71b706 100644 --- a/math/w_atan2f_compat.c +++ b/math/w_atan2f_compat.c @@ -26,6 +26,7 @@ #include +#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 diff --git a/math/w_atan2l_compat.c b/math/w_atan2l_compat.c index 87b73948dae..9dc2b144ea6 100644 --- a/math/w_atan2l_compat.c +++ b/math/w_atan2l_compat.c @@ -26,6 +26,7 @@ #include +#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 diff --git a/math/w_atanh_compat.c b/math/w_atanh_compat.c index f7a43beb090..c2cbb2ee5f7 100644 --- a/math/w_atanh_compat.c +++ b/math/w_atanh_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_atanhf_compat.c b/math/w_atanhf_compat.c index c9d2c3a3aeb..6045188bd82 100644 --- a/math/w_atanhf_compat.c +++ b/math/w_atanhf_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_atanhl_compat.c b/math/w_atanhl_compat.c index 56f9f1ed613..837a6652b84 100644 --- a/math/w_atanhl_compat.c +++ b/math/w_atanhl_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_cosh_compat.c b/math/w_cosh_compat.c index fd164365204..d0cb6b165fb 100644 --- a/math/w_cosh_compat.c +++ b/math/w_cosh_compat.c @@ -18,6 +18,7 @@ #include #include +#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 diff --git a/math/w_coshf_compat.c b/math/w_coshf_compat.c index dd622816936..b5d53168f23 100644 --- a/math/w_coshf_compat.c +++ b/math/w_coshf_compat.c @@ -22,6 +22,7 @@ #include #include +#if LIBM_SVID_COMPAT float __coshf (float x) { @@ -33,3 +34,4 @@ __coshf (float x) return z; } weak_alias (__coshf, coshf) +#endif diff --git a/math/w_coshl_compat.c b/math/w_coshl_compat.c index 5fa32bea880..4dab6eff679 100644 --- a/math/w_coshl_compat.c +++ b/math/w_coshl_compat.c @@ -23,6 +23,7 @@ #include #include +#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 diff --git a/math/w_exp10_compat.c b/math/w_exp10_compat.c index 5256f5b06f0..42dc312ee88 100644 --- a/math/w_exp10_compat.c +++ b/math/w_exp10_compat.c @@ -25,6 +25,7 @@ #include #include +#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 diff --git a/math/w_exp10f_compat.c b/math/w_exp10f_compat.c index c559e6a6295..bacf2eb9d2d 100644 --- a/math/w_exp10f_compat.c +++ b/math/w_exp10f_compat.c @@ -25,6 +25,7 @@ #include #include +#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 diff --git a/math/w_exp10l_compat.c b/math/w_exp10l_compat.c index 03b7ce9b6bd..3d7d66d5af1 100644 --- a/math/w_exp10l_compat.c +++ b/math/w_exp10l_compat.c @@ -25,6 +25,7 @@ #include #include +#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 diff --git a/math/w_exp2_compat.c b/math/w_exp2_compat.c index a4d46537085..57395478594 100644 --- a/math/w_exp2_compat.c +++ b/math/w_exp2_compat.c @@ -6,6 +6,7 @@ #include #include +#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 diff --git a/math/w_exp2f_compat.c b/math/w_exp2f_compat.c index b21fe36903a..b058daed305 100644 --- a/math/w_exp2f_compat.c +++ b/math/w_exp2f_compat.c @@ -6,6 +6,7 @@ #include #include +#if LIBM_SVID_COMPAT float __exp2f (float x) { @@ -18,3 +19,4 @@ __exp2f (float x) return z; } weak_alias (__exp2f, exp2f) +#endif diff --git a/math/w_exp2l_compat.c b/math/w_exp2l_compat.c index 04cd666b684..96d4b96c111 100644 --- a/math/w_exp2l_compat.c +++ b/math/w_exp2l_compat.c @@ -6,6 +6,7 @@ #include #include +#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 diff --git a/math/w_fmod_compat.c b/math/w_fmod_compat.c index 1079d3a6035..f75b8615d09 100644 --- a/math/w_fmod_compat.c +++ b/math/w_fmod_compat.c @@ -20,6 +20,7 @@ #include #include +#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 diff --git a/math/w_fmodf_compat.c b/math/w_fmodf_compat.c index 88b64a24bd5..a2739d856ac 100644 --- a/math/w_fmodf_compat.c +++ b/math/w_fmodf_compat.c @@ -20,6 +20,7 @@ #include #include +#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 diff --git a/math/w_fmodl_compat.c b/math/w_fmodl_compat.c index 23422fa6525..3136e82d653 100644 --- a/math/w_fmodl_compat.c +++ b/math/w_fmodl_compat.c @@ -20,6 +20,7 @@ #include #include +#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 diff --git a/math/w_hypot_compat.c b/math/w_hypot_compat.c index ff3774cf62e..21c7e65c5e0 100644 --- a/math/w_hypot_compat.c +++ b/math/w_hypot_compat.c @@ -19,6 +19,7 @@ #include +#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 diff --git a/math/w_hypotf_compat.c b/math/w_hypotf_compat.c index 0a43d90a007..8e6d2343eb8 100644 --- a/math/w_hypotf_compat.c +++ b/math/w_hypotf_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_hypotl_compat.c b/math/w_hypotl_compat.c index 13060f74a78..bc56d29a04c 100644 --- a/math/w_hypotl_compat.c +++ b/math/w_hypotl_compat.c @@ -23,6 +23,7 @@ #include +#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 diff --git a/math/w_j0_compat.c b/math/w_j0_compat.c index 80d21acde1d..3df71e0b7ba 100644 --- a/math/w_j0_compat.c +++ b/math/w_j0_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_j0f_compat.c b/math/w_j0f_compat.c index 36fc4f94432..e9ac74f23aa 100644 --- a/math/w_j0f_compat.c +++ b/math/w_j0f_compat.c @@ -22,6 +22,7 @@ #include +#if LIBM_SVID_COMPAT /* wrapper j0f */ float j0f (float x) @@ -62,3 +63,4 @@ y0f (float x) return __ieee754_y0f (x); } +#endif diff --git a/math/w_j0l_compat.c b/math/w_j0l_compat.c index ff7e1b14567..76ec812729c 100644 --- a/math/w_j0l_compat.c +++ b/math/w_j0l_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_j1_compat.c b/math/w_j1_compat.c index f7a76c10d5e..be788f98648 100644 --- a/math/w_j1_compat.c +++ b/math/w_j1_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_j1f_compat.c b/math/w_j1f_compat.c index 9aa5c8c4fda..c3222bbc8d4 100644 --- a/math/w_j1f_compat.c +++ b/math/w_j1f_compat.c @@ -22,6 +22,7 @@ #include +#if LIBM_SVID_COMPAT /* wrapper j1f */ float j1f (float x) @@ -62,3 +63,4 @@ y1f (float x) return __ieee754_y1f (x); } +#endif diff --git a/math/w_j1l_compat.c b/math/w_j1l_compat.c index 7e6d9f57f26..c3acfdfe76c 100644 --- a/math/w_j1l_compat.c +++ b/math/w_j1l_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_jn_compat.c b/math/w_jn_compat.c index 7c49992cf4c..496c779e8cf 100644 --- a/math/w_jn_compat.c +++ b/math/w_jn_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_jnf_compat.c b/math/w_jnf_compat.c index ead40e7a606..440d53d13e6 100644 --- a/math/w_jnf_compat.c +++ b/math/w_jnf_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_jnl_compat.c b/math/w_jnl_compat.c index bc416359c28..7298c73a3b7 100644 --- a/math/w_jnl_compat.c +++ b/math/w_jnl_compat.c @@ -48,11 +48,12 @@ static char rcsid[] = "$NetBSD: $"; #include #include +#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 diff --git a/math/w_lgamma_r_compat.c b/math/w_lgamma_r_compat.c index 3f7fbce62be..f88a5df6a51 100644 --- a/math/w_lgamma_r_compat.c +++ b/math/w_lgamma_r_compat.c @@ -19,6 +19,7 @@ #include +#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 diff --git a/math/w_lgammaf_r_compat.c b/math/w_lgammaf_r_compat.c index d9601f45d7f..86003de59ae 100644 --- a/math/w_lgammaf_r_compat.c +++ b/math/w_lgammaf_r_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_lgammal_r_compat.c b/math/w_lgammal_r_compat.c index d1b58e42ddf..781bfa45e78 100644 --- a/math/w_lgammal_r_compat.c +++ b/math/w_lgammal_r_compat.c @@ -23,6 +23,7 @@ #include +#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 diff --git a/math/w_log10_compat.c b/math/w_log10_compat.c index 6f3eb3408c5..b8247aa8861 100644 --- a/math/w_log10_compat.c +++ b/math/w_log10_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_log10f_compat.c b/math/w_log10f_compat.c index 2cb5c9a1bb0..151c94b4dca 100644 --- a/math/w_log10f_compat.c +++ b/math/w_log10f_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_log10l_compat.c b/math/w_log10l_compat.c index 0063c507788..88d9c403543 100644 --- a/math/w_log10l_compat.c +++ b/math/w_log10l_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_log2_compat.c b/math/w_log2_compat.c index 252fc0d86a1..6d1f9f2159b 100644 --- a/math/w_log2_compat.c +++ b/math/w_log2_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_log2f_compat.c b/math/w_log2f_compat.c index 6adaff6c724..82085d5222e 100644 --- a/math/w_log2f_compat.c +++ b/math/w_log2f_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_log2l_compat.c b/math/w_log2l_compat.c index f496c3630ee..cd367f2f51f 100644 --- a/math/w_log2l_compat.c +++ b/math/w_log2l_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_log_compat.c b/math/w_log_compat.c index 82f3ff4eec9..80750b43710 100644 --- a/math/w_log_compat.c +++ b/math/w_log_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_logf_compat.c b/math/w_logf_compat.c index ac18b65c5e9..4423bd527aa 100644 --- a/math/w_logf_compat.c +++ b/math/w_logf_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_logl_compat.c b/math/w_logl_compat.c index ba65830b675..e37a17475e1 100644 --- a/math/w_logl_compat.c +++ b/math/w_logl_compat.c @@ -22,6 +22,7 @@ #include +#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 diff --git a/math/w_pow_compat.c b/math/w_pow_compat.c index 367f609dc28..4865f4d0d6d 100644 --- a/math/w_pow_compat.c +++ b/math/w_pow_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_powf_compat.c b/math/w_powf_compat.c index afc3fced804..ce1235baeec 100644 --- a/math/w_powf_compat.c +++ b/math/w_powf_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_powl_compat.c b/math/w_powl_compat.c index b25dad870d3..9159f610d29 100644 --- a/math/w_powl_compat.c +++ b/math/w_powl_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_remainder_compat.c b/math/w_remainder_compat.c index 6bf5d1ff2e7..68e322efdc8 100644 --- a/math/w_remainder_compat.c +++ b/math/w_remainder_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_remainderf_compat.c b/math/w_remainderf_compat.c index 3ffefde83d5..39ff3b44689 100644 --- a/math/w_remainderf_compat.c +++ b/math/w_remainderf_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_remainderl_compat.c b/math/w_remainderl_compat.c index b01b0b13653..c11ba24a8ab 100644 --- a/math/w_remainderl_compat.c +++ b/math/w_remainderl_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_scalb_compat.c b/math/w_scalb_compat.c index a31e54dd78e..277e7244153 100644 --- a/math/w_scalb_compat.c +++ b/math/w_scalb_compat.c @@ -22,6 +22,7 @@ #include +#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); diff --git a/math/w_scalbf_compat.c b/math/w_scalbf_compat.c index 2b96df0cbfb..79798aef1e4 100644 --- a/math/w_scalbf_compat.c +++ b/math/w_scalbf_compat.c @@ -22,6 +22,7 @@ #include +#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); diff --git a/math/w_scalbl_compat.c b/math/w_scalbl_compat.c index a4a0f8e942e..4c73e6b180d 100644 --- a/math/w_scalbl_compat.c +++ b/math/w_scalbl_compat.c @@ -22,6 +22,7 @@ #include +#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); diff --git a/math/w_sinh_compat.c b/math/w_sinh_compat.c index 121edfc8924..e5c3724763d 100644 --- a/math/w_sinh_compat.c +++ b/math/w_sinh_compat.c @@ -18,6 +18,7 @@ #include #include +#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 diff --git a/math/w_sinhf_compat.c b/math/w_sinhf_compat.c index 2103b06253b..1310ccf93bb 100644 --- a/math/w_sinhf_compat.c +++ b/math/w_sinhf_compat.c @@ -21,6 +21,7 @@ #include #include +#if LIBM_SVID_COMPAT float __sinhf (float x) { @@ -32,3 +33,4 @@ __sinhf (float x) return z; } weak_alias (__sinhf, sinhf) +#endif diff --git a/math/w_sinhl_compat.c b/math/w_sinhl_compat.c index 57f08e7ecc7..348209860a6 100644 --- a/math/w_sinhl_compat.c +++ b/math/w_sinhl_compat.c @@ -22,6 +22,7 @@ #include #include +#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 diff --git a/math/w_sqrt_compat.c b/math/w_sqrt_compat.c index 743df321d5d..aeead2e49c2 100644 --- a/math/w_sqrt_compat.c +++ b/math/w_sqrt_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_sqrtf_compat.c b/math/w_sqrtf_compat.c index 0689b4bb1a5..bd3d5048fc4 100644 --- a/math/w_sqrtf_compat.c +++ b/math/w_sqrtf_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_sqrtl_compat.c b/math/w_sqrtl_compat.c index 43e81acf0a9..b0afd1171cf 100644 --- a/math/w_sqrtl_compat.c +++ b/math/w_sqrtl_compat.c @@ -21,6 +21,7 @@ #include +#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 diff --git a/math/w_tgamma_compat.c b/math/w_tgamma_compat.c index 93bd48fd3ff..f843475f107 100644 --- a/math/w_tgamma_compat.c +++ b/math/w_tgamma_compat.c @@ -20,6 +20,7 @@ #include #include +#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 diff --git a/math/w_tgammaf_compat.c b/math/w_tgammaf_compat.c index e6ae48c1f5a..796850b4d94 100644 --- a/math/w_tgammaf_compat.c +++ b/math/w_tgammaf_compat.c @@ -18,6 +18,7 @@ #include #include +#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 diff --git a/math/w_tgammal_compat.c b/math/w_tgammal_compat.c index 306f672077a..c0e442955bf 100644 --- a/math/w_tgammal_compat.c +++ b/math/w_tgammal_compat.c @@ -23,6 +23,7 @@ #include #include +#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 diff --git a/sysdeps/generic/math-type-macros-double.h b/sysdeps/generic/math-type-macros-double.h index 6116f7f32f0..a7556991904 100644 --- a/sysdeps/generic/math-type-macros-double.h +++ b/sysdeps/generic/math-type-macros-double.h @@ -47,7 +47,9 @@ /* Supply the generic macros. */ #include -/* 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 +#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT #endif diff --git a/sysdeps/generic/math-type-macros-float.h b/sysdeps/generic/math-type-macros-float.h index 712e517a811..cc8c4b0bcdf 100644 --- a/sysdeps/generic/math-type-macros-float.h +++ b/sysdeps/generic/math-type-macros-float.h @@ -33,7 +33,9 @@ /* Supply the generic macros. */ #include -/* 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 +#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT #endif diff --git a/sysdeps/generic/math-type-macros-ldouble.h b/sysdeps/generic/math-type-macros-ldouble.h index 4e02e53f70d..7dbd5592496 100644 --- a/sysdeps/generic/math-type-macros-ldouble.h +++ b/sysdeps/generic/math-type-macros-ldouble.h @@ -30,7 +30,9 @@ /* Supply the generic macros. */ #include -/* 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 +#define __USE_WRAPPER_TEMPLATE !LIBM_SVID_COMPAT #endif diff --git a/sysdeps/i386/fpu/w_sqrt.c b/sysdeps/i386/fpu/w_sqrt.c new file mode 100644 index 00000000000..d37a5d55bf4 --- /dev/null +++ b/sysdeps/i386/fpu/w_sqrt.c @@ -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 +#include +#undef __ieee754_sqrt +extern double __ieee754_sqrt (double); +#include +#include diff --git a/sysdeps/ia64/fpu/w_acos.c b/sysdeps/ia64/fpu/w_acos.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_acos.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_acosf.c b/sysdeps/ia64/fpu/w_acosf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_acosf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_acosh.c b/sysdeps/ia64/fpu/w_acosh.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_acosh.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_acoshf.c b/sysdeps/ia64/fpu/w_acoshf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_acoshf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_acoshl.c b/sysdeps/ia64/fpu/w_acoshl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_acoshl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_acosl.c b/sysdeps/ia64/fpu/w_acosl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_acosl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_asin.c b/sysdeps/ia64/fpu/w_asin.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_asin.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_asinf.c b/sysdeps/ia64/fpu/w_asinf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_asinf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_asinl.c b/sysdeps/ia64/fpu/w_asinl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_asinl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2.c b/sysdeps/ia64/fpu/w_atan2.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_atan2.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2f.c b/sysdeps/ia64/fpu/w_atan2f.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_atan2f.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atan2l.c b/sysdeps/ia64/fpu/w_atan2l.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_atan2l.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanh.c b/sysdeps/ia64/fpu/w_atanh.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_atanh.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanhf.c b/sysdeps/ia64/fpu/w_atanhf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_atanhf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_atanhl.c b/sysdeps/ia64/fpu/w_atanhl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_atanhl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_cosh.c b/sysdeps/ia64/fpu/w_cosh.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_cosh.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_coshf.c b/sysdeps/ia64/fpu/w_coshf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_coshf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_coshl.c b/sysdeps/ia64/fpu/w_coshl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_coshl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp.c b/sysdeps/ia64/fpu/w_exp.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10.c b/sysdeps/ia64/fpu/w_exp10.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp10.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10f.c b/sysdeps/ia64/fpu/w_exp10f.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp10f.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp10l.c b/sysdeps/ia64/fpu/w_exp10l.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp10l.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2.c b/sysdeps/ia64/fpu/w_exp2.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp2.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2f.c b/sysdeps/ia64/fpu/w_exp2f.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp2f.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_exp2l.c b/sysdeps/ia64/fpu/w_exp2l.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_exp2l.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_expf.c b/sysdeps/ia64/fpu/w_expf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_expf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_expl.c b/sysdeps/ia64/fpu/w_expl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_expl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmod.c b/sysdeps/ia64/fpu/w_fmod.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_fmod.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmodf.c b/sysdeps/ia64/fpu/w_fmodf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_fmodf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_fmodl.c b/sysdeps/ia64/fpu/w_fmodl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_fmodl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypot.c b/sysdeps/ia64/fpu/w_hypot.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_hypot.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypotf.c b/sysdeps/ia64/fpu/w_hypotf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_hypotf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_hypotl.c b/sysdeps/ia64/fpu/w_hypotl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_hypotl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgamma_r.c b/sysdeps/ia64/fpu/w_lgamma_r.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_lgamma_r.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgammaf_r.c b/sysdeps/ia64/fpu/w_lgammaf_r.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_lgammaf_r.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_lgammal_r.c b/sysdeps/ia64/fpu/w_lgammal_r.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_lgammal_r.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log.c b/sysdeps/ia64/fpu/w_log.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_log.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10.c b/sysdeps/ia64/fpu/w_log10.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_log10.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10f.c b/sysdeps/ia64/fpu/w_log10f.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_log10f.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log10l.c b/sysdeps/ia64/fpu/w_log10l.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_log10l.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log2.c b/sysdeps/ia64/fpu/w_log2.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_log2.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log2f.c b/sysdeps/ia64/fpu/w_log2f.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_log2f.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_log2l.c b/sysdeps/ia64/fpu/w_log2l.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_log2l.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_logf.c b/sysdeps/ia64/fpu/w_logf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_logf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_logl.c b/sysdeps/ia64/fpu/w_logl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_logl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_pow.c b/sysdeps/ia64/fpu/w_pow.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_pow.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_powf.c b/sysdeps/ia64/fpu/w_powf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_powf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_powl.c b/sysdeps/ia64/fpu/w_powl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_powl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainder.c b/sysdeps/ia64/fpu/w_remainder.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_remainder.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainderf.c b/sysdeps/ia64/fpu/w_remainderf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_remainderf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_remainderl.c b/sysdeps/ia64/fpu/w_remainderl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_remainderl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sinh.c b/sysdeps/ia64/fpu/w_sinh.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_sinh.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sinhf.c b/sysdeps/ia64/fpu/w_sinhf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_sinhf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sinhl.c b/sysdeps/ia64/fpu/w_sinhl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_sinhl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrt.c b/sysdeps/ia64/fpu/w_sqrt.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_sqrt.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrtf.c b/sysdeps/ia64/fpu/w_sqrtf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_sqrtf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_sqrtl.c b/sysdeps/ia64/fpu/w_sqrtl.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_sqrtl.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_tgamma.c b/sysdeps/ia64/fpu/w_tgamma.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_tgamma.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_tgammaf.c b/sysdeps/ia64/fpu/w_tgammaf.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_tgammaf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ia64/fpu/w_tgammal.c b/sysdeps/ia64/fpu/w_tgammal.c new file mode 100644 index 00000000000..1cc89317007 --- /dev/null +++ b/sysdeps/ia64/fpu/w_tgammal.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ieee754/dbl-64/w_exp_compat.c b/sysdeps/ieee754/dbl-64/w_exp_compat.c index 69ec0a1ebc3..98aa5b76a01 100644 --- a/sysdeps/ieee754/dbl-64/w_exp_compat.c +++ b/sysdeps/ieee754/dbl-64/w_exp_compat.c @@ -20,6 +20,7 @@ #include #include +#if LIBM_SVID_COMPAT /* wrapper exp */ double __exp (double x) @@ -33,7 +34,8 @@ __exp (double x) } hidden_def (__exp) weak_alias (__exp, exp) -#ifdef NO_LONG_DOUBLE +# ifdef NO_LONG_DOUBLE strong_alias (__exp, __expl) weak_alias (__exp, expl) +# endif #endif diff --git a/sysdeps/ieee754/flt-32/w_expf_compat.c b/sysdeps/ieee754/flt-32/w_expf_compat.c index 8a1fa51e46e..a38ff4082dc 100644 --- a/sysdeps/ieee754/flt-32/w_expf_compat.c +++ b/sysdeps/ieee754/flt-32/w_expf_compat.c @@ -20,6 +20,7 @@ #include #include +#if LIBM_SVID_COMPAT /* wrapper expf */ float __expf (float x) @@ -33,3 +34,4 @@ __expf (float x) } hidden_def (__expf) weak_alias (__expf, expf) +#endif diff --git a/sysdeps/ieee754/k_standard.c b/sysdeps/ieee754/k_standard.c index 8f906bd604d..f74f9c712e9 100644 --- a/sysdeps/ieee754/k_standard.c +++ b/sysdeps/ieee754/k_standard.c @@ -21,23 +21,25 @@ static char rcsid[] = "$NetBSD: k_standard.c,v 1.6 1995/05/10 20:46:35 jtc Exp $ #include -#ifndef _USE_WRITE -#include /* fputs(), stderr */ -#define WRITE2(u,v) fputs(u, stderr) -#else /* !defined(_USE_WRITE) */ -#include /* write */ -#define WRITE2(u,v) write(2, u, v) -#undef fflush -#endif /* !defined(_USE_WRITE) */ +#if LIBM_SVID_COMPAT + +# ifndef _USE_WRITE +# include /* fputs(), stderr */ +# define WRITE2(u,v) fputs(u, stderr) +# else /* !defined(_USE_WRITE) */ +# include /* write */ +# define WRITE2(u,v) write(2, u, v) +# undef fflush +# endif /* !defined(_USE_WRITE) */ /* XXX gcc versions until now don't delay the 0.0/0.0 division until runtime but produce NaN at compile time. This is wrong since the exceptions are not set correctly. */ -#if 0 +# if 0 static const double zero = 0.0; /* used as const */ -#else +# else static double zero = 0.0; /* used as const */ -#endif +# endif /* * Standard conformance (non-IEEE) on exception cases. @@ -97,21 +99,21 @@ double __kernel_standard(double x, double y, int type) { struct exception exc; -#ifndef HUGE_VAL /* this is the only routine that uses HUGE_VAL */ -#define HUGE_VAL inf +# ifndef HUGE_VAL /* this is the only routine that uses HUGE_VAL */ +# define HUGE_VAL inf double inf = 0.0; SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ -#endif +# endif /* The SVID struct exception uses a field "char *name;". */ -#define CSTR(func) ((char *) (type < 100 \ +# define CSTR(func) ((char *) (type < 100 \ ? func \ : (type < 200 ? func "f" : func "l"))) -#ifdef _USE_WRITE +# ifdef _USE_WRITE (void) fflush(stdout); -#endif +# endif exc.arg1 = x; exc.arg2 = y; switch(type) { @@ -945,3 +947,4 @@ __kernel_standard(double x, double y, int type) } return exc.retval; } +#endif diff --git a/sysdeps/ieee754/k_standardf.c b/sysdeps/ieee754/k_standardf.c index 85b2003daff..62d25d22dbb 100644 --- a/sysdeps/ieee754/k_standardf.c +++ b/sysdeps/ieee754/k_standardf.c @@ -21,6 +21,7 @@ #include +#if LIBM_SVID_COMPAT /* Handle errors for a libm function as specified by TYPE (see comments in k_standard.c for details), with arguments X and Y, returning the appropriate return value for that function. */ @@ -30,3 +31,4 @@ __kernel_standard_f (float x, float y, int type) { return __kernel_standard (x, y, type); } +#endif diff --git a/sysdeps/ieee754/k_standardl.c b/sysdeps/ieee754/k_standardl.c index 783fd0b87df..484ec913544 100644 --- a/sysdeps/ieee754/k_standardl.c +++ b/sysdeps/ieee754/k_standardl.c @@ -38,6 +38,8 @@ #include +#if LIBM_SVID_COMPAT + static double zero = 0.0; /* Handle errors for a libm function as specified by TYPE (see @@ -106,3 +108,4 @@ __kernel_standard_l (long double x, long double y, int type) return __kernel_standard (dx, dy, type); } } +#endif diff --git a/sysdeps/ieee754/ldbl-128/w_expl_compat.c b/sysdeps/ieee754/ldbl-128/w_expl_compat.c index e0fa9e35018..ec076deaad4 100644 --- a/sysdeps/ieee754/ldbl-128/w_expl_compat.c +++ b/sysdeps/ieee754/ldbl-128/w_expl_compat.c @@ -26,18 +26,20 @@ static char rcsid[] = "$NetBSD: $"; #include #include +#if LIBM_SVID_COMPAT long double __expl(long double x) /* wrapper exp */ { -#ifdef _IEEE_LIBM +# ifdef _IEEE_LIBM return __ieee754_expl(x); -#else +# else long double z = __ieee754_expl (x); if (__glibc_unlikely (!isfinite (z) || z == 0) && isfinite (x) && _LIB_VERSION != _IEEE_) return __kernel_standard_l (x, x, 206 + !!signbit (x)); return z; -#endif +# endif } hidden_def (__expl) weak_alias (__expl, expl) +#endif diff --git a/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c b/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c index 019a48fb0d5..53948a96e62 100644 --- a/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c +++ b/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c @@ -3,6 +3,7 @@ #include #include +#if LIBM_SVID_COMPAT long double __expl(long double x) /* wrapper exp */ { long double z; @@ -20,3 +21,4 @@ long double __expl(long double x) /* wrapper exp */ } hidden_def (__expl) long_double_symbol (libm, __expl, expl); +#endif diff --git a/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c b/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c index 37c153e2a42..037e8bf348c 100644 --- a/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c +++ b/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __expl, expl); +#endif diff --git a/sysdeps/ieee754/ldbl-96/w_expl_compat.c b/sysdeps/ieee754/ldbl-96/w_expl_compat.c index c9e6003a430..ae9ab586cbd 100644 --- a/sysdeps/ieee754/ldbl-96/w_expl_compat.c +++ b/sysdeps/ieee754/ldbl-96/w_expl_compat.c @@ -20,6 +20,7 @@ #include #include +#if LIBM_SVID_COMPAT /* wrapper expl */ long double __expl (long double x) @@ -33,3 +34,4 @@ __expl (long double x) } hidden_def (__expl) weak_alias (__expl, expl) +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c b/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c index df4338d9fa2..f66964a138b 100644 --- a/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __acoshl, acoshl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c b/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c index 5efc99024c6..ff33e9a9edf 100644 --- a/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __acosl, acosl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c b/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c index 087fab25bbb..a53f1cb1f50 100644 --- a/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __asinl, asinl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c b/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c index 6b12209625e..c70f77e4c44 100644 --- a/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __atan2l, atan2l); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c b/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c index 49bae1ee8f7..67450c58591 100644 --- a/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __atanhl, atanhl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c b/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c index a8808778ba4..392511bab6b 100644 --- a/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __coshl, coshl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c b/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c index cf154882fee..5a52a75ba58 100644 --- a/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c @@ -4,15 +4,17 @@ #undef compat_symbol #define compat_symbol(l,n,a,v) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __exp10l, exp10l); -#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) +# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_27) /* compat_symbol was undefined and redefined above to avoid the default pow10l compat symbol at version GLIBC_2_1 (as for ldbl-opt configurations, that version should have the alias to exp10). So it now needs to be redefined to define the compat symbol at version LONG_DOUBLE_COMPAT_VERSION. */ -# undef compat_symbol -# define compat_symbol(lib, local, symbol, version) \ +# undef compat_symbol +# define compat_symbol(lib, local, symbol, version) \ compat_symbol_reference (lib, local, symbol, version) compat_symbol (libm, __pow10l, pow10l, LONG_DOUBLE_COMPAT_VERSION); +# endif #endif diff --git a/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c b/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c index 88fe0ac4d27..12419e30605 100644 --- a/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __fmodl, fmodl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c b/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c index 68e39974898..b87bac7ce8f 100644 --- a/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __hypotl, hypotl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c b/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c index 9050657e03f..8fc865128d7 100644 --- a/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c @@ -2,5 +2,7 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __j0l, j0l); long_double_symbol (libm, __y0l, y0l); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c b/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c index 4ed9e2dd12e..85b3feed9fa 100644 --- a/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c @@ -2,5 +2,7 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __j1l, j1l); long_double_symbol (libm, __y1l, y1l); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c b/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c index d22ee549974..9b2c9985360 100644 --- a/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c @@ -2,5 +2,7 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __jnl, jnl); long_double_symbol (libm, __ynl, ynl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c b/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c index 6fdf2bba87a..431aa5d15c0 100644 --- a/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __lgammal_r, lgammal_r); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c b/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c index 17de3e78561..6eb9ea7928b 100644 --- a/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __log10l, log10l); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c b/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c index 3c5e7345730..1507e937b81 100644 --- a/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __log2l, log2l); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_logl_compat.c b/sysdeps/ieee754/ldbl-opt/w_logl_compat.c index 2b558421393..6b71ef26591 100644 --- a/sysdeps/ieee754/ldbl-opt/w_logl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_logl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __logl, logl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_powl_compat.c b/sysdeps/ieee754/ldbl-opt/w_powl_compat.c index 1897cf1c632..c6f8d859be2 100644 --- a/sysdeps/ieee754/ldbl-opt/w_powl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_powl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __powl, powl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c b/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c index b2ce5c95637..849d2db425e 100644 --- a/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c @@ -2,6 +2,8 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __remainderl, remainderl); strong_alias (__remainderl, __dreml) long_double_symbol (libm, __dreml, dreml); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c b/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c index 305ed823571..8fce55c74f9 100644 --- a/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __sinhl, sinhl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c b/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c index 1e4526f2c66..05be9177723 100644 --- a/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __sqrtl, sqrtl); +#endif diff --git a/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c b/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c index aaf54035221..8c201ca8e2a 100644 --- a/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c +++ b/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c @@ -2,4 +2,6 @@ #undef weak_alias #define weak_alias(n,a) #include +#if LIBM_SVID_COMPAT long_double_symbol (libm, __tgammal, tgammal); +#endif -- 2.39.5