* math/math.h [__NO_LONG_DOUBLE_MATH] (__nldbl_nexttowardf): New

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.
This commit is contained in:
Roland McGrath 2006-01-14 12:10:44 +00:00
parent 7f943f4be2
commit c6251f036c
461 changed files with 6063 additions and 399 deletions

611
ChangeLog
View file

@ -1,3 +1,614 @@
2006-01-14 Jakub Jelinek <jakub@redhat.com>
* math/math.h [__NO_LONG_DOUBLE_MATH] (__nldbl_nexttowardf): New
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.
2006-01-13 Richard Henderson <rth@redhat.com>
* sysdeps/unix/sysv/linux/alpha/sysdep.h (PTR_MANGLE, PTR_MANGLE2,

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -24,7 +24,7 @@
/* Write formatted output to FP from the format string FORMAT. */
int
__fprintf_chk (FILE *fp, int flag, const char *format, ...)
___fprintf_chk (FILE *fp, int flag, const char *format, ...)
{
va_list ap;
int done;
@ -43,3 +43,4 @@ __fprintf_chk (FILE *fp, int flag, const char *format, ...)
return done;
}
ldbl_strong_alias (___fprintf_chk, __fprintf_chk)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -24,7 +24,7 @@
/* Write formatted output to stdout from the format string FORMAT. */
int
__printf_chk (int flag, const char *format, ...)
___printf_chk (int flag, const char *format, ...)
{
va_list ap;
int done;
@ -43,3 +43,4 @@ __printf_chk (int flag, const char *format, ...)
return done;
}
ldbl_strong_alias (___printf_chk, __printf_chk)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991, 1995, 1997, 1998, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1997, 1998, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
@ -24,8 +26,8 @@
string FORMAT, writing no more than MAXLEN characters. */
/* VARARGS5 */
int
__snprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
const char *format, ...)
___snprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
const char *format, ...)
{
va_list arg;
int done;
@ -36,3 +38,4 @@ __snprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
return done;
}
ldbl_strong_alias (___snprintf_chk, __snprintf_chk)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991,1995,1997,1998,2002,2004 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1997, 1998, 2002, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,13 +17,14 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
/* Write formatted output into S, according to the format string FORMAT. */
/* VARARGS4 */
int
__sprintf_chk (char *s, int flags, size_t slen, const char *format, ...)
___sprintf_chk (char *s, int flags, size_t slen, const char *format, ...)
{
va_list arg;
int done;
@ -33,3 +35,4 @@ __sprintf_chk (char *s, int flags, size_t slen, const char *format, ...)
return done;
}
ldbl_strong_alias (___sprintf_chk, __sprintf_chk)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004, 2005
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -24,7 +24,7 @@
/* Write formatted output to FP from the format string FORMAT. */
int
__vfprintf_chk (FILE *fp, int flag, const char *format, va_list ap)
___vfprintf_chk (FILE *fp, int flag, const char *format, va_list ap)
{
int done;
@ -40,4 +40,5 @@ __vfprintf_chk (FILE *fp, int flag, const char *format, va_list ap)
return done;
}
libc_hidden_def (__vfprintf_chk)
ldbl_hidden_def (___vfprintf_chk, __vfprintf_chk)
ldbl_strong_alias (___vfprintf_chk, __vfprintf_chk)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004, 2005
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -40,3 +40,4 @@ __vfwprintf_chk (FILE *fp, int flag, const wchar_t *format, va_list ap)
return done;
}
libc_hidden_def (__vfwprintf_chk)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -24,7 +24,7 @@
/* Write formatted output to stdout from the format string FORMAT. */
int
__vprintf_chk (int flag, const char *format, va_list ap)
___vprintf_chk (int flag, const char *format, va_list ap)
{
int done;
@ -40,3 +40,4 @@ __vprintf_chk (int flag, const char *format, va_list ap)
return done;
}
ldbl_strong_alias (___vprintf_chk, __vprintf_chk)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991, 1995, 1997, 1998, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1997, 1998, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -27,8 +28,8 @@ extern const struct _IO_jump_t _IO_strn_jumps attribute_hidden;
string FORMAT, writing no more than MAXLEN characters. */
/* VARARGS5 */
int
__vsnprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
const char *format, va_list args)
___vsnprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
const char *format, va_list args)
{
/* XXX Maybe for less strict version do not fail immediately.
Though, maxlen is supposed to be the size of buffer pointed
@ -67,4 +68,5 @@ __vsnprintf_chk (char *s, size_t maxlen, int flags, size_t slen,
*sf.f._sbf._f._IO_write_ptr = '\0';
return ret;
}
libc_hidden_def (__vsnprintf_chk)
ldbl_hidden_def (___vsnprintf_chk, __vsnprintf_chk)
ldbl_strong_alias (___vsnprintf_chk, __vsnprintf_chk)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1994, 1997, 1999-2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1997, 1999-2003, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -61,8 +62,8 @@ static const struct _IO_jump_t _IO_str_chk_jumps =
int
__vsprintf_chk (char *s, int flags, size_t slen, const char *format,
va_list args)
___vsprintf_chk (char *s, int flags, size_t slen, const char *format,
va_list args)
{
_IO_strfile f;
int ret;
@ -88,4 +89,5 @@ __vsprintf_chk (char *s, int flags, size_t slen, const char *format,
*f._sbf._f._IO_write_ptr = '\0';
return ret;
}
libc_hidden_def (__vsprintf_chk)
ldbl_hidden_def (___vsprintf_chk, __vsprintf_chk)
ldbl_strong_alias (___vsprintf_chk, __vsprintf_chk)

View file

@ -25,10 +25,6 @@ libc_hidden_proto (abort)
libc_hidden_proto (getenv)
libc_hidden_proto (bsearch)
libc_hidden_proto (qsort)
libc_hidden_proto (ecvt_r)
libc_hidden_proto (fcvt_r)
libc_hidden_proto (qecvt_r)
libc_hidden_proto (qfcvt_r)
libc_hidden_proto (lrand48_r)
libc_hidden_proto (wctomb)
libc_hidden_proto (__secure_getenv)
@ -186,6 +182,28 @@ __NTH (__strtoull_l (__const char * __restrict __nptr,
return ____strtoull_l_internal (__nptr, __endptr, __base, 0, __loc);
}
extern char *__ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign);
extern char *__fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign);
extern char *__gcvt (double __value, int __ndigit, char *__buf);
extern int __ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len);
extern int __fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len);
extern char *__qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign);
extern char *__qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign);
extern char *__qgcvt (long double __value, int __ndigit, char *__buf);
extern int __qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len);
extern int __qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len);
# ifndef NOT_IN_libc
# undef MB_CUR_MAX

View file

@ -107,18 +107,21 @@ extern int __vswprintf (wchar_t *__restrict __s, size_t __n,
/* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
extern int __fwprintf (__FILE *__restrict __s,
__const wchar_t *__restrict __format, ...)
/* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
/* __attribute__ ((__format__ (__wprintf__, 2, 3))) */;
extern int __vfwprintf (__FILE *__restrict __s,
__const wchar_t *__restrict __format,
__gnuc_va_list __arg)
/* __attribute__ ((__format__ (__wprintf__, 2, 0))) */;
extern int __vfwprintf_chk (FILE *__restrict __s, int __flag,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
/* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
extern int __vswprintf_chk (wchar_t *__restrict __s, size_t __n,
int __flag, size_t __s_len,
__const wchar_t *__restrict __format,
__gnuc_va_list __arg)
/* __attribute__ ((__format__ (__wprintf__, 5, 0))) */;
libc_hidden_proto (__vfwprintf_chk)
libc_hidden_proto (__vswprintf_chk)
/* Internal functions. */

View file

@ -1,4 +1,4 @@
# Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
# Copyright (C) 1995-2002,2003,2004,2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@ -22,7 +22,7 @@
subdir := libio
headers := stdio.h libio.h _G_config.h bits/stdio.h bits/stdio-lock.h \
bits/sys_errlist.h bits/stdio2.h
bits/sys_errlist.h bits/stdio2.h bits/stdio-ldbl.h bits/libio-ldbl.h
routines := \
filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \

27
libio/bits/libio-ldbl.h Normal file
View file

@ -0,0 +1,27 @@
/* -mlong-double-64 compatibility mode for libio functions.
Copyright (C) 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _IO_STDIO_H
# error "Never include <bits/libio-ldbl.h> directly; use <libio.h> instead."
#endif
__LDBL_REDIR_DECL (_IO_vfscanf)
__LDBL_REDIR_DECL (_IO_vfprintf)
__LDBL_REDIR_DECL (_IO_vfwscanf)
__LDBL_REDIR_DECL (_IO_vfwprintf)

70
libio/bits/stdio-ldbl.h Normal file
View file

@ -0,0 +1,70 @@
/* -mlong-double-64 compatibility mode for stdio functions.
Copyright (C) 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _STDIO_H
# error "Never include <bits/stdio-ldbl.h> directly; use <stdio.h> instead."
#endif
__BEGIN_NAMESPACE_STD
__LDBL_REDIR_DECL (fprintf)
__LDBL_REDIR_DECL (printf)
__LDBL_REDIR_DECL (sprintf)
__LDBL_REDIR_DECL (vfprintf)
__LDBL_REDIR_DECL (vprintf)
__LDBL_REDIR_DECL (vsprintf)
__LDBL_REDIR_DECL (fscanf)
__LDBL_REDIR_DECL (scanf)
__LDBL_REDIR_DECL (sscanf)
__END_NAMESPACE_STD
#if defined __USE_BSD || defined __USE_ISOC99 || defined __USE_UNIX98
__BEGIN_NAMESPACE_C99
__LDBL_REDIR_DECL (snprintf)
__LDBL_REDIR_DECL (vsnprintf)
__END_NAMESPACE_C99
#endif
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
__LDBL_REDIR_DECL (vfscanf)
__LDBL_REDIR_DECL (vsscanf)
__LDBL_REDIR_DECL (vscanf)
__END_NAMESPACE_C99
#endif
#ifdef __USE_GNU
__LDBL_REDIR_DECL (vdprintf)
__LDBL_REDIR_DECL (dprintf)
__LDBL_REDIR_DECL (vasprintf)
__LDBL_REDIR_DECL (__asprintf)
__LDBL_REDIR_DECL (asprintf)
__LDBL_REDIR_DECL (obstack_printf)
__LDBL_REDIR_DECL (obstack_vprintf)
#endif
#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
__LDBL_REDIR_DECL (__sprintf_chk)
__LDBL_REDIR_DECL (__vsprintf_chk)
# if __USE_FORTIFY_LEVEL > 1
__LDBL_REDIR_DECL (__fprintf_chk)
__LDBL_REDIR_DECL (__printf_chk)
__LDBL_REDIR_DECL (__vfprintf_chk)
__LDBL_REDIR_DECL (__vprintf_chk)
# endif
#endif

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991, 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1997, 1999, 2000, 2001, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
#include <wchar.h>
@ -35,4 +37,4 @@ __fwprintf (FILE *stream, const wchar_t *format, ...)
return done;
}
weak_alias (__fwprintf, fwprintf)
ldbl_weak_alias (__fwprintf, fwprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1997, 1999, 2000 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1997, 1999, 2000, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,6 +16,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
#include <wchar.h>
@ -23,7 +24,7 @@
/* Read formatted input from STREAM according to the format string FORMAT. */
/* VARARGS2 */
int
fwscanf (FILE *stream, const wchar_t *format, ...)
__fwscanf (FILE *stream, const wchar_t *format, ...)
{
va_list arg;
int done;
@ -34,3 +35,4 @@ fwscanf (FILE *stream, const wchar_t *format, ...)
return done;
}
ldbl_strong_alias (__fwscanf, fwscanf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1995,1997-2000,2001,2002,2003 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1997-2000, 2001, 2002, 2003, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -25,7 +26,7 @@
This exception applies to code released by its copyright holders
in files containing the exception. */
#include "libioP.h"
#include <libioP.h>
#include <stdio_ext.h>
int
@ -63,7 +64,4 @@ _IO_vdprintf (d, format, arg)
return done;
}
#ifdef weak_alias
weak_alias (_IO_vdprintf, vdprintf)
#endif
ldbl_weak_alias (_IO_vdprintf, vdprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1997-2003 Free Software Foundation, Inc.
/* Copyright (C) 1993, 1997-2003, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -29,10 +29,7 @@
#include "strfile.h"
int
_IO_vsprintf (string, format, args)
char *string;
const char *format;
_IO_va_list args;
__IO_vsprintf (char *string, const char *format, _IO_va_list args)
{
_IO_strfile sf;
int ret;
@ -47,8 +44,7 @@ _IO_vsprintf (string, format, args)
_IO_putc_unlocked ('\0', (_IO_FILE *) &sf._sbf);
return ret;
}
INTDEF(_IO_vsprintf)
INTDEF2(__IO_vsprintf, _IO_vsprintf)
#ifdef weak_alias
weak_alias (_IO_vsprintf, vsprintf)
#endif
ldbl_strong_alias (__IO_vsprintf, _IO_vsprintf)
ldbl_weak_alias (__IO_vsprintf, vsprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1997-2003 Free Software Foundation, Inc.
/* Copyright (C) 1993, 1997-2003, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -45,8 +45,5 @@ _IO_vsscanf (string, format, args)
ret = INTUSE(_IO_vfscanf) ((_IO_FILE *) &sf._sbf, format, args, NULL);
return ret;
}
#ifdef weak_alias
weak_alias (_IO_vsscanf, __vsscanf)
weak_alias (_IO_vsscanf, vsscanf)
#endif
ldbl_weak_alias (_IO_vsscanf, __vsscanf)
ldbl_weak_alias (_IO_vsscanf, vsscanf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1993, 1997-2000, 2001, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1993, 1997-2000, 2001, 2002, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -30,10 +31,7 @@
#include <wchar.h>
int
vswscanf (string, format, args)
const wchar_t *string;
const wchar_t *format;
_IO_va_list args;
__vswscanf (const wchar_t *string, const wchar_t *format, _IO_va_list args)
{
int ret;
_IO_strfile sf;
@ -47,4 +45,5 @@ vswscanf (string, format, args)
ret = _IO_vfwscanf ((_IO_FILE *) &sf._sbf, format, args, NULL);
return ret;
}
libc_hidden_def (vswscanf)
ldbl_hidden_def (__vswscanf, vswscanf)
ldbl_strong_alias (__vswscanf, vswscanf)

View file

@ -534,6 +534,10 @@ extern _IO_ssize_t _IO_wpadn (_IO_FILE *, wint_t, _IO_ssize_t) __THROW;
extern void _IO_free_wbackup_area (_IO_FILE *) __THROW;
#endif
#ifdef __LDBL_COMPAT
# include <bits/libio-ldbl.h>
#endif
#ifdef __cplusplus
}
#endif

View file

@ -1,5 +1,5 @@
/* Copyright (C) 1993, 1997-2003, 2004, 2005, 2006
Free Software Foundation, Inc.
/* Copyright (C) 1993, 1997-2003,2004,2005,2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -36,6 +36,8 @@
/*# include <comthread.h>*/
#endif
#include <math_ldbl_opt.h>
#include "iolibio.h"
/* Control of exported symbols. Used in glibc. By default we don't

View file

@ -1,5 +1,5 @@
/* Print output of stream to given obstack.
Copyright (C) 1996,1997,1999,2000,2001,2002,2003,2004,2005
Copyright (C) 1996,1997,1999,2000,2001,2002,2003,2004,2005,2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -176,9 +176,7 @@ _IO_obstack_vprintf (struct obstack *obstack, const char *format, va_list args)
return result;
}
#ifdef weak_alias
weak_alias (_IO_obstack_vprintf, obstack_vprintf)
#endif
ldbl_weak_alias (_IO_obstack_vprintf, obstack_vprintf)
int
@ -191,6 +189,4 @@ _IO_obstack_printf (struct obstack *obstack, const char *format, ...)
va_end (ap);
return result;
}
#ifdef weak_alias
weak_alias (_IO_obstack_printf, obstack_printf)
#endif
ldbl_weak_alias (_IO_obstack_printf, obstack_printf)

View file

@ -836,6 +836,9 @@ extern void funlockfile (FILE *__stream) __THROW;
#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
# include <bits/stdio2.h>
#endif
#ifdef __LDBL_COMPAT
# include <bits/stdio-ldbl.h>
#endif
__END_DECLS

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003
/* Copyright (C) 1991,1995,1997,1998,1999,2000,2003,2004,2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -17,13 +17,14 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <wchar.h>
/* Write formatted output into S, according to the format string FORMAT. */
/* VARARGS3 */
int
swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
__swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
{
va_list arg;
int done;
@ -34,3 +35,4 @@ swprintf (wchar_t *s, size_t n, const wchar_t *format, ...)
return done;
}
ldbl_strong_alias (__swprintf, swprintf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991,1995,1996,1998,1999,2003 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996, 1998, 1999, 2003, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,13 +17,14 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <wchar.h>
/* Read formatted input from S, according to the format string FORMAT. */
/* VARARGS2 */
int
swscanf (const wchar_t *s, const wchar_t *format, ...)
__swscanf (const wchar_t *s, const wchar_t *format, ...)
{
va_list arg;
int done;
@ -33,3 +35,4 @@ swscanf (const wchar_t *s, const wchar_t *format, ...)
return done;
}
ldbl_strong_alias (__swscanf, swscanf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995,1997,1999-2002,2004 Free Software Foundation, Inc.
/* Copyright (C) 1995,1997,1999-2002,2004,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -87,7 +87,4 @@ _IO_vasprintf (result_ptr, format, args)
(*result_ptr)[needed - 1] = '\0';
return ret;
}
#ifdef weak_alias
weak_alias (_IO_vasprintf, vasprintf)
#endif
ldbl_weak_alias (_IO_vasprintf, vasprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1997, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1993, 1997, 2002, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -37,7 +37,4 @@ _IO_vscanf (format, args)
{
return INTUSE(_IO_vfscanf) (_IO_stdin, format, args, NULL);
}
#ifdef weak_alias
weak_alias (_IO_vscanf, vscanf)
#endif
ldbl_weak_alias (_IO_vscanf, vscanf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1994,1997,1999-2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1994,1997,1999-2003, 2004, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -123,8 +123,5 @@ _IO_vsnprintf (string, maxlen, format, args)
*sf.f._sbf._f._IO_write_ptr = '\0';
return ret;
}
#ifdef weak_alias
weak_alias (_IO_vsnprintf, __vsnprintf)
weak_alias (_IO_vsnprintf, vsnprintf)
#endif
ldbl_weak_alias (_IO_vsnprintf, __vsnprintf)
ldbl_weak_alias (_IO_vsnprintf, vsnprintf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1994,1997,1999-2002,2004,2005 Free Software Foundation, Inc.
/* Copyright (C) 1994, 1997, 1999-2002, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -126,8 +127,5 @@ _IO_vswprintf (string, maxlen, format, args)
return ret;
}
#ifdef weak_alias
weak_alias (_IO_vswprintf, __vswprintf)
weak_alias (_IO_vswprintf, vswprintf)
#endif
ldbl_weak_alias (_IO_vswprintf, vswprintf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991,1993,1995,1997,1999,2001 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1993, 1995, 1997, 1999, 2001, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
#include <wchar.h>
@ -23,9 +25,8 @@
/* Write formatted output to stdout according to the
format string FORMAT, using the argument list in ARG. */
int
vwprintf (format, arg)
const wchar_t *format;
__gnuc_va_list arg;
__vwprintf (const wchar_t *format, __gnuc_va_list arg)
{
return __vfwprintf (stdout, format, arg);
}
ldbl_strong_alias (__vwprintf, vwprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1997, 1999 Free Software Foundation, Inc.
/* Copyright (C) 1993, 1997, 1999, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -29,9 +29,8 @@
#include <wchar.h>
int
vwscanf (format, args)
const wchar_t *format;
_IO_va_list args;
__vwscanf (const wchar_t *format, _IO_va_list args)
{
return _IO_vfwscanf (_IO_stdin, format, args, NULL);
}
ldbl_strong_alias (__vwscanf, vwscanf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991,1995,1996,1997,1999,2001 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996, 1997, 1999, 2001, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
#include <wchar.h>
@ -23,7 +25,7 @@
/* Write formatted output to stdout from the format string FORMAT. */
/* VARARGS1 */
int
wprintf (const wchar_t *format, ...)
__wprintf (const wchar_t *format, ...)
{
va_list arg;
int done;
@ -34,3 +36,4 @@ wprintf (const wchar_t *format, ...)
return done;
}
ldbl_strong_alias (__wprintf, wprintf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1996, 1997, 1999, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
#include <wchar.h>
@ -24,7 +26,7 @@
/* Read formatted input from stdin according to the format string FORMAT. */
/* VARARGS1 */
int
wscanf (const wchar_t *format, ...)
__wscanf (const wchar_t *format, ...)
{
va_list arg;
int done;
@ -35,3 +37,4 @@ wscanf (const wchar_t *format, ...)
return done;
}
ldbl_strong_alias (__wscanf, wscanf)

View file

@ -1,5 +1,5 @@
/* Prototype declarations for math functions; helper file for <math.h>.
Copyright (C) 1996-2002, 2003 Free Software Foundation, Inc.
Copyright (C) 1996-2002, 2003, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -281,7 +281,7 @@ __MATHCALL (rint,, (_Mdouble_ __x));
/* Return X + epsilon if X < Y, X - epsilon if X > Y. */
__MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
# ifdef __USE_ISOC99
# if defined __USE_ISOC99 && !defined __LDBL_COMPAT
__MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__));
# endif

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
/* Copyright (C) 1997, 1998, 1999, 2000, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -84,7 +84,14 @@ __BEGIN_DECLS
/* And the long double versions. It is non-critical to define them
here unconditionally since `long double' is required in ISO C99. */
#if __STDC__ - 0 || __GNUC__ - 0 && !defined __NO_LONG_DOUBLE_MATH
#if (__STDC__ - 0 || __GNUC__ - 0) \
&& (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT)
# ifdef __LDBL_COMPAT
# undef __MATHDECL_1
# define __MATHDECL_1(type, function, args) \
extern type __REDIRECT(__MATH_PRECNAME(function), args, function) __THROW
# endif
# ifndef _Mlong_double_
# define _Mlong_double_ long double
# endif

View file

@ -1,5 +1,6 @@
/* Declarations for math functions.
Copyright (C) 1991-1993,1995-1999,2001,2002,2004 Free Software Foundation, Inc.
Copyright (C) 1991-1993, 1995-1999, 2001, 2002, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -96,10 +97,33 @@ __BEGIN_DECLS
# undef _Mdouble_END_NAMESPACE
# undef __MATH_PRECNAME
# if (__STDC__ - 0 || __GNUC__ - 0) && !defined __NO_LONG_DOUBLE_MATH
# if (__STDC__ - 0 || __GNUC__ - 0) \
&& (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT)
# ifdef __LDBL_COMPAT
# ifdef __USE_ISOC99
extern float __nldbl_nexttowardf (float __x, long double __y)
__attribute__ ((__const__)) __THROW;
# ifdef __REDIRECT_NTH
extern float __REDIRECT_NTH (nexttowardf, (float __x, long double __y),
__nldbl_nexttowardf)
__attribute__ ((__const__));
extern double __REDIRECT_NTH (nexttoward, (double __x, long double __y),
nextafter) __attribute__ ((__const__));
# endif
# endif
/* Include the file of declarations again, this time using `long double'
instead of `double' and appending l to each function name. */
# undef __MATHDECL_1
# define __MATHDECL_2(type, function,suffix, args, alias) \
extern type __REDIRECT(__MATH_PRECNAME(function,suffix), \
args, alias) __THROW
# define __MATHDECL_1(type, function,suffix, args) \
__MATHDECL_2(type, function,suffix, args, __CONCAT(function,suffix))
# endif
# ifndef _Mlong_double_
# define _Mlong_double_ long double
# endif

View file

@ -26,9 +26,9 @@ static char rcsid[] = "$NetBSD: $";
#include "math_private.h"
#ifdef __STDC__
long double j0l(long double x) /* wrapper j0l */
long double __j0l(long double x) /* wrapper j0l */
#else
long double j0l(x) /* wrapper j0 */
long double __j0l(x) /* wrapper j0 */
long double x;
#endif
{
@ -43,11 +43,12 @@ static char rcsid[] = "$NetBSD: $";
return z;
#endif
}
weak_alias (__j0l, j0l)
#ifdef __STDC__
long double y0l(long double x) /* wrapper y0l */
long double __y0l(long double x) /* wrapper y0l */
#else
long double y0l(x) /* wrapper y0 */
long double __y0l(x) /* wrapper y0 */
long double x;
#endif
{
@ -71,3 +72,5 @@ static char rcsid[] = "$NetBSD: $";
return z;
#endif
}
weak_alias (__y0l, y0l)

View file

@ -26,9 +26,9 @@ static char rcsid[] = "$NetBSD: $";
#include "math_private.h"
#ifdef __STDC__
long double j1l(long double x) /* wrapper j1l */
long double __j1l(long double x) /* wrapper j1l */
#else
long double j1l(x) /* wrapper j1l */
long double __j1l(x) /* wrapper j1l */
long double x;
#endif
{
@ -44,11 +44,12 @@ static char rcsid[] = "$NetBSD: $";
return z;
#endif
}
weak_alias (__j1l, j1l)
#ifdef __STDC__
long double y1l(long double x) /* wrapper y1l */
long double __y1l(long double x) /* wrapper y1l */
#else
long double y1l(x) /* wrapper y1l */
long double __y1l(x) /* wrapper y1l */
long double x;
#endif
{
@ -72,3 +73,4 @@ static char rcsid[] = "$NetBSD: $";
return z;
#endif
}
weak_alias (__y1l, y1l)

View file

@ -48,9 +48,9 @@ static char rcsid[] = "$NetBSD: $";
#include "math_private.h"
#ifdef __STDC__
long double jnl(int n, long double x) /* wrapper jnl */
long double __jnl(int n, long double x) /* wrapper jnl */
#else
long double jnl(n,x) /* wrapper jnl */
long double __jnl(n,x) /* wrapper jnl */
long double x; int n;
#endif
{
@ -66,11 +66,12 @@ static char rcsid[] = "$NetBSD: $";
return z;
#endif
}
weak_alias (__jnl, jnl)
#ifdef __STDC__
long double ynl(int n, long double x) /* wrapper ynl */
long double __ynl(int n, long double x) /* wrapper ynl */
#else
long double ynl(n,x) /* wrapper ynl */
long double __ynl(n,x) /* wrapper ynl */
long double x; int n;
#endif
{
@ -94,3 +95,4 @@ static char rcsid[] = "$NetBSD: $";
return z;
#endif
}
weak_alias (__ynl, ynl)

View file

@ -1,4 +1,4 @@
# Copyright (C) 1991-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# Copyright (C) 1991-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@ -25,11 +25,12 @@ subdir := misc
headers := sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \
sys/ptrace.h sys/file.h sys/dir.h sys/cdefs.h \
ar.h a.out.h libgen.h stab.h bits/stab.def sgtty.h \
ttyent.h syslog.h sys/syslog.h paths.h sys/reboot.h \
ttyent.h paths.h sys/reboot.h \
sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \
sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \
sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \
regexp.h bits/select.h bits/mman.h sys/xattr.h bits/syslog.h
regexp.h bits/select.h bits/mman.h sys/xattr.h \
syslog.h sys/syslog.h bits/syslog.h bits/syslog-ldbl.h
routines := brk sbrk sstk ioctl \
readv writev \

25
misc/bits/syslog-ldbl.h Normal file
View file

@ -0,0 +1,25 @@
/* -mlong-double-64 compatibility mode for syslog functions.
Copyright (C) 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _SYS_SYSLOG_H
# error "Never include <bits/syslog-ldbl.h> directly; use <sys/syslog.h> instead."
#endif
__LDBL_REDIR_DECL (syslog)
__LDBL_REDIR_DECL (vsyslog)

View file

@ -1,5 +1,6 @@
/* Compatibility functions for floating point formatting.
Copyright (C) 1995, 1996, 1997, 1999, 2002 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997, 1999, 2002, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -23,6 +24,7 @@
#include <sys/param.h>
#include <float.h>
#include <bits/libc-lock.h>
#include <shlib-compat.h>
#ifndef FLOAT_TYPE
# define FLOAT_TYPE double
@ -44,10 +46,14 @@
# error "NDIGIT_MAX must be precomputed"
# define NDIGIT_MAX (lrint (ceil (M_LN2 / M_LN10 * DBL_MANT_DIG + 1.0)))
# endif
#else
# define LONG_DOUBLE_CVT
#endif
#define APPEND(a, b) APPEND2 (a, b)
#define APPEND2(a, b) a##b
#define __APPEND(a, b) __APPEND2 (a, b)
#define __APPEND2(a, b) __##a##b
#define FCVT_BUFFER APPEND (FUNC_PREFIX, fcvt_buffer)
@ -60,14 +66,14 @@ static char ECVT_BUFFER[MAXDIG];
libc_freeres_ptr (static char *FCVT_BUFPTR);
char *
APPEND (FUNC_PREFIX, fcvt) (value, ndigit, decpt, sign)
__APPEND (FUNC_PREFIX, fcvt) (value, ndigit, decpt, sign)
FLOAT_TYPE value;
int ndigit, *decpt, *sign;
{
if (FCVT_BUFPTR == NULL)
{
if (APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign,
FCVT_BUFFER, MAXDIG) != -1)
if (__APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign,
FCVT_BUFFER, MAXDIG) != -1)
return FCVT_BUFFER;
FCVT_BUFPTR = (char *) malloc (FCVT_MAXDIG);
@ -75,26 +81,26 @@ APPEND (FUNC_PREFIX, fcvt) (value, ndigit, decpt, sign)
return FCVT_BUFFER;
}
(void) APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign,
FCVT_BUFPTR, FCVT_MAXDIG);
(void) __APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign,
FCVT_BUFPTR, FCVT_MAXDIG);
return FCVT_BUFPTR;
}
char *
APPEND (FUNC_PREFIX, ecvt) (value, ndigit, decpt, sign)
__APPEND (FUNC_PREFIX, ecvt) (value, ndigit, decpt, sign)
FLOAT_TYPE value;
int ndigit, *decpt, *sign;
{
(void) APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign,
ECVT_BUFFER, MAXDIG);
(void) __APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign,
ECVT_BUFFER, MAXDIG);
return ECVT_BUFFER;
}
char *
APPEND (FUNC_PREFIX, gcvt) (value, ndigit, buf)
__APPEND (FUNC_PREFIX, gcvt) (value, ndigit, buf)
FLOAT_TYPE value;
int ndigit;
char *buf;
@ -102,3 +108,26 @@ APPEND (FUNC_PREFIX, gcvt) (value, ndigit, buf)
sprintf (buf, "%.*" FLOAT_FMT_FLAG "g", MIN (ndigit, NDIGIT_MAX), value);
return buf;
}
#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
# ifdef LONG_DOUBLE_CVT
# define cvt_symbol(symbol) \
cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \
APPEND (FUNC_PREFIX, symbol), GLIBC_2_4)
# define cvt_symbol_1(lib, local, symbol, version) \
versioned_symbol (lib, local, symbol, version)
# else
# define cvt_symbol(symbol) \
cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \
APPEND (q, symbol), GLIBC_2_0); \
strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol))
# define cvt_symbol_1(lib, local, symbol, version) \
compat_symbol (lib, local, symbol, version)
# endif
#else
# define cvt_symbol(symbol) \
strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol))
#endif
cvt_symbol(fcvt);
cvt_symbol(ecvt);
cvt_symbol(gcvt);

View file

@ -1,5 +1,6 @@
/* Compatibility functions for floating point formatting, reentrant versions.
Copyright (C) 1995,96,97,98,99,2000,01,02,04 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -25,6 +26,7 @@
#include <math.h>
#include <stdlib.h>
#include <sys/param.h>
#include <shlib-compat.h>
#ifndef FLOAT_TYPE
# define FLOAT_TYPE double
@ -55,10 +57,14 @@
# error "FLOAT_MIN_10_NORM must be precomputed"
# define FLOAT_MIN_10_NORM exp10 (DBL_MIN_10_EXP)
# endif
#else
# define LONG_DOUBLE_CVT
#endif
#define APPEND(a, b) APPEND2 (a, b)
#define APPEND2(a, b) a##b
#define __APPEND(a, b) __APPEND2 (a, b)
#define __APPEND2(a, b) __##a##b
#define FLOOR APPEND(floor, FLOAT_NAME_EXT)
#define FABS APPEND(fabs, FLOAT_NAME_EXT)
@ -67,7 +73,7 @@
int
APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
__APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
FLOAT_TYPE value;
int ndigit, *decpt, *sign;
char *buf;
@ -163,10 +169,9 @@ APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
return 0;
}
libc_hidden_def (APPEND (FUNC_PREFIX, fcvt_r))
int
APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len)
__APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len)
FLOAT_TYPE value;
int ndigit, *decpt, *sign;
char *buf;
@ -229,11 +234,32 @@ APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len)
*sign = isfinite (value) ? signbit (value) != 0 : 0;
}
else
if (APPEND (FUNC_PREFIX, fcvt_r) (value, MIN (ndigit, NDIGIT_MAX) - 1,
decpt, sign, buf, len))
if (__APPEND (FUNC_PREFIX, fcvt_r) (value, MIN (ndigit, NDIGIT_MAX) - 1,
decpt, sign, buf, len))
return -1;
*decpt += exponent;
return 0;
}
libc_hidden_def (APPEND (FUNC_PREFIX, ecvt_r))
#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
# ifdef LONG_DOUBLE_CVT
# define cvt_symbol(symbol) \
cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \
APPEND (FUNC_PREFIX, symbol), GLIBC_2_4)
# define cvt_symbol_1(lib, local, symbol, version) \
versioned_symbol (lib, local, symbol, version)
# else
# define cvt_symbol(symbol) \
cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \
APPEND (q, symbol), GLIBC_2_0); \
strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol))
# define cvt_symbol_1(lib, local, symbol, version) \
compat_symbol (lib, local, symbol, version)
# endif
#else
# define cvt_symbol(symbol) \
strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol))
#endif
cvt_symbol(fcvt_r);
cvt_symbol(ecvt_r);

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1992-2001, 2002, 2004, 2005 Free Software Foundation, Inc.
/* Copyright (C) 1992-2001, 2002, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -309,4 +310,27 @@
# endif
#endif
#include <bits/wordsize.h>
#if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
# define __LDBL_COMPAT 1
# ifdef __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias)
# define __LDBL_REDIR(name, proto) \
__LDBL_REDIR1 (name, proto, __nldbl_##name)
# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias)
# define __LDBL_REDIR_NTH(name, proto) \
__LDBL_REDIR1_NTH (name, proto, __nldbl_##name)
# define __LDBL_REDIR_DECL(name) \
extern __typeof (name) name __asm (__ASMNAME (__nldbl_##name));
# endif
#endif
#if !defined __LDBL_COMPAT || !defined __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) name proto
# define __LDBL_REDIR(name, proto) name proto
# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW
# define __LDBL_REDIR_NTH(name, proto) name proto __THROW
# define __LDBL_REDIR_DECL(name)
#endif
#endif /* sys/cdefs.h */

View file

@ -206,6 +206,9 @@ extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
# include <bits/syslog.h>
#endif
#ifdef __LDBL_COMPAT
# include <bits/syslog-ldbl.h>
#endif
__END_DECLS

View file

@ -58,6 +58,8 @@ static char sccsid[] = "@(#)syslog.c 8.4 (Berkeley) 3/18/94";
#endif
#include <libio/iolibio.h>
#include <math_ldbl_opt.h>
#define ftell(s) INTUSE(_IO_ftell) (s)
static int LogType = SOCK_DGRAM; /* type of socket connection */
@ -109,7 +111,7 @@ cancel_handler (void *ptr)
* print message on log file; output is intended for syslogd(8).
*/
void
syslog(int pri, const char *fmt, ...)
__syslog(int pri, const char *fmt, ...)
{
va_list ap;
@ -117,7 +119,8 @@ syslog(int pri, const char *fmt, ...)
__vsyslog_chk(pri, -1, fmt, ap);
va_end(ap);
}
libc_hidden_def (syslog)
ldbl_hidden_def (__syslog, syslog)
ldbl_strong_alias (__syslog, syslog)
void
__syslog_chk(int pri, int flag, const char *fmt, ...)
@ -318,14 +321,12 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
libc_hidden_def (__vsyslog_chk)
void
vsyslog(pri, fmt, ap)
int pri;
register const char *fmt;
va_list ap;
__vsyslog(int pri, const char *fmt, va_list ap)
{
__vsyslog_chk (pri, -1, fmt, ap);
}
libc_hidden_def (vsyslog)
ldbl_hidden_def (__vsyslog, vsyslog)
ldbl_strong_alias (__vsyslog, vsyslog)
static struct sockaddr_un SyslogAddr; /* AF_UNIX address of local logger */

View file

@ -1,4 +1,4 @@
# Copyright (C) 1991-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# Copyright (C) 1991-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@ -21,7 +21,7 @@
#
subdir := stdio-common
headers := printf.h stdio_ext.h
headers := stdio_ext.h printf.h bits/printf-ldbl.h
routines := \
ctermid cuserid \

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1997, 1998, 2002, 2004
/* Copyright (C) 1991, 1995, 1997, 1998, 2002, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -20,7 +20,7 @@
#include <stdarg.h>
#include <stdio.h>
#include <libio/libioP.h>
#include <libioP.h>
#define vasprintf(s, f, a) _IO_vasprintf (s, f, a)
#undef __asprintf
@ -28,7 +28,7 @@
allocated with malloc and stored in *STRING_PTR. */
/* VARARGS2 */
int
__asprintf (char **string_ptr, const char *format, ...)
___asprintf (char **string_ptr, const char *format, ...)
{
va_list arg;
int done;
@ -39,5 +39,7 @@ __asprintf (char **string_ptr, const char *format, ...)
return done;
}
INTDEF(__asprintf)
weak_alias (__asprintf, asprintf)
INTDEF2(___asprintf, __asprintf)
ldbl_strong_alias (___asprintf, __asprintf)
ldbl_weak_alias (___asprintf, asprintf)

View file

@ -0,0 +1,24 @@
/* -mlong-double-64 compatibility mode for <printf.h> functions.
Copyright (C) 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _PRINTF_H
# error "Never include <bits/printf-ldbl.h> directly; use <printf.h> instead."
#endif
__LDBL_REDIR_DECL (printf_size)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991,95,97,98,2002,2004 Free Software Foundation, Inc.
/* Copyright (C) 1991,95,97,98,2002,2004,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -19,13 +19,13 @@
#include <stdarg.h>
#include <stdio.h>
#include <libio/libioP.h>
#include <libioP.h>
#define vdprintf(d, f, a) _IO_vdprintf (d, f, a)
/* Write formatted output to D, according to the format string FORMAT. */
/* VARARGS2 */
int
dprintf (int d, const char *format, ...)
__dprintf (int d, const char *format, ...)
{
va_list arg;
int done;
@ -36,4 +36,5 @@ dprintf (int d, const char *format, ...)
return done;
}
libc_hidden_def (dprintf)
ldbl_hidden_def (__dprintf, dprintf)
ldbl_strong_alias (__dprintf, dprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991,97,2002,2004 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1997, 2002, 2004, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -18,12 +18,13 @@
#include <stdarg.h>
#include <stdio.h>
#include <libioP.h>
/* Write formatted output to STREAM from the format string FORMAT. */
/* VARARGS2 */
int
fprintf (FILE *stream, const char *format, ...)
__fprintf (FILE *stream, const char *format, ...)
{
va_list arg;
int done;
@ -34,9 +35,10 @@ fprintf (FILE *stream, const char *format, ...)
return done;
}
libc_hidden_def (fprintf)
ldbl_hidden_def (__fprintf, fprintf)
ldbl_strong_alias (__fprintf, fprintf)
/* We define the function with the real name here. But deep down in
libio the original function _IO_fprintf is also needed. So make
an alias. */
weak_alias (fprintf, _IO_fprintf)
ldbl_weak_alias (__fprintf, _IO_fprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1997, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -16,13 +16,14 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
/* Read formatted input from STREAM according to the format string FORMAT. */
/* VARARGS2 */
int
fscanf (FILE *stream, const char *format, ...)
__fscanf (FILE *stream, const char *format, ...)
{
va_list arg;
int done;
@ -33,3 +34,4 @@ fscanf (FILE *stream, const char *format, ...)
return done;
}
ldbl_strong_alias (__fscanf, fscanf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004
/* Copyright (C) 1991, 1995, 1996, 1997, 2001, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -17,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <libioP.h>
#include <stdarg.h>
#include <stdio.h>
@ -25,7 +26,7 @@
/* Write formatted output to stdout from the format string FORMAT. */
/* VARARGS1 */
int
printf (const char *format, ...)
__printf (const char *format, ...)
{
va_list arg;
int done;
@ -38,5 +39,6 @@ printf (const char *format, ...)
}
#undef _IO_printf
ldbl_strong_alias (__printf, printf);
/* This is for libg++. */
strong_alias (printf, _IO_printf);
ldbl_strong_alias (__printf, _IO_printf);

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991-1993,1995-1999,2000,2001 Free Software Foundation, Inc.
/* Copyright (C) 1991-1993,1995-1999,2000,2001,2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -139,6 +140,9 @@ extern int printf_size_info (__const struct printf_info *__restrict
__info, size_t __n, int *__restrict __argtypes)
__THROW;
#ifdef __LDBL_COMPAT
# include <bits/printf-ldbl.h>
#endif
__END_DECLS

View file

@ -1,5 +1,6 @@
/* Floating point output for `printf'.
Copyright (C) 1995-1999,2000,2001,2002,2003 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@ -138,9 +139,9 @@ static wchar_t *group_number (wchar_t *buf, wchar_t *bufend,
int
__printf_fp (FILE *fp,
const struct printf_info *info,
const void *const *args)
___printf_fp (FILE *fp,
const struct printf_info *info,
const void *const *args)
{
/* The floating-point value to output. */
union
@ -1153,7 +1154,8 @@ __printf_fp (FILE *fp,
}
return done;
}
libc_hidden_def (__printf_fp)
ldbl_hidden_def (___printf_fp, __printf_fp)
ldbl_strong_alias (___printf_fp, __printf_fp)
/* Return the number of extra grouping characters that will be inserted
into a number with INTDIG_MAX integer digits. */

View file

@ -1,5 +1,5 @@
/* Print size value using units for orders of magnitude.
Copyright (C) 1997-2002, 2004 Free Software Foundation, Inc.
Copyright (C) 1997-2002, 2004, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
Based on a proposal by Larry McVoy <lm@sgi.com>.
@ -86,7 +86,8 @@ extern int __printf_fp (FILE *fp, const struct printf_info *info,
int
printf_size (FILE *fp, const struct printf_info *info, const void *const *args)
__printf_size (FILE *fp, const struct printf_info *info,
const void *const *args)
{
/* Units for the both formats. */
#define BINARY_UNITS " kmgtpezy"
@ -233,6 +234,7 @@ printf_size (FILE *fp, const struct printf_info *info, const void *const *args)
return done;
}
ldbl_strong_alias (__printf_size, printf_size);
/* This is the function used by `vfprintf' to determine number and
type of the arguments. */

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1997, 2002, 2004
/* Copyright (C) 1991, 1995, 1996, 1997, 2002, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -26,7 +26,7 @@
/* Read formatted input from stdin according to the format string FORMAT. */
/* VARARGS1 */
int
scanf (const char *format, ...)
__scanf (const char *format, ...)
{
va_list arg;
int done;
@ -37,3 +37,4 @@ scanf (const char *format, ...)
return done;
}
ldbl_strong_alias (__scanf, scanf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991, 1995, 1997, 1998, 2004 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1995, 1997, 1998, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -18,8 +19,7 @@
#include <stdarg.h>
#include <stdio.h>
#include <libio/libioP.h>
#include <libioP.h>
#define __vsnprintf(s, l, f, a) _IO_vsnprintf (s, l, f, a)
/* Write formatted output into S, according to the format
@ -37,4 +37,4 @@ __snprintf (char *s, size_t maxlen, const char *format, ...)
return done;
}
weak_alias (__snprintf, snprintf)
ldbl_weak_alias (__snprintf, snprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1997, 1998, 2002, 2004
/* Copyright (C) 1991, 1995, 1997, 1998, 2002, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -19,13 +19,13 @@
#include <stdarg.h>
#include <stdio.h>
#include <libio/iolibio.h>
#include <libioP.h>
#define vsprintf(s, f, a) INTUSE(_IO_vsprintf) (s, f, a)
/* Write formatted output into S, according to the format string FORMAT. */
/* VARARGS2 */
int
sprintf (char *s, const char *format, ...)
__sprintf (char *s, const char *format, ...)
{
va_list arg;
int done;
@ -36,6 +36,6 @@ sprintf (char *s, const char *format, ...)
return done;
}
libc_hidden_def (sprintf)
strong_alias(sprintf, _IO_sprintf)
ldbl_hidden_def (__sprintf, sprintf)
ldbl_strong_alias (__sprintf, sprintf)
ldbl_strong_alias (__sprintf, _IO_sprintf)

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1995, 1996, 1998, 2002, 2003, 2004
/* Copyright (C) 1991, 1995, 1996, 1998, 2002, 2003, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@ -19,13 +19,13 @@
#include <stdarg.h>
#include <stdio.h>
#include <libio/iolibio.h>
#include <libioP.h>
#define __vsscanf(s, f, a) _IO_vsscanf (s, f, a)
/* Read formatted input from S, according to the format string FORMAT. */
/* VARARGS2 */
int
sscanf (const char *s, const char *format, ...)
__sscanf (const char *s, const char *format, ...)
{
va_list arg;
int done;
@ -36,8 +36,8 @@ sscanf (const char *s, const char *format, ...)
return done;
}
libc_hidden_def (sscanf)
ldbl_hidden_def (__sscanf, sscanf)
ldbl_strong_alias (__sscanf, sscanf)
#undef _IO_sscanf
/* This is for libg++. */
strong_alias (sscanf, _IO_sscanf)
ldbl_strong_alias (__sscanf, _IO_sscanf)

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -64,7 +65,7 @@
#define UNBUFFERED_P(S) ((S)->_IO_file_flags & _IO_UNBUFFERED)
#ifndef COMPILE_WPRINTF
# define vfprintf _IO_vfprintf
# define vfprintf _IO_vfprintf_internal
# define CHAR_T char
# define UCHAR_T unsigned char
# define INT_T int
@ -758,6 +759,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
\
if (fspec == NULL) \
{ \
if (__ldbl_is_dbl) \
is_long_double = 0; \
\
struct printf_info info = { .prec = prec, \
.width = width, \
.spec = spec, \
@ -785,6 +789,11 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
else \
{ \
ptr = (const void *) &args_value[fspec->data_arg]; \
if (__ldbl_is_dbl) \
{ \
fspec->data_arg_type = PA_DOUBLE; \
fspec->info.is_long_double = 0; \
} \
\
function_done = __printf_fp (s, &fspec->info, &ptr); \
} \
@ -808,6 +817,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
\
if (fspec == NULL) \
{ \
if (__ldbl_is_dbl) \
is_long_double = 0; \
\
struct printf_info info = { .prec = prec, \
.width = width, \
.spec = spec, \
@ -834,6 +846,8 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
else \
{ \
ptr = (const void *) &args_value[fspec->data_arg]; \
if (__ldbl_is_dbl) \
fspec->info.is_long_double = 0; \
\
function_done = __printf_fphex (s, &fspec->info, &ptr); \
} \
@ -1704,7 +1718,15 @@ do_positional:
T (PA_INT|PA_FLAG_LONG_LONG, pa_long_long_int, long long int);
T (PA_FLOAT, pa_double, double); /* Promoted. */
T (PA_DOUBLE, pa_double, double);
T (PA_DOUBLE|PA_FLAG_LONG_DOUBLE, pa_long_double, long double);
case PA_DOUBLE|PA_FLAG_LONG_DOUBLE:
if (__ldbl_is_dbl)
{
args_value[cnt].pa_double = va_arg (ap_save, double);
args_type[cnt] &= ~PA_FLAG_LONG_DOUBLE;
}
else
args_value[cnt].pa_long_double = va_arg (ap_save, long double);
break;
T (PA_STRING, pa_string, const char *);
T (PA_WSTRING, pa_wstring, const wchar_t *);
T (PA_POINTER, pa_pointer, void *);
@ -2154,25 +2176,11 @@ buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format,
}
#undef vfprintf
#ifdef strong_alias
/* This is for glibc. */
# ifdef COMPILE_WPRINTF
#ifdef COMPILE_WPRINTF
strong_alias (_IO_vfwprintf, __vfwprintf);
weak_alias (_IO_vfwprintf, vfwprintf);
# else
strong_alias (_IO_vfprintf, vfprintf);
libc_hidden_def (vfprintf)
INTDEF(_IO_vfprintf)
# endif
ldbl_weak_alias (_IO_vfwprintf, vfwprintf);
#else
# if defined __ELF__ || defined __GNU_LIBRARY__
# include <gnu-stabs.h>
# ifdef weak_alias
# ifdef COMPILE_WPRINTF
weak_alias (_IO_vfwprintf, vfwprintf);
# else
weak_alias (_IO_vfprintf, vfprintf);
# endif
# endif
# endif
ldbl_strong_alias (_IO_vfprintf_internal, vfprintf);
ldbl_hidden_def (_IO_vfprintf_internal, vfprintf)
ldbl_strong_alias (_IO_vfprintf_internal, _IO_vfprintf);
#endif

View file

@ -1,4 +1,5 @@
/* Copyright (C) 1991-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -178,18 +179,12 @@
Return the number of assignments made, or -1 for an input error. */
#ifdef COMPILE_WSCANF
int
_IO_vfwscanf (s, format, argptr, errp)
_IO_FILE *s;
const wchar_t *format;
_IO_va_list argptr;
int *errp;
_IO_vfwscanf (_IO_FILE *s, const wchar_t *format, _IO_va_list argptr,
int *errp)
#else
int
_IO_vfscanf (s, format, argptr, errp)
_IO_FILE *s;
const char *format;
_IO_va_list argptr;
int *errp;
_IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
int *errp)
#endif
{
va_list arg;
@ -1891,13 +1886,13 @@ _IO_vfscanf (s, format, argptr, errp)
scan_float:
/* Convert the number. */
ADDW (L_('\0'));
if (flags & LONGDBL)
if ((flags & LONGDBL) && !__ldbl_is_dbl)
{
long double d = __strtold_internal (wp, &tw, flags & GROUP);
if (!(flags & SUPPRESS) && tw != wp)
*ARG (long double *) = negative ? -d : d;
}
else if (flags & LONG)
else if (flags & (LONG | LONGDBL))
{
double d = __strtod_internal (wp, &tw, flags & GROUP);
if (!(flags & SUPPRESS) && tw != wp)
@ -2460,18 +2455,15 @@ __vfwscanf (FILE *s, const wchar_t *format, va_list argptr)
{
return _IO_vfwscanf (s, format, argptr, NULL);
}
ldbl_weak_alias (__vfwscanf, vfwscanf)
#else
int
__vfscanf (FILE *s, const char *format, va_list argptr)
___vfscanf (FILE *s, const char *format, va_list argptr)
{
return INTUSE(_IO_vfscanf) (s, format, argptr, NULL);
return _IO_vfscanf_internal (s, format, argptr, NULL);
}
libc_hidden_def (__vfscanf)
#endif
#ifdef COMPILE_WSCANF
weak_alias (__vfwscanf, vfwscanf)
#else
weak_alias (__vfscanf, vfscanf)
INTDEF(_IO_vfscanf)
ldbl_strong_alias (_IO_vfscanf_internal, _IO_vfscanf)
ldbl_strong_alias (___vfscanf, __vfscanf)
ldbl_hidden_def (___vfscanf, __vfscanf)
ldbl_weak_alias (___vfscanf, vfscanf)
#endif

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1995, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1993, 1995, 1997, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -19,15 +19,16 @@
#include <stdarg.h>
#undef __OPTIMIZE__ /* Avoid inline `vprintf' function. */
#include <stdio.h>
#include <libioP.h>
#undef vprintf
/* Write formatted output to stdout according to the
format string FORMAT, using the argument list in ARG. */
int
vprintf (format, arg)
const char *format;
__gnuc_va_list arg;
__vprintf (const char *format, __gnuc_va_list arg)
{
return vfprintf (stdout, format, arg);
}
ldbl_strong_alias (__vprintf, vprintf)

View file

@ -1,4 +1,4 @@
# Copyright (C) 1991-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# Copyright (C) 1991-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@ -21,9 +21,10 @@
#
subdir := stdlib
headers := stdlib.h alloca.h monetary.h fmtmsg.h ucontext.h sys/ucontext.h \
headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h \
monetary.h bits/monetary-ldbl.h \
inttypes.h stdint.h bits/wordsize.h \
errno.h sys/errno.h bits/errno.h bits/stdlib.h
errno.h sys/errno.h bits/errno.h
routines := \
atof atoi atol atoll \

View file

@ -0,0 +1,60 @@
/* -mlong-double-64 compatibility mode for monetary functions.
Copyright (C) 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _MONETARY_H
# error "Never include <bits/monetary-ldbl.h> directly; use <monetary.h> instead."
#endif
#if defined __LDBL_COMPAT && defined __GNUC__ && __GNUC__ >= 2
# define __LDBL_REDIR_WCHAR(name) \
extern __typeof (name) name __asm (__ASMNAME (__nldbl_##name))
# if defined __USE_ISOC99 || defined __USE_UNIX98
__BEGIN_NAMESPACE_C99
__LDBL_REDIR_WCHAR (fwprintf);
__LDBL_REDIR_WCHAR (wprintf);
__LDBL_REDIR_WCHAR (swprintf);
__LDBL_REDIR_WCHAR (vfwprintf);
__LDBL_REDIR_WCHAR (vwprintf);
__LDBL_REDIR_WCHAR (vswprintf);
__LDBL_REDIR_WCHAR (fwscanf);
__LDBL_REDIR_WCHAR (wscanf);
__LDBL_REDIR_WCHAR (swscanf);
__END_NAMESPACE_C99
# endif
# ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
__LDBL_REDIR_WCHAR (vfwscanf);
__LDBL_REDIR_WCHAR (vwscanf);
__LDBL_REDIR_WCHAR (vswscanf);
__END_NAMESPACE_C99
# endif
#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
__LDBL_REDIR_DECL (__swprintf_chk)
__LDBL_REDIR_DECL (__vswprintf_chk)
# if __USE_FORTIFY_LEVEL > 1
__LDBL_REDIR_DECL (__fwprintf_chk)
__LDBL_REDIR_DECL (__wprintf_chk)
__LDBL_REDIR_DECL (__vfwprintf_chk)
__LDBL_REDIR_DECL (__vwprintf_chk)
# endif
#endif

42
stdlib/bits/stdlib-ldbl.h Normal file
View file

@ -0,0 +1,42 @@
/* -mlong-double-64 compatibility mode for <stdlib.h> functions.
Copyright (C) 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _STDLIB_H
# error "Never include <bits/stdlib-ldbl.h> directly; use <stdlib.h> instead."
#endif
#ifdef __USE_ISOC99
__BEGIN_NAMESPACE_C99
__LDBL_REDIR_DECL (strtold)
__END_NAMESPACE_C99
#endif
#ifdef __USE_GNU
__LDBL_REDIR_DECL (strtold_l)
#endif
__LDBL_REDIR_DECL (__strtold_internal)
#ifdef __USE_MISC
__LDBL_REDIR_DECL (qecvt)
__LDBL_REDIR_DECL (qfcvt)
__LDBL_REDIR_DECL (qgcvt)
__LDBL_REDIR_DECL (qecvt_r)
__LDBL_REDIR_DECL (qfcvt_r)
#endif

View file

@ -1,5 +1,6 @@
/* Header file for monetary value formatting functions.
Copyright (C) 1996,97,98,99,2000,02 Free Software Foundation, Inc.
Copyright (C) 1996,1997,1998,1999,2000,2002,2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -50,6 +51,10 @@ extern ssize_t strfmon_l (char *__restrict __s, size_t __maxsize,
__THROW __attribute_format_strfmon__ (4, 5);
#endif
#ifdef __LDBL_COMPAT
# include <bits/monetary-ldbl.h>
#endif
__END_DECLS
#endif /* monetary.h */

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1991-2003, 2004, 2005 Free Software Foundation, Inc.
/* Copyright (C) 1991-2003,2004,2005,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -350,11 +350,13 @@ __NTH (strtof (__const char *__restrict __nptr, char **__restrict __endptr))
{
return __strtof_internal (__nptr, __endptr, 0);
}
# ifndef __LDBL_COMPAT
extern __inline long double
__NTH (strtold (__const char *__restrict __nptr, char **__restrict __endptr))
{
return __strtold_internal (__nptr, __endptr, 0);
}
# endif
__END_NAMESPACE_C99
# endif
@ -966,6 +968,9 @@ extern int getloadavg (double __loadavg[], int __nelem)
#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
# include <bits/stdlib.h>
#endif
#ifdef __LDBL_COMPAT
# include <bits/stdlib-ldbl.h>
#endif
#endif /* don't just need malloc and calloc */
#undef __need_malloc_and_calloc

View file

@ -1,5 +1,6 @@
/* Formatting a monetary value according to the current locale.
Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 1996-2001, 2002, 2003, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>
and Jochen Hein <Jochen.Hein@informatik.TU-Clausthal.de>, 1996.
@ -22,10 +23,10 @@
#include <monetary.h>
#include <stdarg.h>
#include <locale/localeinfo.h>
#include <math_ldbl_opt.h>
ssize_t
strfmon (char *s, size_t maxsize, const char *format, ...)
__strfmon (char *s, size_t maxsize, const char *format, ...)
{
va_list ap;
@ -37,3 +38,4 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
return res;
}
ldbl_strong_alias (__strfmon, strfmon)

View file

@ -1,5 +1,5 @@
/* Formatting a monetary value according to the given locale.
Copyright (C) 1996, 1997, 2002, 2004 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 2002, 2004, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -23,10 +23,8 @@
#include <langinfo.h>
#include <locale.h>
#include <monetary.h>
#ifdef USE_IN_LIBIO
# include "../libio/libioP.h"
# include "../libio/strfile.h"
#endif
#include "../libio/libioP.h"
#include "../libio/strfile.h"
#include <printf.h>
#include <stdarg.h>
#include <stdio.h>
@ -91,13 +89,9 @@ __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
va_list ap)
{
struct locale_data *current = loc->__locales[LC_MONETARY];
#ifdef USE_IN_LIBIO
_IO_strfile f;
# ifdef _IO_MTSAFE_IO
#ifdef _IO_MTSAFE_IO
_IO_lock_t lock;
# endif
#else
FILE f;
#endif
struct printf_info info;
char *dest; /* Pointer so copy the output. */
@ -278,7 +272,8 @@ __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
if (*fmt == 'L')
{
++fmt;
is_long_double = 1;
if (!__ldbl_is_dbl)
is_long_double = 1;
}
/* Handle format specifier. */
@ -515,30 +510,13 @@ __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
out_string (sign_string);
/* Print the number. */
#ifdef USE_IN_LIBIO
# ifdef _IO_MTSAFE_IO
#ifdef _IO_MTSAFE_IO
f._sbf._f._lock = &lock;
# endif
#endif
INTUSE(_IO_init) ((_IO_FILE *) &f, 0);
_IO_JUMPS ((struct _IO_FILE_plus *) &f) = &_IO_str_jumps;
INTUSE(_IO_str_init_static) ((_IO_strfile *) &f, dest,
(s + maxsize) - dest, dest);
#else
memset ((void *) &f, 0, sizeof (f));
f.__magic = _IOMAGIC;
f.__mode.__write = 1;
/* The buffer size is one less than MAXLEN
so we have space for the null terminator. */
f.__bufp = f.__buffer = (char *) dest;
f.__bufsize = (s + maxsize) - dest;
f.__put_limit = f.__buffer + f.__bufsize;
f.__get_limit = f.__buffer;
/* After the buffer is full (MAXLEN characters have been written),
any more characters written will go to the bit bucket. */
f.__room_funcs = __default_room_functions;
f.__io_funcs.__write = NULL;
f.__seen = 1;
#endif
/* We clear the last available byte so we can find out whether
the numeric representation is too long. */
s[maxsize - 1] = '\0';
@ -633,7 +611,7 @@ __vstrfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format,
}
ssize_t
__strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
___strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
{
va_list ap;
@ -645,4 +623,5 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
return res;
}
weak_alias (__strfmon_l, strfmon_l)
ldbl_strong_alias (___strfmon_l, __strfmon_l)
ldbl_weak_alias (___strfmon_l, strfmon_l)

View file

@ -1,6 +1,6 @@
/* Read decimal floating point numbers.
This file is part of the GNU C Library.
Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 1995-2002, 2003, 2004, 2006 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
The GNU C Library is free software; you can redistribute it and/or
@ -24,6 +24,7 @@
#ifndef FLOAT
# include <math_ldbl_opt.h>
# define FLOAT double
# ifdef USE_WIDE_CHAR
# define STRTOF wcstod
@ -68,3 +69,15 @@ STRTOF (nptr, endptr)
{
return INTERNAL(STRTOF_L) (nptr, endptr, 0, _NL_CURRENT_LOCALE);
}
#ifdef LONG_DOUBLE_COMPAT
# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
# ifdef USE_WIDE_CHAR
compat_symbol (libc, wcstod, wcstold, GLIBC_2_0);
compat_symbol (libc, __wcstod_internal, __wcstold_internal, GLIBC_2_0);
# else
compat_symbol (libc, strtod, strtold, GLIBC_2_0);
compat_symbol (libc, __strtod_internal, __strtold_internal, GLIBC_2_0);
# endif
# endif
#endif

View file

@ -1,5 +1,5 @@
/* Convert string representing a number to float value, using given locale.
Copyright (C) 1997,98,2002,2004,2005 Free Software Foundation, Inc.
Copyright (C) 1997,1998,2002,2004,2005,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -28,6 +28,7 @@ extern unsigned long long int ____strtoull_l_internal (const char *, char **,
`strtof.c', `wcstod.c', `wcstold.c', and `wcstof.c' to produce the
`long double' and `float' versions of the reader. */
#ifndef FLOAT
# include <math_ldbl_opt.h>
# define FLOAT double
# define FLT DBL
# ifdef USE_WIDE_CHAR
@ -406,6 +407,9 @@ __mpn_lshift_1 (mp_limb_t *ptr, mp_size_t size, unsigned int count,
#define INTERNAL(x) INTERNAL1(x)
#define INTERNAL1(x) __##x##_internal
#ifndef ____STRTOF_INTERNAL
# define ____STRTOF_INTERNAL INTERNAL (__STRTOF)
#endif
/* This file defines a function to check for correct grouping. */
#include "grouping.h"
@ -417,7 +421,7 @@ __mpn_lshift_1 (mp_limb_t *ptr, mp_size_t size, unsigned int count,
return 0.0. If the number is too big to be represented, set `errno' to
ERANGE and return HUGE_VAL with the appropriate sign. */
FLOAT
INTERNAL (__STRTOF) (nptr, endptr, group, loc)
____STRTOF_INTERNAL (nptr, endptr, group, loc)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
int group;
@ -1557,7 +1561,7 @@ INTERNAL (__STRTOF) (nptr, endptr, group, loc)
/* NOTREACHED */
}
#if defined _LIBC && !defined USE_WIDE_CHAR
libc_hidden_def (INTERNAL (__STRTOF))
libc_hidden_def (____STRTOF_INTERNAL)
#endif
/* External user entry point. */
@ -1571,6 +1575,23 @@ __STRTOF (nptr, endptr, loc)
STRING_TYPE **endptr;
__locale_t loc;
{
return INTERNAL (__STRTOF) (nptr, endptr, 0, loc);
return ____STRTOF_INTERNAL (nptr, endptr, 0, loc);
}
weak_alias (__STRTOF, STRTOF)
#ifdef LONG_DOUBLE_COMPAT
# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_1)
# ifdef USE_WIDE_CHAR
compat_symbol (libc, __wcstod_l, __wcstold_l, GLIBC_2_1);
# else
compat_symbol (libc, __strtod_l, __strtold_l, GLIBC_2_1);
# endif
# endif
# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_3)
# ifdef USE_WIDE_CHAR
compat_symbol (libc, wcstod_l, wcstold_l, GLIBC_2_3);
# else
compat_symbol (libc, strtod_l, strtold_l, GLIBC_2_3);
# endif
# endif
#endif

View file

@ -1,6 +1,6 @@
/* Read decimal floating point numbers.
This file is part of the GNU C Library.
Copyright (C) 1995-2002, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 1995-2002, 2003, 2004, 2006 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
The GNU C Library is free software; you can redistribute it and/or
@ -21,15 +21,43 @@
/* The actual implementation for all floating point sizes is in strtod.c.
These macros tell it to produce the `float' version, `strtof'. */
#include <bits/wordsize.h>
#ifdef __LONG_DOUBLE_MATH_OPTIONAL
# include <wchar.h>
# define NEW(x) NEW1(x)
# define NEW1(x) __new_##x
long double ____new_strtold_internal (const char *, char **, int);
long double __new_strtold (const char *, char **);
long double ____new_wcstold_internal (const wchar_t *, wchar_t **, int);
long double __new_wcstold (const wchar_t *, wchar_t **);
libc_hidden_proto (____new_strtold_internal)
libc_hidden_proto (____new_wcstold_internal)
#else
# define NEW(x) x
#endif
#define FLOAT long double
#define FLT LDBL
#ifdef USE_WIDE_CHAR
# define STRTOF wcstold
# define STRTOF NEW (wcstold)
# define STRTOF_L __wcstold_l
#else
# define STRTOF strtold
# define STRTOF NEW (strtold)
# define STRTOF_L __strtold_l
#endif
#include "strtod.c"
#ifdef __LONG_DOUBLE_MATH_OPTIONAL
# include <math_ldbl_opt.h>
# ifdef USE_WIDE_CHAR
long_double_symbol (libc, __new_wcstold, wcstold);
long_double_symbol (libc, ____new_wcstold_internal, __wcstold_internal);
libc_hidden_ver (____new_wcstold_internal, __wcstold_internal)
# else
long_double_symbol (libc, __new_strtold, strtold);
long_double_symbol (libc, ____new_strtold_internal, __strtold_internal);
libc_hidden_ver (____new_strtold_internal, __strtold_internal)
# endif
#endif

View file

@ -0,0 +1,14 @@
/* -mlong-double-64 compatibility mode macros. Stub version.
These macros are used by some math/ and sysdeps/ieee754/ code.
These are the generic definitions for when no funny business is going on.
sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h defines them differently
for platforms where compatibility symbols are required for a previous
ABI that defined long double functions as aliases for the double code. */
#define LONG_DOUBLE_COMPAT(lib, introduced) 0
#define long_double_symbol(lib, local, symbol)
#define ldbl_hidden_def(local, name) libc_hidden_def (name)
#define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname)
#define ldbl_weak_alias(name, aliasname) weak_alias (name, aliasname)
#define __ldbl_is_dbl 0

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_asinhl.c>
long_double_symbol (libm, __asinhl, asinhl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_atanl.c>
long_double_symbol (libm, __atanl, atanl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_cbrtl.c>
long_double_symbol (libm, __cbrtl, cbrtl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_ceill.c>
long_double_symbol (libm, __ceill, ceill);

View file

@ -0,0 +1,9 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_copysignl.c>
#ifdef IS_IN_libm
long_double_symbol (libm, __copysignl, copysignl);
#else
long_double_symbol (libc, __copysignl, copysignl);
#endif

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_cosl.c>
long_double_symbol (libm, __cosl, cosl);

View file

@ -0,0 +1,6 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_erfl.c>
long_double_symbol (libm, __erfl, erfl);
long_double_symbol (libm, __erfcl, erfcl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_expm1l.c>
long_double_symbol (libm, __expm1l, expm1l);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_fabsl.c>
long_double_symbol (libm, __fabsl, fabsl);

View file

@ -0,0 +1,17 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#undef hidden_def
#define hidden_def(x)
#define __finitel(arg) ___finitel(arg)
#include <sysdeps/ieee754/ldbl-128/s_finitel.c>
#undef __finitel
hidden_ver (___finitel, __finitel)
_weak_alias (___finitel, ____finitel)
#ifdef IS_IN_libm
long_double_symbol (libm, ____finitel, finitel);
long_double_symbol (libm, ___finitel, __finitel);
#else
long_double_symbol (libc, ____finitel, finitel);
long_double_symbol (libc, ___finitel, __finitel);
#endif

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_floorl.c>
long_double_symbol (libm, __floorl, floorl);

View file

@ -0,0 +1,10 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#define __fpclassifyl ___fpclassifyl
#undef libm_hidden_def
#define libm_hidden_def(a)
#include <sysdeps/ieee754/ldbl-128/s_fpclassifyl.c>
#undef __fpclassifyl
long_double_symbol (libm, ___fpclassifyl, __fpclassifyl);
libm_hidden_ver (___fpclassifyl, __fpclassifyl)

View file

@ -0,0 +1,9 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_frexpl.c>
#ifdef IS_IN_libm
long_double_symbol (libm, __frexpl, frexpl);
#else
long_double_symbol (libc, __frexpl, frexpl);
#endif

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_ilogbl.c>
long_double_symbol (libm, __ilogbl, ilogbl);

View file

@ -0,0 +1,16 @@
#include <math_ldbl_opt.h>
#ifndef IS_IN_libm
# undef weak_alias
# define weak_alias(n,a)
# undef hidden_def
# define hidden_def(x)
# define __isinfl(arg) ___isinfl(arg)
#endif
#include <sysdeps/ieee754/ldbl-128/s_isinfl.c>
#ifndef IS_IN_libm
# undef __isinfl
hidden_ver (___isinfl, __isinfl)
_weak_alias (___isinfl, ____isinfl)
long_double_symbol (libc, ____isinfl, isinfl);
long_double_symbol (libc, ___isinfl, __isinfl);
#endif

View file

@ -0,0 +1,16 @@
#include <math_ldbl_opt.h>
#ifndef IS_IN_libm
# undef weak_alias
# define weak_alias(n,a)
# undef hidden_def
# define hidden_def(x)
# define __isnanl(arg) ___isnanl(arg)
#endif
#include <sysdeps/ieee754/ldbl-128/s_isnanl.c>
#ifndef IS_IN_libm
# undef __isnanl
hidden_ver (___isnanl, __isnanl)
_weak_alias (___isnanl, ____isnanl)
long_double_symbol (libc, ____isnanl, isnanl);
long_double_symbol (libc, ___isnanl, __isnanl);
#endif

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_llrintl.c>
long_double_symbol (libm, __llrintl, llrintl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_llroundl.c>
long_double_symbol (libm, __llroundl, llroundl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_log1pl.c>
long_double_symbol (libm, __log1pl, log1pl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_logbl.c>
long_double_symbol (libm, __logbl, logbl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_lrintl.c>
long_double_symbol (libm, __lrintl, lrintl);

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_lroundl.c>
long_double_symbol (libm, __lroundl, lroundl);

View file

@ -0,0 +1,9 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_modfl.c>
#ifdef IS_IN_libm
long_double_symbol (libm, __modfl, modfl);
#else
long_double_symbol (libc, __modfl, modfl);
#endif

View file

@ -0,0 +1,5 @@
#include <math_ldbl_opt.h>
#undef weak_alias
#define weak_alias(n,a)
#include <sysdeps/ieee754/ldbl-128/s_nearbyintl.c>
long_double_symbol (libm, __nearbyintl, nearbyintl);

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