aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-64-128
AgeCommit message (Collapse)Author
2017-09-05Prefer new libm function wrappers for !LIBM_SVID_COMPAT.Joseph Myers
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].
2017-06-20Use locale_t, not __locale_t, throughout glibcZack Weinberg
<locale.h> is specified to define locale_t in POSIX.1-2008, and so are all of the headers that define functions that take locale_t arguments. Under _GNU_SOURCE, the additional headers that define such functions have also always defined locale_t. Therefore, there is no need to use __locale_t in public function prototypes, nor in any internal code. * ctype/ctype-c99_l.c, ctype/ctype.h, ctype/ctype_l.c * include/monetary.h, include/stdlib.h, include/time.h * include/wchar.h, locale/duplocale.c, locale/freelocale.c * locale/global-locale.c, locale/langinfo.h, locale/locale.h * locale/localeinfo.h, locale/newlocale.c * locale/nl_langinfo_l.c, locale/uselocale.c * localedata/bug-usesetlocale.c, localedata/tst-xlocale2.c * stdio-common/vfscanf.c, stdlib/monetary.h, stdlib/stdlib.h * stdlib/strfmon_l.c, stdlib/strtod_l.c, stdlib/strtof_l.c * stdlib/strtol.c, stdlib/strtol_l.c, stdlib/strtold_l.c * stdlib/strtoll_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c * string/strcasecmp.c, string/strcoll_l.c, string/string.h * string/strings.h, string/strncase.c, string/strxfrm_l.c * sysdeps/ieee754/float128/strtof128_l.c * sysdeps/ieee754/float128/wcstof128.c * sysdeps/ieee754/float128/wcstof128_l.c * sysdeps/ieee754/ldbl-128ibm/strtold_l.c * sysdeps/ieee754/ldbl-64-128/strtold_l.c * sysdeps/ieee754/ldbl-opt/nldbl-compat.c * sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c * sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c * sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c * sysdeps/powerpc/powerpc32/power7/strcasecmp.S * sysdeps/powerpc/powerpc64/power7/strcasecmp.S * sysdeps/x86_64/strcasecmp_l-nonascii.c * sysdeps/x86_64/strncase_l-nonascii.c, time/strftime_l.c * time/strptime_l.c, time/time.h, wcsmbs/mbsrtowcs_l.c * wcsmbs/wchar.h, wcsmbs/wcscasecmp.c, wcsmbs/wcsncase.c * wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c * wcsmbs/wcstof_l.c, wcsmbs/wcstol_l.c, wcsmbs/wcstold.c * wcsmbs/wcstold_l.c, wcsmbs/wcstoll_l.c, wcsmbs/wcstoul_l.c * wcsmbs/wcstoull_l.c, wctype/iswctype_l.c * wctype/towctrans_l.c, wctype/wcfuncs_l.c * wctype/wctrans_l.c, wctype/wctype.h, wctype/wctype_l.c: Change all uses of __locale_t to locale_t.
2017-06-20Rename xlocale.h to bits/types/__locale_t.h.Zack Weinberg
xlocale.h is already a single-type micro-header, defining struct __locale_struct and the typedefs __locale_t and locale_t. This patch brings it into the bits/types/ scheme: there are now bits/types/__locale_t.h which defines only __locale_struct and __locale_t, and bits/types/locale_t.h which defines locale_t as well as the other two. None of *our* headers need __locale_t.h, but it appears to me that libstdc++ could make use of it. There are a lot of external uses of xlocale.h, but all the uses I checked had an autoconf test or equivalent for its existence. It has never been available from other C libraries, and it has always contained a comment reading "This file is not standardized, don't rely on it, it can go away without warning" so I think dropping it is pretty safe. I also took the opportunity to clean up comments in various public header files that still talk about the *_l interfaces as though they were completely nonstandard. There are a few of them, notably the strtoX_l and wcstoX_l families, that haven't been standardized, but the bulk are in POSIX.1-2008. * locale/xlocale.h: Rename to... * locale/bits/types/__locale_t.h: ...here. Adjust commentary. Only define struct __locale_struct and __locale_t, not locale_t. * locale/bits/types/locale_t.h: New file; define locale_t here. * locale/Makefile (headers): Update to match. * include/xlocale.h: Delete wrapper. * include/bits/types/__locale_t.h: New wrapper. * include/bits/types/locale_t.h: New wrapper. * ctype/ctype.h, include/printf.h, include/time.h * locale/langinfo.h, locale/locale.h, stdlib/monetary.h * stdlib/stdlib.h, string/string.h, string/strings.h, time/time.h * wcsmbs/wchar.h, wctype/wctype.h: Use bits/types/locale_t.h. Correct outdated comments regarding the standardization status of the functions that take locale_t arguments. * stdlib/strtod_l.c, stdlib/strtof_l.c, stdlib/strtol_l.c * stdlib/strtold_l.c, stdlib/strtoul_l.c, stdlib/strtoull_l.c * sysdeps/ieee754/ldbl-128ibm/strtold_l.c * sysdeps/ieee754/ldbl-64-128/strtold_l.c * wcsmbs/wcstod.c, wcsmbs/wcstod_l.c, wcsmbs/wcstof.c * wcsmbs/wcstof_l.c, wcsmbs/wcstold.c, wcsmbs/wcstold_l.c: Don't include xlocale.h. If necessary, include locale.h instead. * stdlib/strtold_l.c: Unconditionally include wchar.h.
2017-02-08Move w_exp to libm-compat-call-autoGabriel F. T. Gomes
This patch adds the "_compat" suffix to the wrappers of the function exp, which use _LIB_VERSION / matherr / __kernel_standard functionality. Tested for powerpc64le, s390, and x86_64. * math/Makefile (libm-calls): Move w_exp... (libm-compat-calls-auto): Here. * math/w_expl.c: Add suffix "_compat" to filename. * sysdeps/ia64/fpu/w_expl.c: Likewise. * sysdeps/ia64/fpu/w_expf.c: Likewise. * sysdeps/ia64/fpu/w_exp.c: Likewise. * sysdeps/ieee754/dbl-64/w_exp.c: Likewise. * sysdeps/ieee754/flt-32/w_expf.c: Likewise. * sysdeps/ieee754/ldbl-128/w_expl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/w_expl.c: Likewise. * sysdeps/ieee754/ldbl-96/w_expl.c: Likewise. * math/w_expl_compat.c: New file, copied from above. * sysdeps/ia64/fpu/w_exp_compat.c: Likewise. * sysdeps/ia64/fpu/w_expf_compat.c: Likewise. * sysdeps/ia64/fpu/w_expl_compat.c: Likewise. * sysdeps/ieee754/dbl-64/w_exp_compat.c: Likewise. * sysdeps/ieee754/flt-32/w_expf_compat.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.c: Add suffix "_compat" to filename. * sysdeps/ieee754/ldbl-opt/w_exp.c: Likewise. * sysdeps/ieee754/ldbl-64-128/w_expl_compat.c: New file, copied from above and adjusted for the new filenames. * sysdeps/ieee754/ldbl-opt/w_exp_compat.c: Likewise.
2017-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers
2016-12-16Make w_scalbln type-genericGabriel F. T. Gomes
This patch converts the wrapper scalbln (which set errno directly rather than doing anything with __kernel_standard) to use the type-generic template machinery, in the same way that has been done for ldexp. Tested for powerpc64le, s390, and x86_64.
2016-12-14Make w_log1p type-genericGabriel F. T. Gomes
This patch converts the wrapper log1p (which set errno directly rather than doing anything with __kernel_standard) to use the type-generic template machinery, in the same way that has been done for ilogb. Tested for powerpc64le, s390, and x86_64.
2016-01-04Update copyright dates with scripts/update-copyrights.Joseph Myers
2015-11-24Refactor strtod parsing of NaN payloads.Joseph Myers
The nan* functions handle their string argument by constructing a NAN(...) string on the stack as a VLA and passing it to strtod functions. This approach has problems discussed in bug 16961 and bug 16962: the stack usage is unbounded, and it gives incorrect results in certain cases where the argument is not a valid n-char-sequence. The natural fix for both issues is to refactor the NaN payload parsing out of strtod into a separate function that the nan* functions can call directly, so that no temporary string needs constructing on the stack at all. This patch does that refactoring in preparation for fixing those bugs (but without actually using the new functions from nan* - which will also require exporting them from libc at version GLIBC_PRIVATE). This patch is not intended to change any user-visible behavior, so no tests are added (fixes for the above bugs will of course add tests for them). This patch builds on my recent fixes for strtol and strtod issues in Turkish locales. Given those fixes, the parsing of NaN payloads is locale-independent; thus, the new functions do not need to take a locale_t argument. Tested for x86_64, x86, mips64 and powerpc. * stdlib/strtod_nan.c: New file. * stdlib/strtod_nan_double.h: Likewise. * stdlib/strtod_nan_float.h: Likewise. * stdlib/strtod_nan_main.c: Likewise. * stdlib/strtod_nan_narrow.h: Likewise. * stdlib/strtod_nan_wide.h: Likewise. * stdlib/strtof_nan.c: Likewise. * stdlib/strtold_nan.c: Likewise. * sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h: Likewise. * sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h: Likewise. * sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h: Likewise. * wcsmbs/wcstod_nan.c: Likewise. * wcsmbs/wcstof_nan.c: Likewise. * wcsmbs/wcstold_nan.c: Likewise. * stdlib/Makefile (routines): Add strtof_nan, strtod_nan and strtold_nan. * wcsmbs/Makefile (routines): Add wcstod_nan, wcstold_nan and wcstof_nan. * include/stdlib.h (__strtof_nan): Declare and use libc_hidden_proto. (__strtod_nan): Likewise. (__strtold_nan): Likewise. (__wcstof_nan): Likewise. (__wcstod_nan): Likewise. (__wcstold_nan): Likewise. * include/wchar.h (____wcstoull_l_internal): Declare. * stdlib/strtod_l.c: Do not include <ieee754.h>. (____strtoull_l_internal): Remove declaration. (STRTOF_NAN): Define macro. (SET_MANTISSA): Remove macro. (STRTOULL): Likewise. (____STRTOF_INTERNAL): Use STRTOF_NAN to parse NaN payload. * stdlib/strtof_l.c (____strtoull_l_internal): Remove declaration. (STRTOF_NAN): Define macro. (SET_MANTISSA): Remove macro. * sysdeps/ieee754/ldbl-128/strtold_l.c (STRTOF_NAN): Define macro. (SET_MANTISSA): Remove macro. * sysdeps/ieee754/ldbl-128ibm/strtold_l.c (STRTOF_NAN): Define macro. (SET_MANTISSA): Remove macro. * sysdeps/ieee754/ldbl-64-128/strtold_l.c (STRTOF_NAN): Define macro. (SET_MANTISSA): Remove macro. * sysdeps/ieee754/ldbl-96/strtold_l.c (STRTOF_NAN): Define macro. (SET_MANTISSA): Remove macro. * wcsmbs/wcstod_l.c (____wcstoull_l_internal): Remove declaration. * wcsmbs/wcstof_l.c (____wcstoull_l_internal): Likewise. * wcsmbs/wcstold_l.c (____wcstoull_l_internal): Likewise.
2015-09-16Make scalbn set errno (bug 6803).Joseph Myers
As noted in bug 6803, scalbn fails to set errno on overflow and underflow. This patch fixes this by making scalbn an alias of ldexp, which has exactly the same semantics (for floating-point types with radix 2) and already has wrappers that deal with setting errno, instead of an alias of the internal __scalbn (which ldexp calls). Notes: * Where compat symbols were defined for scalbn functions, I didn't change what they point to (to keep the patch minimal), so such compat symbols continue to go directly to the non-errno-setting functions. * Mike, I didn't do anything with the IA64 versions of these functions, where I think both the ldexp and scalbn functions already deal with setting errno. As a cleanup (not needed to fix this bug) however you might want to make those functions into aliases for IA64; there is no need for them to be separate function implementations at all. * This concludes the fix for bug 6803 since the scalb and scalbln cases of that bug were fixed some time ago. Tested for x86_64, x86, mips64 and powerpc. [BZ #6803] * math/s_ldexp.c (scalbn): Define as weak alias of __ldexp. [NO_LONG_DOUBLE] (scalbnl): Define as weak alias of __ldexp. * math/s_ldexpf.c (scalbnf): Define as weak alias of __ldexpf. * math/s_ldexpl.c (scalbnl): Define as weak alias of __ldexpl. * sysdeps/i386/fpu/s_scalbn.S (scalbn): Remove alias. * sysdeps/i386/fpu/s_scalbnf.S (scalbnf): Likewise. * sysdeps/i386/fpu/s_scalbnl.S (scalbnl): Likewise. * sysdeps/ieee754/dbl-64/s_scalbn.c (scalbn): Likewise. [NO_LONG_DOUBLE] (scalbnl): Likewise. * sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c (scalbn): Likewise. [NO_LONG_DOUBLE] (scalbnl): Likewise. * sysdeps/ieee754/flt-32/s_scalbnf.c (scalbnf): Likewise. * sysdeps/ieee754/ldbl-128/s_scalbnl.c (scalbnl): Likewise. * sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c (scalbnl): Remove long_double_symbol calls. * sysdeps/ieee754/ldbl-64-128/s_scalbnl.c (scalbnl): Likewise. * sysdeps/ieee754/ldbl-opt/s_ldexpl.c (__ldexpl_2): Define as strong alias of __ldexpl. (scalbnl): Define using long_double_symbol. * sysdeps/m68k/m680x0/fpu/s_scalbn.c (__CONCATX(scalbn,suffix)): Remove alias. * sysdeps/sparc/sparc64/soft-fp/s_scalbnl.c (scalbnl): Likewise. * sysdeps/x86_64/fpu/s_scalbnl.S (scalbnl): Likewise. * math/libm-test.inc (scalbn_test_data): Add errno expectations. (scalbln_test_data): Add more errno expectations.
2015-04-13Set errno for log1p on pole/domain error.Stefan Liebler
According to bug 6792, errno is not set to ERANGE/EDOM by calling log1p/log1pf/log1pl with x = -1 or x < -1. This patch adds a wrapper which sets errno in those cases and returns the value of the existing __log1p function. The log1p is now an alias to the wrapper function instead of __log1p. The files in sysdeps are reflecting these changes. The ia64 implementation sets errno by itself, thus the wrapper-file is empty. The libm-test is adjusted for log1p-tests to check errno. [BZ #6792] * math/w_log1p.c: New file. * math/w_log1pf.c: Likewise. * math/w_log1pl.c: Likewise. * math/Makefile (libm-calls): Add w_log1p. * math/s_log1pl.c (log1pl): Remove weak_alias. * sysdeps/i386/fpu/s_log1p.S (log1p): Likewise. * sysdeps/i386/fpu/s_log1pf.S (log1pf): Likewise. * sysdeps/i386/fpu/s_log1pl.S (log1pl): Likewise. * sysdeps/x86_64/fpu/s_log1pl.S (log1pl): Likewise. * sysdeps/ieee754/dbl-64/s_log1p.c (log1p): Likewise. [NO_LONG_DOUBLE] (log1pl): Likewise. * sysdeps/ieee754/flt-32/s_log1pf.c (log1pf): Likewise. * sysdeps/ieee754/ldbl-128/s_log1pl.c (log1pl): Likewise. * sysdeps/ieee754/ldbl-64-128/s_log1pl.c (log1p): Remove long_double_symbol. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (log1pl): Likewise. * sysdeps/ieee754/ldbl-64-128/w_log1pl.c: New file. * sysdeps/ieee754/ldbl-128ibm/w_log1pl.c: Likewise. * sysdeps/m68k/m680x0/fpu/s_log1p.c: Define empty weak_alias to remove weak_alias for corresponding log1p function. * sysdeps/m68k/m680x0/fpu/s_log1pf.c: Likewise. * sysdeps/m68k/m680x0/fpu/s_log1pl.c: Likewise. * sysdeps/ia64/fpu/w_log1p.c: New file. * sysdeps/ia64/fpu/w_log1pf.c: Likewise. * sysdeps/ia64/fpu/w_log1pl.c: Likewise. * math/libm-test.inc (log1p_test_data): Add errno expectations.
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers
2014-11-24Remove IS_IN_libmSiddhesh Poyarekar
Replace with IS_IN (libm). Generated code unchanged on x86_64. * include/math.h: Use IS_IN instead of IS_IN_libm. * sysdeps/alpha/fpu/s_copysign.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_copysignl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_finitel.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_frexpl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_isinfl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_isnanl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_modfl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_signbitl.c: Likewise. * sysdeps/ieee754/ldbl-64-128/s_copysignl.c: Likewise. * sysdeps/ieee754/ldbl-64-128/s_finitel.c: Likewise. * sysdeps/ieee754/ldbl-64-128/s_frexpl.c: Likewise. * sysdeps/ieee754/ldbl-64-128/s_isinfl.c: Likewise. * sysdeps/ieee754/ldbl-64-128/s_isnanl.c: Likewise. * sysdeps/ieee754/ldbl-64-128/s_modfl.c: Likewise. * sysdeps/ieee754/ldbl-64-128/s_scalbnl.c: Likewise. * sysdeps/ieee754/ldbl-64-128/s_signbitl.c: Likewise. * sysdeps/ieee754/ldbl-64-128/w_scalblnl.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_copysign.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_finite.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_frexp.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_isinf.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_isnan.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_ldexp.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_ldexpl.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_modf.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_scalbln.c: Likewise. * sysdeps/ieee754/ldbl-opt/s_scalbn.c: Likewise. * sysdeps/powerpc/power5+/fpu/s_modf.c: Likewise. * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc32/fpu/s_copysignl.S: Likewise. * sysdeps/powerpc/powerpc32/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c: Likewise. * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c: Likewise. * sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S: Likewise. * sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S: Likewise. * sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_copysignl.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Likewise. * sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S: Likewise. * sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S: Likewise. * sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S: Likewise. * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S: Likewise. * sysdeps/sparc/sparc32/fpu/s_signbitl.S: Likewise. * sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S: Likewise. * sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S: Likewise.
2014-06-20[BZ #6803] Set errno for scalbln, scalbnStefan Liebler
Errno is not set and the testcases will fail. Now the scalbln-aliases are removed in i386/m68 and the wrappers are used when calling the scalbln-functions. On ia64 only scalblnf has its own implementation. For scalbln and scalblnl the ieee754/dbl-64 and ieee754/ldbl-96 are used, thus the wrappers are needed, too.
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae
2013-08-29[BZ #15522] strtod ("nan(N)") returning a sNaN in some casesThomas Schwinge
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2012-04-18Finish ilogb changesAndreas Jaeger
[BZ# 6794] * sysdeps/ieee754/ldbl-96/s_ilogbl.c: Moved to ... * sysdeps/ieee754/ldbl-96/e_ilogbl.c: ... here. Rename __ilogbl to __ieee754_ilogbl and remove weak_alias. * sysdeps/ieee754/ldbl-128/s_ilogbl.c: Moved to ... * sysdeps/ieee754/ldbl-128/e_ilogbl.c: ... here. Rename __ilogbl to __ieee754_ilogbl and remove weak_alias. * sysdeps/ieee754/ldbl-64-128/s_ilogbl.c: Moved to ... * sysdeps/ieee754/ldbl-64-128/e_ilogbl.c: ... here. * sysdeps/sparc/sparc64/soft-fp/s_ilogbl.c: Moved to ... * sysdeps/sparc/sparc64/soft-fp/e_ilogbl.c: ... here. Rename __ilogbl to __ieee754_ilogbl and remove weak_alias.
2012-02-09Replace FSF snail mail address with URLs.Paul Eggert
2010-10-15Implement fmal, some fma bugfixesJakub Jelinek
2007-08-14* sysdeps/ieee754/ldbl-64-128/strtold_l.c (__STRTOF): Declare. Jakub Jelinek
Add libc_hidden_proto. (STRTOF): Add libc_hidden_proto. (___new_strtold_l, ___new_wcstold_l): New weak aliases. (strtold_l, wcstold_l): Use them as second argument for long_double_symbol. nptl/ * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock, __lll_robust_unlock): Rewrite as macros instead of inline functions. * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock, __lll_robust_unlock, __lll_wait_tid): Likewise. 2007-08-14 Jakub Jelinek <jakub@redhat.com> * sysdeps/ieee754/ldbl-64-128/strtold_l.c (__STRTOF): Declare. Add libc_hidden_proto. (STRTOF): Add libc_hidden_proto. (___new_strtold_l, ___new_wcstold_l): New weak aliases. (strtold_l, wcstold_l): Use them as second argument for long_double_symbol.
2006-01-21* sysdeps/ieee754/ldbl-64-128/s_nexttowardfd.c: Moved to...Roland McGrath
* sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c: ... here. New file. * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h (long_double_symbol_1): For C define again using _weak_alias, for assembler use weak_alias.
2006-01-14* math/math.h [__NO_LONG_DOUBLE_MATH] (__nldbl_nexttowardf): NewRoland McGrath
prototype. (nexttowardf): Redirect to __nldbl_nexttowardf. (nexttoward): Redirect to nextafter. (__MATHDECL_2, __MATHDECL_1): Redirect *l functions to non-*l versions if __LONG_DOUBLE_MATH_OPTIONAL and __NO_LONG_DOUBLE_MATH. * math/complex.h (__MATHDECL_1): Likewise. * math/bits/mathcalls.h (nexttoward): Don't prototype if __LDBL_COMPAT. * misc/sys/cdefs.h: Include <bits/wordsize.h>. (__LDBL_COMPAT, __LDBL_REDIR1, __LDBL_REDIR, __LDBL_REDIR1_NTH, __LDBL_REDIR_NTH, __LDBL_REDIR_DECL): New macros. * libio/bits/stdio-ldbl.h: New file. * libio/Makefile (headers): Add it. * libio/stdio.h [__LDBL_COMPAT]: #include it. * libio/bits/libio-ldbl.h: New file. * libio/Makefile (headers): Add it. * libio/libio.h [__LDBL_COMPAT]: #include it. * libio/libioP.h: Include <math_ldbl_opt.h>. * include/wchar.h (__fwprintf, __vfwprintf): Fix commented out attribute. (__vfwprintf_chk): New prototype. Add libc_hidden_proto. * wcsmbs/bits/wchar-ldbl.h: New file. * wcsmbs/Makefile (headers): Add it. * wcsmbs/wchar.h [__LDBL_COMPAT]: #include it. * wcsmbs/bits/wchar2.h (__vswprintf_alias): Removed. (vswprintf): Define as a macro rather than inline function. * stdio-common/bits/printf-ldbl.h: New file. * stdio-common/Makefile (headers): Add it. * stdio-common/printf.h [__LDBL_COMPAT]: #include it. * libio/fwprintf.c: Include libioP.h. (fwprintf): Use ldbl_weak_alias instead of weak_alias. * libio/fwscanf.c: Include libioP.h. (fwscanf): Rename to __fwscanf and add ldbl_strong_alias. * libio/iovdprintf.c (vdprintf): Use ldbl_weak_alias instead of weak_alias. * libio/iovsprintf.c (_IO_vsprintf): Rename to __IO_vsprintf, add ldbl_strong_alias and use INTDEF2 instead of INTDEF. (vsprintf): Use ldbl_weak_alias instead of weak_alias. * libio/iovsscanf.c (__vsscanf, vsscanf): Use ldbl_weak_alias instead of weak_alias. * libio/iovswscanf.c (vswscanf): Rename to __vswscanf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * libio/obprintf.c (obstack_printf, obstack_vprintf): Use ldbl_weak_alias instead of weak_alias. * libio/swprintf.c: Include libioP.h. (swprintf): Rename to __swprintf and add ldbl_strong_alias. * libio/swscanf.c: Include libioP.h. (swscanf): Rename to __swscanf and add ldbl_strong_alias. * libio/vasprintf.c (vasprintf): Use ldbl_weak_alias instead of weak_alias. * libio/vscanf.c (vscanf): Use ldbl_weak_alias instead of weak_alias. * libio/vsnprintf.c (__vsnprintf, vsnprintf): Use ldbl_weak_alias instead of weak_alias. * libio/vswprintf.c (__vswprintf): Remove alias. (vswprintf): Use ldbl_weak_alias instead of weak_alias. * libio/vwprintf.c: Include libioP.h. (vwprintf): Rename to __vwprintf and add ldbl_strong_alias. * libio/vwscanf.c (vwscanf): Rename to __vwscanf and add ldbl_strong_alias. * libio/wprintf.c: Include libioP.h. (wprintf): Rename to __wprintf and add ldbl_strong_alias. * libio/wscanf.c: Include libioP.h. (wscanf): Rename to __wscanf and add ldbl_strong_alias. * stdio-common/asprintf.c (__asprintf): Rename to ___asprintf, add ldbl_strong_alias and use INTDEF2 instead of INTDEF. (asprintf): Use ldbl_weak_alias instead of weak_alias. * stdio-common/dprintf.c (dprintf): Rename to __dprintf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * stdio-common/fprintf.c: Include libioP.h. (fprintf): Rename to __fprintf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. (_IO_fprintf): Use ldbl_weak_alias instead of weak_alias. * stdio-common/fscanf.c: Include libioP.h. (fscanf): Rename to __fscanf and add ldbl_strong_alias. * stdio-common/printf.c: Include libioP.h. (printf): Rename to __printf and add ldbl_strong_alias. (_IO_printf): Use ldbl_strong_alias instead of strong_alias. * stdio-common/printf_fp.c (__printf_fp): Rename to __printf_fp, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * stdio-common/printf_size.c (printf_size): Rename to __printf_size and add ldbl_strong_alias. * stdio-common/scanf.c (scanf): Rename to __scanf and add ldbl_strong_alias. * stdio-common/snprintf.c (snprintf): Use ldbl_weak_alias instead of weak_alias. * stdio-common/sprintf.c (sprintf): Rename to __sprintf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. (_IO_sprintf): Use ldbl_strong_alias instead of strong_alias. * stdio-common/sscanf.c: Include libioP.h instead of iolibio.h. (sscanf): Rename to __sscanf and add ldbl_strong_alias. * stdio-common/vfprintf.c (vfprintf): Define to _IO_vfprintf_internal. Use ldbl_strong_alias instead. Use ldbl_hidden_def instead of libc_hidden_def. (_IO_vfprintf_internal): Clear is_long_double if __ldbl_is_dbl, handle the argument as double if it is non-zero. (vfwprintf): Use ldbl_weak_alias instead of weak_alias. (_IO_vfprintf): Add ldbl_strong_alias. * stdio-common/vfscanf.c (_IO_vfscanf): Rename to _IO_vfscanf_internal, don't use strtold if __ldbl_is_dbl, add ldbl_strong_alias. (vfwscanf): Use ldbl_weak_alias instead of weak_alias. (__vfscanf): Rename to ___vfscanf, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. (vfscanf): Use ldbl_weak_alias instead of weak_alias. * stdio-common/vprintf.c: Include libioP.h. (vprintf): Rename to __vprintf and add ldbl_strong_alias. * debug/fprintf_chk.c (__fprintf_chk): Rename to ___fprintf_chk and add ldbl_strong_alias. * debug/printf_chk.c (__printf_chk): Rename to ___printf_chk and add ldbl_strong_alias. * debug/snprintf_chk.c: Include libioP.h. (__snprintf_chk): Rename to ___snprintf_chk and add ldbl_strong_alias. * debug/sprintf_chk.c: Include libioP.h. (__sprintf_chk): Rename to ___sprintf_chk and add ldbl_strong_alias. * debug/vfprintf_chk.c (__vfprintf_chk): Rename to ___vfprintf_chk, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * debug/vfwprintf_chk.c (__vfwprintf_chk): Add libc_hidden_def. * debug/vprintf_chk.c (__vprintf_chk): Rename to ___vprintf_chk and add ldbl_strong_alias. * debug/vsnprintf_chk.c (__vsnprintf_chk): Rename to ___vsnprintf_chk, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * debug/vsprintf_chk.c (__vsprintf_chk): Rename to ___vsprintf_chk, add ldbl_strong_alias and use ldbl_hidden_def instead of libc_hidden_def. * stdlib/stdlib.h (strtold): Don't define inline if [!__LDBL_COMPAT]. * wcsmbs/wchar.h (wcstold): Likewise. * stdlib/strtod_l.c: Include math_ldbl_opt.h. (____STRTOF_INTERNAL): Define. (INTERNAL (__STRTOF)): Rename to ____STRTOF_INTERNAL. (__STRTOF): Call ____STRTOF_INTERNAL instead. [LONG_DOUBLE_COMPAT] (strtold_l, wcstold_l, __strtold_l, __wcstold_l): Add compatibility symbols. * stdlib/strtod.c: Include math_ldbl_opt.h. [LONG_DOUBLE_COMPAT] (strtold, wcstold, __strtold_internal, __wcstold_internal): Add compatibility symbols. * stdlib/strtold.c: Include bits/wordsize.h, wchar.h. (NEW, NEW1): Define. (__new_strtold, __new_wcstold): New prototypes. (____new_strtold_internal, ____new_wcstold_internal): Likewise. Add libc_hidden_proto. (STRTOF): Define to NEW (*told). [__LONG_DOUBLE_MATH_OPTIONAL] (wcstold, strtold): Add long_double_symbol. [__LONG_DOUBLE_MATH_OPTIONAL] (__wcstold_internal, __strtold_internal): Likewise. Add libc_hidden_ver. * stdlib/bits/stdlib-ldbl.h: New file. * stdlib/Makefile (headers): Add it. * stdlib/stdlib.h [__LDBL_COMPAT]: #include it. * include/stdlib.h (ecvt_r, fcvt_r, qecvt_r, qfcvt_r): Remove libc_hidden_proto. (__ecvt, __fcvt, __gcvt, __ecvt_r, __fcvt_r, __qecvt, __qfcvt, __qgcvt, __qecvt_r, __qfcvt_r): New prototypes. * misc/efgcvt_r.c: Include shlib-compat.h. (LONG_DOUBLE_CVT): Define. (__APPEND, __APPEND2): Define. (*fcvt_r): Use __APPEND instead of APPEND. Remove libc_hidden_def. (*ecvt_r): Likewise. (cvt_symbol): Define. Use it on fcvt_r and ecvt_r. * misc/efgcvt.c: Include shlib-compat.h. (LONG_DOUBLE_CVT): Define. (__APPEND, __APPEND2): Define. (fcvt): Use __APPEND instead of APPEND. Remove libc_hidden_def. (ecvt, gcvt): Likewise. (cvt_symbol): Define. Use it on fcvt, ecvt and gcvt. * stdlib/bits/monetary-ldbl.h: New file. * stdlib/Makefile (headers): Add it. * stdlib/monetary.h [__LDBL_COMPAT]: #include it. * stdlib/strfmon.c: Include math_ldbl_opt.h. (strfmon): Rename to __strfmon and add ldbl_strong_alias. * stdlib/strfmon_l.c: Remove all traces of [!USE_IN_LIBIO]. (__vstrfmon_l): Don't set is_long_double if __ldbl_is_dbl. (__strfmon_l): Rename to ___strfmon_l and add ldbl_strong_alias. (strfmon_l): Use ldbl_weak_alias instead of weak_alias. * misc/bits/syslog-ldbl.h: New file. * misc/Makefile (headers): Add it. * misc/sys/syslog.h [__LDBL_COMPAT]: #include it. * misc/syslog.c: Include math_ldbl_opt.h. (syslog): Rename to __syslog and add ldbl_strong_alias, use ldbl_hidden_def instead of libc_hidden_def. (vsyslog): Rename to __vsyslog and add ldbl_strong_alias, use ldbl_hidden_def instead of libc_hidden_def. * sysdeps/generic/math_ldbl_opt.h: New file. * math/w_j1l.c (j1l, y1l): Rename to __ prefixed variants. Add weak_alias. * math/w_j0l.c (j0l, y0l): Likewise. * math/w_jnl.c (jnl, ynl): Likewise. * sysdeps/ieee754/ldbl-96/s_nexttoward.c (__nexttowardl): Remove strong_alias. (nexttowardl): Remove weak_alias. * sysdeps/ieee754/ldbl-96/s_erfl.c (__erfl, __erfcl): Remove strong_alias. (erfl, erfcl): Remove weak_alias. * sysdeps/ieee754/ldbl-64-128/s_asinhl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_atanl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_cbrtl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_ceill.c: New file. * sysdeps/ieee754/ldbl-64-128/s_copysignl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_cosl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_erfl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_expm1l.c: New file. * sysdeps/ieee754/ldbl-64-128/s_fabsl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_finitel.c: New file. * sysdeps/ieee754/ldbl-64-128/s_floorl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_frexpl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_ilogbl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_isinfl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_isnanl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_llrintl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_llroundl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_log1pl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_logbl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_lrintl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_lroundl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_modfl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nextafterl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nexttoward.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c: New file. * sysdeps/ieee754/ldbl-64-128/s_nexttowardfd.c: New file. * sysdeps/ieee754/ldbl-64-128/s_remquol.c: New file. * sysdeps/ieee754/ldbl-64-128/s_rintl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_roundl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_scalblnl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_scalbnl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_signbitl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_sincosl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_sinl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_tanhl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_tanl.c: New file. * sysdeps/ieee754/ldbl-64-128/s_truncl.c: New file. * sysdeps/ieee754/ldbl-64-128/strtold_l.c: New file. * sysdeps/ieee754/ldbl-64-128/w_expl.c: New file. * sysdeps/ieee754/ldbl-opt/configure.in: New file. * sysdeps/ieee754/ldbl-opt/configure: New file. * sysdeps/ieee754/ldbl-opt/Makefile: New file. * sysdeps/ieee754/ldbl-opt/Versions: New file. * sysdeps/ieee754/ldbl-opt/cabs.c: New file. * sysdeps/ieee754/ldbl-opt/cabsl.c: New file. * sysdeps/ieee754/ldbl-opt/carg.c: New file. * sysdeps/ieee754/ldbl-opt/cargl.c: New file. * sysdeps/ieee754/ldbl-opt/cimag.c: New file. * sysdeps/ieee754/ldbl-opt/cimagl.c: New file. * sysdeps/ieee754/ldbl-opt/conj.c: New file. * sysdeps/ieee754/ldbl-opt/conjl.c: New file. * sysdeps/ieee754/ldbl-opt/creal.c: New file. * sysdeps/ieee754/ldbl-opt/creall.c: New file. * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c: New file. * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: New file. * sysdeps/ieee754/ldbl-opt/nldbl-acos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-acosh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-asin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-asinh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-atan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-atan2.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-atanh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cabs.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cacos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cacosh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-carg.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-casin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-casinh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-catan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-catanh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cbrt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ccos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ccosh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ceil.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cexp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cimag.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-clog.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-clog10.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-compat.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-compat.h: New file. * sysdeps/ieee754/ldbl-opt/nldbl-conj.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-copysign.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cosh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cpow.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-cproj.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-creal.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-csin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-csinh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-csqrt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ctan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ctanh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-drem.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-erf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-erfc.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-exp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-exp10.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-exp2.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-expm1.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fabs.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fdim.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-finite.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-floor.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fma.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fmax.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fmin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fmod.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-frexp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fwprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fwprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-gamma.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-hypot.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ilogb.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-isinf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-isnan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-j0.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-j1.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-jn.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-ldexp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-lgamma.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-lgamma_r.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-llrint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-llround.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-log.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-log10.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-log1p.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-log2.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-logb.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-lrint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-lround.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-modf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nearbyint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nextafter.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nexttoward.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-nexttowardf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-pow.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-pow10.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-printf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-printf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-printf_fp.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-printf_size.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qecvt_r.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qfcvt_r.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-remainder.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-remquo.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-rint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-round.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-scalb.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-scalbln.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-scalbn.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-scanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-signbit.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-significand.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sin.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sincos.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sinh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-snprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-snprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sqrt.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strfmon.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strtold.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-strtoldint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-swprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-swprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-syslog.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-syslog_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-tan.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-tanh.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-tgamma.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-trunc.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vasprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vdprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vswprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vswprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vsyslog_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vwprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vwprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wcstold.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wcstoldint.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wprintf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wprintf_chk.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-y0.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-y1.c: New file. * sysdeps/ieee754/ldbl-opt/nldbl-yn.c: New file. * sysdeps/ieee754/ldbl-opt/s_asinh.c: New file. * sysdeps/ieee754/ldbl-opt/s_atan.c: New file. * sysdeps/ieee754/ldbl-opt/s_cacos.c: New file. * sysdeps/ieee754/ldbl-opt/s_cacosh.c: New file. * sysdeps/ieee754/ldbl-opt/s_cacoshl.c: New file. * sysdeps/ieee754/ldbl-opt/s_cacosl.c: New file. * sysdeps/ieee754/ldbl-opt/s_casin.c: New file. * sysdeps/ieee754/ldbl-opt/s_casinh.c: New file. * sysdeps/ieee754/ldbl-opt/s_casinhl.c: New file. * sysdeps/ieee754/ldbl-opt/s_casinl.c: New file. * sysdeps/ieee754/ldbl-opt/s_catan.c: New file. * sysdeps/ieee754/ldbl-opt/s_catanh.c: New file. * sysdeps/ieee754/ldbl-opt/s_catanhl.c: New file. * sysdeps/ieee754/ldbl-opt/s_catanl.c: New file. * sysdeps/ieee754/ldbl-opt/s_cbrt.c: New file. * sysdeps/ieee754/ldbl-opt/s_ccos.c: New file. * sysdeps/ieee754/ldbl-opt/s_ccosh.c: New file. * sysdeps/ieee754/ldbl-opt/s_ccoshl.c: New file. * sysdeps/ieee754/ldbl-opt/s_ccosl.c: New file. * sysdeps/ieee754/ldbl-opt/s_ceil.c: New file. * sysdeps/ieee754/ldbl-opt/s_cexp.c: New file. * sysdeps/ieee754/ldbl-opt/s_cexpl.c: New file. * sysdeps/ieee754/ldbl-opt/s_clog.c: New file. * sysdeps/ieee754/ldbl-opt/s_clog10.c: New file. * sysdeps/ieee754/ldbl-opt/s_clog10l.c: New file. * sysdeps/ieee754/ldbl-opt/s_clogl.c: New file. * sysdeps/ieee754/ldbl-opt/s_copysign.c: New file. * sysdeps/ieee754/ldbl-opt/s_cpow.c: New file. * sysdeps/ieee754/ldbl-opt/s_cpowl.c: New file. * sysdeps/ieee754/ldbl-opt/s_cproj.c: New file. * sysdeps/ieee754/ldbl-opt/s_cprojl.c: New file. * sysdeps/ieee754/ldbl-opt/s_csin.c: New file. * sysdeps/ieee754/ldbl-opt/s_csinh.c: New file. * sysdeps/ieee754/ldbl-opt/s_csinhl.c: New file. * sysdeps/ieee754/ldbl-opt/s_csinl.c: New file. * sysdeps/ieee754/ldbl-opt/s_csqrt.c: New file. * sysdeps/ieee754/ldbl-opt/s_csqrtl.c: New file. * sysdeps/ieee754/ldbl-opt/s_ctan.c: New file. * sysdeps/ieee754/ldbl-opt/s_ctanh.c: New file. * sysdeps/ieee754/ldbl-opt/s_ctanhl.c: New file. * sysdeps/ieee754/ldbl-opt/s_ctanl.c: New file. * sysdeps/ieee754/ldbl-opt/s_erf.c: New file. * sysdeps/ieee754/ldbl-opt/s_expm1.c: New file. * sysdeps/ieee754/ldbl-opt/s_fabs.c: New file. * sysdeps/ieee754/ldbl-opt/s_fdim.c: New file. * sysdeps/ieee754/ldbl-opt/s_fdiml.c: New file. * sysdeps/ieee754/ldbl-opt/s_finite.c: New file. * sysdeps/ieee754/ldbl-opt/s_floor.c: New file. * sysdeps/ieee754/ldbl-opt/s_fma.c: New file. * sysdeps/ieee754/ldbl-opt/s_fmal.c: New file. * sysdeps/ieee754/ldbl-opt/s_fmax.c: New file. * sysdeps/ieee754/ldbl-opt/s_fmaxl.c: New file. * sysdeps/ieee754/ldbl-opt/s_fmin.c: New file. * sysdeps/ieee754/ldbl-opt/s_fminl.c: New file. * sysdeps/ieee754/ldbl-opt/s_frexp.c: New file. * sysdeps/ieee754/ldbl-opt/s_ilogb.c: New file. * sysdeps/ieee754/ldbl-opt/s_isinf.c: New file. * sysdeps/ieee754/ldbl-opt/s_isnan.c: New file. * sysdeps/ieee754/ldbl-opt/s_ldexp.c: New file. * sysdeps/ieee754/ldbl-opt/s_ldexpl.c: New file. * sysdeps/ieee754/ldbl-opt/s_llrint.c: New file. * sysdeps/ieee754/ldbl-opt/s_llround.c: New file. * sysdeps/ieee754/ldbl-opt/s_log1p.c: New file. * sysdeps/ieee754/ldbl-opt/s_logb.c: New file. * sysdeps/ieee754/ldbl-opt/s_lrint.c: New file. * sysdeps/ieee754/ldbl-opt/s_lround.c: New file. * sysdeps/ieee754/ldbl-opt/s_modf.c: New file. * sysdeps/ieee754/ldbl-opt/s_nan.c: New file. * sysdeps/ieee754/ldbl-opt/s_nanl.c: New file. * sysdeps/ieee754/ldbl-opt/s_nearbyint.c: New file. * sysdeps/ieee754/ldbl-opt/s_nextafter.c: New file. * sysdeps/ieee754/ldbl-opt/s_remquo.c: New file. * sysdeps/ieee754/ldbl-opt/s_rint.c: New file. * sysdeps/ieee754/ldbl-opt/s_round.c: New file. * sysdeps/ieee754/ldbl-opt/s_scalbln.c: New file. * sysdeps/ieee754/ldbl-opt/s_scalbn.c: New file. * sysdeps/ieee754/ldbl-opt/s_significand.c: New file. * sysdeps/ieee754/ldbl-opt/s_significandl.c: New file. * sysdeps/ieee754/ldbl-opt/s_sin.c: New file. * sysdeps/ieee754/ldbl-opt/s_sincos.c: New file. * sysdeps/ieee754/ldbl-opt/s_tan.c: New file. * sysdeps/ieee754/ldbl-opt/s_tanh.c: New file. * sysdeps/ieee754/ldbl-opt/s_trunc.c: New file. * sysdeps/ieee754/ldbl-opt/w_acos.c: New file. * sysdeps/ieee754/ldbl-opt/w_acosh.c: New file. * sysdeps/ieee754/ldbl-opt/w_acoshl.c: New file. * sysdeps/ieee754/ldbl-opt/w_acosl.c: New file. * sysdeps/ieee754/ldbl-opt/w_asin.c: New file. * sysdeps/ieee754/ldbl-opt/w_asinl.c: New file. * sysdeps/ieee754/ldbl-opt/w_atan2.c: New file. * sysdeps/ieee754/ldbl-opt/w_atan2l.c: New file. * sysdeps/ieee754/ldbl-opt/w_atanh.c: New file. * sysdeps/ieee754/ldbl-opt/w_atanhl.c: New file. * sysdeps/ieee754/ldbl-opt/w_cosh.c: New file. * sysdeps/ieee754/ldbl-opt/w_coshl.c: New file. * sysdeps/ieee754/ldbl-opt/w_drem.c: New file. * sysdeps/ieee754/ldbl-opt/w_dreml.c: New file. * sysdeps/ieee754/ldbl-opt/w_exp.c: New file. * sysdeps/ieee754/ldbl-opt/w_exp10.c: New file. * sysdeps/ieee754/ldbl-opt/w_exp10l.c: New file. * sysdeps/ieee754/ldbl-opt/w_fmod.c: New file. * sysdeps/ieee754/ldbl-opt/w_fmodl.c: New file. * sysdeps/ieee754/ldbl-opt/w_hypot.c: New file. * sysdeps/ieee754/ldbl-opt/w_hypotl.c: New file. * sysdeps/ieee754/ldbl-opt/w_j0.c: New file. * sysdeps/ieee754/ldbl-opt/w_j0l.c: New file. * sysdeps/ieee754/ldbl-opt/w_j1.c: New file. * sysdeps/ieee754/ldbl-opt/w_j1l.c: New file. * sysdeps/ieee754/ldbl-opt/w_jn.c: New file. * sysdeps/ieee754/ldbl-opt/w_jnl.c: New file. * sysdeps/ieee754/ldbl-opt/w_lgamma.c: New file. * sysdeps/ieee754/ldbl-opt/w_lgamma_r.c: New file. * sysdeps/ieee754/ldbl-opt/w_lgammal.c: New file. * sysdeps/ieee754/ldbl-opt/w_lgammal_r.c: New file. * sysdeps/ieee754/ldbl-opt/w_log.c: New file. * sysdeps/ieee754/ldbl-opt/w_log10.c: New file. * sysdeps/ieee754/ldbl-opt/w_log10l.c: New file. * sysdeps/ieee754/ldbl-opt/w_log2.c: New file. * sysdeps/ieee754/ldbl-opt/w_log2l.c: New file. * sysdeps/ieee754/ldbl-opt/w_logl.c: New file. * sysdeps/ieee754/ldbl-opt/w_pow.c: New file. * sysdeps/ieee754/ldbl-opt/w_powl.c: New file. * sysdeps/ieee754/ldbl-opt/w_remainder.c: New file. * sysdeps/ieee754/ldbl-opt/w_remainderl.c: New file. * sysdeps/ieee754/ldbl-opt/w_scalb.c: New file. * sysdeps/ieee754/ldbl-opt/w_scalbl.c: New file. * sysdeps/ieee754/ldbl-opt/w_sinh.c: New file. * sysdeps/ieee754/ldbl-opt/w_sinhl.c: New file. * sysdeps/ieee754/ldbl-opt/w_sqrt.c: New file. * sysdeps/ieee754/ldbl-opt/w_sqrtl.c: New file. * sysdeps/ieee754/ldbl-opt/w_tgamma.c: New file. * sysdeps/ieee754/ldbl-opt/w_tgammal.c: New file. * sysdeps/unix/sysv/linux/sparc/bits/wordsize.h: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/Implies: New file. * sysdeps/sparc/sparc32/Implies: Move ldbl-128 first and flt-32 after dbl-64. * sysdeps/unix/sysv/linux/sparc/sparc32/Versions (NLDBL_VERSION): %define this to to GLIBC_2.4. * sysdeps/sparc/sparc32/fpu/e_sqrtl.c: New file. * sysdeps/sparc/sparc32/fpu/s_fabs.c: New file. * sysdeps/sparc/sparc32/fpu/s_fabsf.S: New file. * sysdeps/sparc/sparc32/fpu/s_fabsl.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_qtoui.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_qtoux.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_qtox.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_uitoq.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_uxtoq.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_xtoq.c: Removed. * sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_qtoll.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_qtou.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_qtoull.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: New file. * sysdeps/sparc/sparc32/soft-fp/q_utoq.c: New file. * sysdeps/sparc/sparc32/soft-fp/Versions: New file. * sysdeps/sparc/fpu/bits/mathinline.h (__unordered_cmp, __unordered_v9cmp): Define differently depending on -m32 -mlong-double-{64,128}. (__signbitl, sqrtl, __ieee754_sqrtl): New inlines. * sysdeps/sparc/fpu/bits/mathdef.h (__NO_LONG_DOUBLE_MATH): Remove. * sysdeps/sparc/sparc32/soft-fp/Makefile (sparc32-quad-routines): Set. (sysdep-routines): Add sparc32-quad-routines. * sysdeps/sparc/sparc32/soft-fp/sfp-machine.h: Include stdlib.h. (FP_HANDLE_EXCEPTIONS): Call ___Q_simulate_exceptions as a normal function. * sysdeps/sparc/sparc32/soft-fp/q_sqrt.c (__ieee754_sqrtl): New alias to _Q_sqrt. * sysdeps/sparc/sparc32/soft-fp/q_div.c (_Q_div): Fix a typo. * sysdeps/sparc/sparc64/soft-fp/sfp-machine.h: Include stdlib.h. * sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update. * libio/libio.h (_IO_vfscanf, _IO_vfprintf): Remove __THROW. (_IO_vfwscanf, _IO_vfwprintf): Likewise. * libio/libioP.h (_IO_vdprintf): Likewise.
2004-12-22(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper
2007-07-122.5-18.1Jakub Jelinek