From b7b88cea4151d85eafd7ababc2e4b7ae1daeedf5 Mon Sep 17 00:00:00 2001 From: "Gabriel F. T. Gomes" Date: Thu, 28 Jun 2018 22:38:55 -0300 Subject: ldbl-128ibm-compat: Add printf_size Since the addition of the _Float128 API, strfromf128 and printf_size use __printf_fp to print _Float128 values. This is achieved by setting the 'is_binary128' member of the 'printf_info' structure to one. Now that the format of long double on powerpc64le is getting a third option, this mechanism is reused for long double values that have binary128 format (i.e.: when -mabi=ieeelongdouble). This patch adds __printf_sizeieee128 as an exported symbol, but doesn't provide redirections from printf_size, yet. All redirections will be installed in a future commit, once all other functions that print or read long double values with binary128 format are ready. In __printf_fp, when 'is_binary128' is one, the floating-point argument is treated as if it was of _Float128 type, regardless of the value of 'is_long_double', thus __printf_sizeieee128 sets 'is_binary128' to the same value of 'is_long_double'. Otherwise, double values would not be printed correctly. Tested for powerpc64le. --- ChangeLog | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 5054985310..b08a165d01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,30 @@ +2018-07-02 Gabriel F. T. Gomes + + * stdio-common/Makefile (test-srcs): Add tst-printfsz-islongdouble. + (tests-special) Add $(objpfx)tst-printfsz-islongdouble.out. + ($(objpfx)tst-printfsz-islongdouble.out): New build and run rule. + * stdio-common/tst-printfsz-islongdouble.c: New file. + * stdio-common/tst-printfsz-islongdouble.sh: Likewise. + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: + [subdir == stdio-common] (routines): Add ieee128-printf_size. + [subdir == stdio-common] (tests-internal): Add + test-printf-size-ieee128, and test-printf-size-ibm128. + [subdir == stdio-common] (CFLAGS-test-printf-size-ieee128.c) + (CFLAGS-test-printf-size-ibm128.c): New variables. + [subdir == stdio-common] (tests-special): Add + $(objpfx)test-printf-size-ieee128.out and + $(objpfx)test-printf-size-ibm128.out. + [subdir == stdio-common] ($(objpfx)test-printf-size-ieee128.out) + ($(objpfx)test-printf-size-ibm128.out): New build and run rules. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add + __printf_sizeieee128. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_size.c: + New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-size-ibm128.c: + Likewise. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-size-ieee128.c: + Likewise. + 2018-07-02 Szabolcs Nagy * sysdeps/ieee754/flt-32/e_powf.c (__powf): Use uint32_t. -- cgit v1.2.3