glibc/sysdeps/ieee754/ldbl-opt
Joseph Myers 1e2bffd05c Use libm_alias_double for some dbl-64 functions.
Continuing the move of libm aliases to common macros that can create
_FloatN / _FloatNx aliases in future, this patch converts some dbl-64
functions to using libm_alias_double, thereby eliminating the need for
some ldbl-opt wrappers.

This patch deliberately limits what functions are converted so that it
can be verified by comparison of stipped binaries.  Specifically, atan
and tan are excluded because they first need converting to being weak
aliases; fma is omitted as it has additional complications with
versions in other directories (removing the ldbl-opt version can
e.g. cause the ldbl-128 version to be used instead of dbl-64); and
functions that have both dbl-64/wordsize-64 and ldbl-opt versions are
excluded because ldbl-opt currently always wraps dbl-64 function
versions, so changing those will result in platforms using both
ldbl-opt and dbl-64/wordsize-64 (i.e. alpha) starting to use the
dbl-64/wordsize-64 versions of those functions (which is good, as an
optimization, but still best separated from the present patch to get
better validation).

Tested for x86_64, and tested with build-many-glibcs.py that installed
stripped shared libraries are unchanged by the patch.

	* sysdeps/ieee754/dbl-64/s_asinh.c: Include <libm-alias-double.h>.
	(asinh): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_cbrt.c: Include <libm-alias-double.h>.
	(cbrt): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_copysign.c: Include
	<libm-alias-double.h>.
	(copysign): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_erf.c: Include <libm-alias-double.h>.
	(erf): Define using libm_alias_double.
	(erfc): Likewise.
	* sysdeps/ieee754/dbl-64/s_expm1.c: Include <libm-alias-double.h>.
	(expm1): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_fabs.c: Include <libm-alias-double.h>.
	(fabs): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_fromfp.c (fromfp): Define using
	libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_fromfp_main.c: Include
	<libm-alias-double.h>.
	* sysdeps/ieee754/dbl-64/s_fromfpx.c (fromfpx): Define using
	libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_getpayload.c: Include
	<libm-alias-double.h>.
	(getpayload): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_llrint.c: Include
	<libm-alias-double.h>.
	(llrint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_lrint.c: Include <libm-alias-double.h>.
	(lrint): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_nextup.c: Include
	<libm-alias-double.h>.
	(nextup): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_roundeven.c: Include
	<libm-alias-double.h>.
	(roundeven): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_setpayload.c (setpayload): Define using
	libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_setpayload_main.c: Include
	<libm-alias-double.h>.
	* sysdeps/ieee754/dbl-64/s_setpayloadsig.c (setpayloadsig): Define
	using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_sin.c: Include <libm-alias-double.h>.
	(cos): Define using libm_alias_double.
	(sin): Likewise.
	* sysdeps/ieee754/dbl-64/s_sincos.c: Include
	<libm-alias-double.h>.
	(sincos): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_tanh.c: Include <libm-alias-double.h>.
	(tanh): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_totalorder.c: Include
	<libm-alias-double.h>.
	(totalorder): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_totalordermag.c: Include
	<libm-alias-double.h>.
	(totalordermag): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_ufromfp.c (ufromfp): Define using
	libm_alias_double.
	* sysdeps/ieee754/dbl-64/s_ufromfpx.c (ufromfpx): Define using
	libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c: Include
	<libm-alias-double.h>.
	(getpayload): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c: Include
	<libm-alias-double.h>.
	(roundeven): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c: Include
	<libm-alias-double.h>.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Include
	<libm-alias-double.h>.
	(totalorder): Define using libm_alias_double.
	* sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Include
	<libm-alias-double.h>.
	(totalordermag): Define using libm_alias_double.
	* sysdeps/ieee754/ldbl-opt/s_copysign.c (copysignl): Only define
	libc compat symbol here.
	* sysdeps/ieee754/ldbl-opt/s_asinh.c: Remove file.
	* sysdeps/ieee754/ldbl-opt/s_cbrt.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_erf.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_expm1.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_fabs.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_llrint.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_lrint.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_sin.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_sincos.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/s_tanh.c: Likewise.
2017-09-29 23:54:33 +00:00
..
bits Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
configure rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
configure.ac rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
libm-alias-double.h Define and use libm_alias_double. 2017-09-13 01:13:30 +00:00
libm-alias-ldouble.h Define and use libm_alias_ldouble. 2017-09-13 22:17:23 +00:00
Makefile Obsolete pow10 functions. 2017-09-01 21:13:18 +00:00
math_ldbl_opt.c
math_ldbl_opt.h Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
nldbl-acos.c
nldbl-acosh.c
nldbl-asin.c
nldbl-asinh.c * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_HIDDEN): Removed. 2006-01-14 20:33:13 +00:00
nldbl-asprintf_chk.c * include/stdio.h (__asprintf_chk, __dprintf_chk, 2008-03-05 07:05:13 +00:00
nldbl-asprintf.c * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_DECL): Don't try 2006-01-14 22:08:18 +00:00
nldbl-atan2.c
nldbl-atan.c
nldbl-atanh.c
nldbl-cabs.c
nldbl-cacos.c
nldbl-cacosh.c
nldbl-canonicalize.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-carg.c
nldbl-casin.c
nldbl-casinh.c
nldbl-catan.c
nldbl-catanh.c
nldbl-cbrt.c
nldbl-ccos.c
nldbl-ccosh.c
nldbl-ceil.c
nldbl-cexp.c
nldbl-cimag.c
nldbl-clog10.c
nldbl-clog.c
nldbl-compat.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
nldbl-compat.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-conj.c
nldbl-copysign.c Use __copysign rather than copysign. 2015-04-22 12:07:56 +00:00
nldbl-cos.c
nldbl-cosh.c
nldbl-cpow.c
nldbl-cproj.c
nldbl-creal.c
nldbl-csin.c
nldbl-csinh.c
nldbl-csqrt.c
nldbl-ctan.c
nldbl-ctanh.c
nldbl-dprintf_chk.c * include/stdio.h (__asprintf_chk, __dprintf_chk, 2008-03-05 07:05:13 +00:00
nldbl-dprintf.c * sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c: Restore 2006-01-18 23:30:58 +00:00
nldbl-erf.c
nldbl-erfc.c
nldbl-exp2.c
nldbl-exp10.c
nldbl-exp.c
nldbl-expm1.c
nldbl-fabs.c
nldbl-fdim.c
nldbl-finite.c Replace finite with isfinite. 2015-06-03 16:35:44 +01:00
nldbl-floor.c
nldbl-fma.c
nldbl-fmax.c
nldbl-fmaxmag.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-fmin.c
nldbl-fminmag.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-fmod.c
nldbl-fprintf_chk.c
nldbl-fprintf.c * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_DECL): Don't try 2006-01-14 22:08:18 +00:00
nldbl-frexp.c
nldbl-fromfp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-fromfpx.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-fscanf.c
nldbl-fwprintf_chk.c
nldbl-fwprintf.c
nldbl-fwscanf.c
nldbl-gamma.c
nldbl-getpayload.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-hypot.c
nldbl-ilogb.c
nldbl-iovfscanf.c
nldbl-isinf.c This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* to use standard C99 macros. This has no effect on generated code. 2015-06-03 15:41:36 +01:00
nldbl-isnan.c This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* to use standard C99 macros. This has no effect on generated code. 2015-06-03 15:41:36 +01:00
nldbl-isoc99_fscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_fwscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_scanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_sscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_swscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_vfscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_vfwscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_vscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_vsscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_vswscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_vwscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-isoc99_wscanf.c * include/stdio.h (__isoc99_fscanf, __isoc99_scanf, 2007-09-18 19:04:01 +00:00
nldbl-j0.c
nldbl-j1.c
nldbl-jn.c
nldbl-ldexp.c
nldbl-lgamma_r.c
nldbl-lgamma.c
nldbl-llogb.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-llrint.c
nldbl-llround.c
nldbl-log1p.c
nldbl-log2.c
nldbl-log10.c
nldbl-log.c
nldbl-logb.c
nldbl-lrint.c
nldbl-lround.c
nldbl-modf.c
nldbl-nan.c
nldbl-nearbyint.c
nldbl-nextafter.c
nldbl-nextdown.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-nexttoward.c
nldbl-nexttowardf.c
nldbl-nextup.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-obstack_printf_chk.c * include/stdio.h (__asprintf_chk, __dprintf_chk, 2008-03-05 07:05:13 +00:00
nldbl-obstack_printf.c
nldbl-obstack_vprintf_chk.c * include/stdio.h (__asprintf_chk, __dprintf_chk, 2008-03-05 07:05:13 +00:00
nldbl-obstack_vprintf.c
nldbl-pow.c
nldbl-printf_chk.c
nldbl-printf_fp.c
nldbl-printf_size.c
nldbl-printf.c
nldbl-qecvt_r.c
nldbl-qecvt.c * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_DECL): Don't try 2006-01-14 22:08:18 +00:00
nldbl-qfcvt_r.c
nldbl-qfcvt.c * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_DECL): Don't try 2006-01-14 22:08:18 +00:00
nldbl-qgcvt.c * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_DECL): Don't try 2006-01-14 22:08:18 +00:00
nldbl-remainder.c Make drem an alias of remainder (bug 16171). 2015-10-29 22:29:21 +00:00
nldbl-remquo.c
nldbl-rint.c
nldbl-round.c
nldbl-roundeven.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-scalb.c
nldbl-scalbln.c
nldbl-scalbn.c
nldbl-scanf.c
nldbl-setpayload.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-setpayloadsig.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-signbit.c This patch renames all uses of __isinf*, __isnan*, __finite* and __signbit* to use standard C99 macros. This has no effect on generated code. 2015-06-03 15:41:36 +01:00
nldbl-significand.c
nldbl-sin.c
nldbl-sincos.c
nldbl-sinh.c
nldbl-snprintf_chk.c
nldbl-snprintf.c
nldbl-sprintf_chk.c
nldbl-sprintf.c
nldbl-sqrt.c
nldbl-sscanf.c
nldbl-strfmon_l.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
nldbl-strfmon.c
nldbl-strfroml.c Add strfromd, strfromf, and strfroml functions 2016-10-25 17:03:54 -02:00
nldbl-strtold_l.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
nldbl-strtold.c
nldbl-strtoldint.c
nldbl-swprintf_chk.c
nldbl-swprintf.c
nldbl-swscanf.c
nldbl-syslog_chk.c
nldbl-syslog.c
nldbl-tan.c
nldbl-tanh.c
nldbl-tgamma.c
nldbl-totalorder.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-totalordermag.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-trunc.c
nldbl-ufromfp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-ufromfpx.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
nldbl-vasprintf_chk.c * include/stdio.h (__asprintf_chk, __dprintf_chk, 2008-03-05 07:05:13 +00:00
nldbl-vasprintf.c
nldbl-vdprintf_chk.c * include/stdio.h (__asprintf_chk, __dprintf_chk, 2008-03-05 07:05:13 +00:00
nldbl-vdprintf.c
nldbl-vfprintf_chk.c
nldbl-vfprintf.c
nldbl-vfscanf.c
nldbl-vfwprintf_chk.c
nldbl-vfwprintf.c
nldbl-vfwscanf.c
nldbl-vprintf_chk.c
nldbl-vprintf.c
nldbl-vscanf.c
nldbl-vsnprintf_chk.c
nldbl-vsnprintf.c
nldbl-vsprintf_chk.c
nldbl-vsprintf.c
nldbl-vsscanf.c
nldbl-vswprintf_chk.c
nldbl-vswprintf.c
nldbl-vswscanf.c
nldbl-vsyslog_chk.c
nldbl-vsyslog.c * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (NLDBL_DECL): Don't try 2006-01-14 22:08:18 +00:00
nldbl-vwprintf_chk.c
nldbl-vwprintf.c
nldbl-vwscanf.c
nldbl-wcstold_l.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
nldbl-wcstold.c
nldbl-wcstoldint.c
nldbl-wprintf_chk.c
nldbl-wprintf.c
nldbl-wscanf.c
nldbl-y0.c
nldbl-y1.c
nldbl-yn.c
s_atan.c
s_ceil.c
s_clog10.c Define and use libm_alias_double. 2017-09-13 01:13:30 +00:00
s_clog10l.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
s_copysign.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_finite.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_floor.c
s_fma.c Implement accurate fma. 2010-10-13 22:27:03 -04:00
s_frexp.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_isinf.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_isnan.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_ldexp.c Clear up log1p, ldexp, scalbn, scalbln compat handling. 2017-09-13 15:47:26 +00:00
s_ldexpl.c Clear up log1p, ldexp, scalbn, scalbln compat handling. 2017-09-13 15:47:26 +00:00
s_llround.c
s_logb.c
s_lround.c
s_modf.c Remove IS_IN_libm 2014-11-24 11:41:47 +05:30
s_nearbyint.c
s_nextafter.c Use libm_alias_double in math/. 2017-09-15 23:10:02 +00:00
s_nexttowardfd.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
s_remquo.c
s_rint.c
s_round.c
s_significand.c
s_significandl.c
s_tan.c
s_trunc.c
Versions * include/stdio.h (__asprintf_chk, __dprintf_chk, 2008-03-05 07:05:13 +00:00
w_exp10_compat.c Use libm_alias_double in math/. 2017-09-15 23:10:02 +00:00
w_exp10l_compat.c Fix powerpc64le problem from last ldbl-opt patch. 2017-09-18 23:26:35 +00:00
w_lgamma_compat.c Fix lgamma setting signgam for ISO C (bug 15421). 2015-11-20 22:49:59 +00:00
w_lgamma_compatl.c Fix lgamma setting signgam for ISO C (bug 15421). 2015-11-20 22:49:59 +00:00
w_lgamma_r_compat.c Move w_lgamma_r to libm-compat-calls-auto 2017-02-08 17:36:09 -02:00
w_lgammal_r_compat.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
w_remainder_compat.c Use libm_alias_double in math/. 2017-09-15 23:10:02 +00:00
w_remainderl_compat.c Fix powerpc64le problem from last ldbl-opt patch. 2017-09-18 23:26:35 +00:00
w_scalb_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_scalbl_compat.c Move wrappers to libm-compat-calls-auto 2017-01-04 16:25:04 -02:00
w_scalbln.c Clear up log1p, ldexp, scalbn, scalbln compat handling. 2017-09-13 15:47:26 +00:00