diff options
author | Gabriel F. T. Gomes <gabriel@inconstante.eti.br> | 2018-06-28 22:38:55 -0300 |
---|---|---|
committer | Gabriel F. T. Gomes <gabriel@inconstante.eti.br> | 2018-07-02 10:51:01 -0300 |
commit | b7b88cea4151d85eafd7ababc2e4b7ae1daeedf5 (patch) | |
tree | 9e39b1e246cf3201522aafdbe073d29281684334 /ChangeLog | |
parent | 2b445206a1a450af0e6e66d78652e1ffd80685e2 (diff) | |
download | glibc-b7b88cea4151d85eafd7ababc2e4b7ae1daeedf5.zip glibc-b7b88cea4151d85eafd7ababc2e4b7ae1daeedf5.tar.gz glibc-b7b88cea4151d85eafd7ababc2e4b7ae1daeedf5.tar.bz2 |
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.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -1,3 +1,30 @@ +2018-07-02 Gabriel F. T. Gomes <gabriel@inconstante.eti.br> + + * 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 <szabolcs.nagy@arm.com> * sysdeps/ieee754/flt-32/e_powf.c (__powf): Use uint32_t. |