glibc/sysdeps/ieee754/ldbl-opt
Tulio Magno Quites Machado Filho 1ef9b6e0bf Do not redirect calls to __GI_* symbols, when redirecting to *ieee128
On platforms where long double has IEEE binary128 format as a third
option (initially, only powerpc64le), many exported functions are
redirected to their __*ieee128 equivalents.  This redirection is
provided by installed headers such as stdio-ldbl.h, and is supposed to
work correctly with user code.

However, during the build of glibc, similar redirections are employed,
in internal headers, such as include/stdio.h, in order to avoid extra
PLT entries.  These redirections conflict with the redirections to
__*ieee128, and must be avoided during the build.  This patch protects
the second redirections with a test for __LONG_DOUBLE_USES_FLOAT128, a
new macro that is defined to 1 when functions that deal with long double
typed values reuses the _Float128 implementation (this is currently only
true for powerpc64le).

Tested for powerpc64le, x86_64, and with build-many-glibcs.py.

Co-authored-by: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
2019-12-27 15:02:10 -03:00
..
bits Do not redirect calls to __GI_* symbols, when redirecting to *ieee128 2019-12-27 15:02:10 -03: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 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
libm-alias-ldouble.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
Makefile ldbl-opt: Reuse test cases from misc/ that check long double 2019-03-01 15:32:49 -03:00
math_ldbl_opt.c
math_ldbl_opt.h Use PRINTF_LDBL_IS_DBL instead of __ldbl_is_dbl. 2018-12-05 18:15:43 -02:00
nldbl-acos.c
nldbl-acosh.c
nldbl-asin.c
nldbl-asinh.c
nldbl-asprintf_chk.c
nldbl-asprintf.c
nldbl-atan2.c
nldbl-atan.c
nldbl-atanh.c
nldbl-cabs.c
nldbl-cacos.c
nldbl-cacosh.c
nldbl-canonicalize.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07: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 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-compat.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-conj.c
nldbl-copysign.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +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-dadd.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-ddiv.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-dmul.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-dprintf_chk.c
nldbl-dprintf.c
nldbl-dsub.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-erf.c
nldbl-erfc.c
nldbl-exp2.c
nldbl-exp10.c
nldbl-exp.c
nldbl-expm1.c
nldbl-fabs.c
nldbl-fadd.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-fdim.c
nldbl-fdiv.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
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 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-fmin.c
nldbl-fminmag.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-fmod.c
nldbl-fmul.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-fprintf_chk.c
nldbl-fprintf.c
nldbl-frexp.c
nldbl-fromfp.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-fromfpx.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-fscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-fsub.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-fwprintf_chk.c
nldbl-fwprintf.c
nldbl-fwscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-gamma.c
nldbl-getpayload.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-hypot.c
nldbl-ilogb.c
nldbl-iovfscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
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
nldbl-isoc99_fwscanf.c
nldbl-isoc99_scanf.c
nldbl-isoc99_sscanf.c
nldbl-isoc99_swscanf.c
nldbl-isoc99_vfscanf.c
nldbl-isoc99_vfwscanf.c
nldbl-isoc99_vscanf.c
nldbl-isoc99_vsscanf.c
nldbl-isoc99_vswscanf.c
nldbl-isoc99_vwscanf.c
nldbl-isoc99_wscanf.c
nldbl-j0.c
nldbl-j1.c
nldbl-jn.c
nldbl-ldexp.c
nldbl-lgamma_r.c
nldbl-lgamma.c
nldbl-llogb.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07: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 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-nexttoward.c
nldbl-nexttowardf.c
nldbl-nextup.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-obstack_printf_chk.c
nldbl-obstack_printf.c
nldbl-obstack_vprintf_chk.c
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
nldbl-qfcvt_r.c
nldbl-qfcvt.c
nldbl-qgcvt.c
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 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-scalb.c
nldbl-scalbln.c
nldbl-scalbn.c
nldbl-scanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-setpayload.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-setpayloadsig.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07: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 Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
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 Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-syslog_chk.c
nldbl-syslog.c
nldbl-tan.c
nldbl-tanh.c
nldbl-tgamma.c
nldbl-totalorder.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-totalordermag.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-trunc.c
nldbl-ufromfp.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-ufromfpx.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nldbl-vasprintf_chk.c
nldbl-vasprintf.c
nldbl-vdprintf_chk.c
nldbl-vdprintf.c
nldbl-vfprintf_chk.c
nldbl-vfprintf.c
nldbl-vfscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-vfwprintf_chk.c
nldbl-vfwprintf.c
nldbl-vfwscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-vprintf_chk.c
nldbl-vprintf.c
nldbl-vscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-vsnprintf_chk.c
nldbl-vsnprintf.c
nldbl-vsprintf_chk.c
nldbl-vsprintf.c
nldbl-vsscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-vswprintf_chk.c
nldbl-vswprintf.c
nldbl-vswscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-vsyslog_chk.c
nldbl-vsyslog.c
nldbl-vwprintf_chk.c
nldbl-vwprintf.c
nldbl-vwscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
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 Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
nldbl-y0.c
nldbl-y1.c
nldbl-yn.c
s_clog10.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
s_clog10l.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07: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_frexp.c Use libm_alias_double for dbl-64 frexp. 2017-10-03 20:56:46 +00:00
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 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
s_ldexpl.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
s_modf.c Use libm_alias_double for dbl-64 modf. 2017-10-03 23:46:23 +00:00
s_nextafter.c Use libm_alias_double in math/. 2017-09-15 23:10:02 +00:00
s_nexttowardfd.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
test-narrow-macros-ldbl-64.c Add test infrastructure for narrowing libm functions. 2018-02-09 21:55:48 +00:00
test-nldbl-redirect.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
Versions ldbl-opt: Add error and error_at_line (bug 23984) 2019-03-01 15:26:36 -03:00
w_exp10_compat.c Use libm_alias_double in math/. 2017-09-15 23:10:02 +00:00
w_exp10l_compat.c Use generic alias macros in ldbl-opt. 2017-10-11 02:51:39 +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 ldbl-opt/w_lgamma_compatl.c libm_alias_ldouble_other usage. 2017-10-13 16:38:37 +00:00
w_remainder_compat.c Use libm_alias_double in math/. 2017-09-15 23:10:02 +00:00
w_remainderl_compat.c Use generic alias macros in ldbl-opt. 2017-10-11 02:51:39 +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