glibc/libio
Gabriel F. T. Gomes 1626f499d1 Prepare vfprintf to use __printf_fp/__printf_fphex with float128 arg
On powerpc64le, long double can currently take two formats: the same as
double (-mlong-double-64) or IBM Extended Precision (default with
-mlong-double-128 or explicitly with -mabi=ibmlongdouble).  The internal
implementation of printf-like functions is aware of these possibilities
and properly parses floating-point values from the variable arguments,
before making calls to __printf_fp and __printf_fphex.  These functions
are also aware of the format possibilities and know how to convert both
formats to string.

When library support for TS 18661-3 was added to glibc, __printf_fp and
__printf_fphex were extended with support for an additional type
(__float128/_Float128) with a different format (binary128).  Now that
powerpc64le is getting support for its third long double format, and
taking into account that this format is the same as the format of
__float128/_Float128, this patch extends __vfprintf_internal to properly
call __printf_fp and __printf_fphex with this new format.

Tested for powerpc64le (with additional patches to actually enable the
use of these preparations) and for x86_64.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2019-06-27 17:51:59 -03:00
..
bits Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
__fbufsize.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
__flbf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
__fpending.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
__fpurge.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
__freadable.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
__freading.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
__fsetlocking.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
__fwritable.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
__fwriting.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
bug-fopena+.c
bug-fseek.c
bug-ftell.c
bug-memstream1.c
bug-mmap-fflush.c
bug-rewind2.c
bug-rewind.c
bug-ungetc2.c
bug-ungetc3.c
bug-ungetc4.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
bug-ungetc.c
bug-ungetwc1.c
bug-ungetwc2.c
bug-wfflush.c
bug-wmemstream1.c
bug-wsetpos.c
clearerr_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
clearerr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Depend
fcloseall.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
feof_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
feof.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ferror_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ferror.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
filedoalloc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fileno.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fileops.c libio: Remove codecvt vtable [BZ #24588] 2019-05-20 21:54:57 +02:00
fmemopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fputc_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fputc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fputwc_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fputwc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
freopen64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
freopen.c libio: freopen of default streams crashes in old programs [BZ #24632] 2019-06-12 14:48:33 +02:00
fseek.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fseeko64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fseeko.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ftello64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ftello.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fwide.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fwprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
fwscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
genops.c libio: do not attempt to free wide buffers of legacy streams [BZ #24228] 2019-06-20 17:32:07 +00:00
getc_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getchar_u.c libio: Use stdin consistently for input functions [BZ #24153] 2019-02-03 09:38:24 +01:00
getchar.c libio: Use stdin consistently for input functions [BZ #24153] 2019-02-03 09:38:24 +01:00
getwc_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getwc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getwchar_u.c libio: Use stdin consistently for input functions [BZ #24153] 2019-02-03 09:38:24 +01:00
getwchar.c libio: Use stdin consistently for input functions [BZ #24153] 2019-02-03 09:38:24 +01:00
iofclose.c libio: Fix gconv-related memory leak [BZ #24583] 2019-05-21 12:03:54 +02:00
iofdopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofflush_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofflush.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofgetpos64.c libio: Remove codecvt vtable [BZ #24588] 2019-05-20 21:54:57 +02:00
iofgetpos.c libio: Remove codecvt vtable [BZ #24588] 2019-05-20 21:54:57 +02:00
iofgets_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofgets.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofgetws_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofgetws.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofopen64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofopncook.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofputs_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofputs.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofputws_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofputws.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofread_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofread.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofsetpos64.c libio: Remove codecvt vtable [BZ #24588] 2019-05-20 21:54:57 +02:00
iofsetpos.c libio: Remove codecvt vtable [BZ #24588] 2019-05-20 21:54:57 +02:00
ioftell.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofwide.c libio: Remove codecvt vtable [BZ #24588] 2019-05-20 21:54:57 +02:00
iofwrite_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iofwrite.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iogetdelim.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iogetline.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iogets.c libio: Use stdin consistently for input functions [BZ #24153] 2019-02-03 09:38:24 +01:00
iogetwline.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iolibio.h libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr 2019-02-18 16:37:00 +01:00
iopadn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iopopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ioputs.c libio: use stdout in puts and putchar, etc [BZ #24051]. 2019-01-31 14:07:45 -08:00
ioseekoff.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ioseekpos.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iosetbuffer.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iosetvbuf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ioungetc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ioungetwc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iovdprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
iovsprintf.c Set behavior of sprintf-like functions with overlapping source and destination 2019-01-02 13:53:52 -02:00
iovsscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
iovswscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
iowpadn.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
libc_fatal.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
libio.h libio: Remove codecvt vtable [BZ #24588] 2019-05-20 21:54:57 +02:00
libioP.h Prepare vfprintf to use __printf_fp/__printf_fphex with float128 arg 2019-06-27 17:51:59 -03:00
Makefile libio: do not attempt to free wide buffers of legacy streams [BZ #24228] 2019-06-20 17:32:07 +00:00
memstream.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
obprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldfileops.c libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr 2019-02-18 16:37:00 +01:00
oldfmemopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldiofclose.c libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr 2019-02-18 16:37:00 +01:00
oldiofdopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldiofgetpos64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldiofgetpos.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldiofopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldiofsetpos64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldiofsetpos.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldiopopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldpclose.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
oldstdfiles.c libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr 2019-02-18 16:37:00 +01:00
oldtmpfile.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
pclose.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
peekc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
putc_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
putc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
putchar_u.c libio: use stdout in puts and putchar, etc [BZ #24051]. 2019-01-31 14:07:45 -08:00
putchar.c libio: use stdout in puts and putchar, etc [BZ #24051]. 2019-01-31 14:07:45 -08:00
putwc_u.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
putwc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
putwchar_u.c libio: use stdout in puts and putchar, etc [BZ #24051]. 2019-01-31 14:07:45 -08:00
putwchar.c libio: use stdout in puts and putchar, etc [BZ #24051]. 2019-01-31 14:07:45 -08:00
readline.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
rewind.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
setbuf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
setlinebuf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
stdfiles.c libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr 2019-02-18 16:37:00 +01:00
stdio.c libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr 2019-02-18 16:37:00 +01:00
stdio.h Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
strfile.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
strops.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
swprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
swscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
test-fmemopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-freopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
test-freopen.sh Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst_getwc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst_getwc.input
tst_putwc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst_swprintf.c
tst_swscanf.c
tst_wprintf2.c
tst_wprintf.c
tst_wscanf.c
tst_wscanf.input
tst-atime.c Don't reduce test timeout to less than default 2018-10-17 09:34:13 +02:00
tst-bz22415.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-bz24051.c libio: use stdout in puts and putchar, etc [BZ #24051]. 2019-01-31 14:07:45 -08:00
tst-bz24153.c Fix wide char format specifier in libio/tst-bz24153.c. 2019-02-06 12:29:02 +01:00
tst-bz24228.c libio: do not attempt to free wide buffers of legacy streams [BZ #24228] 2019-06-20 17:32:07 +00:00
tst-bz24228.map libio: do not attempt to free wide buffers of legacy streams [BZ #24228] 2019-06-20 17:32:07 +00:00
tst-eof.c
tst-ext2.c
tst-ext.c
tst-fgetc-after-eof.c [BZ 1190] Make EOF sticky in stdio. 2018-03-13 08:31:56 -04:00
tst-fgetwc.c
tst-fgetwc.input
tst-fgetws.c
tst-fopenloc2.c
tst-fopenloc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fputws.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-freopen.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fseek.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-ftell-active-handler.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-ftell-append.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-ftell-partial-wide.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-fwrite-error.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-memstream1.c
tst-memstream2.c
tst-memstream3.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-memstream4.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-memstream.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-mmap2-eofsync.c
tst-mmap-eofsync.c Remove miscellaneous debris from libio. 2018-02-21 14:39:54 -05:00
tst-mmap-fflushsync.c
tst-mmap-offend.c
tst-mmap-setvbuf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-popen1.c
tst-readline.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-setvbuf1.c
tst-sprintf-chk-ub.c Set behavior of sprintf-like functions with overlapping source and destination 2019-01-02 13:53:52 -02:00
tst-sprintf-ub.c Set behavior of sprintf-like functions with overlapping source and destination 2019-01-02 13:53:52 -02:00
tst-sscanf.c
tst-swscanf.c
tst-ungetwc1.c
tst-ungetwc2.c
tst-vtables-common.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-vtables-interposed.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-vtables.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wfile-ascii.c libio: Fix gconv-related memory leak [BZ #24583] 2019-05-21 12:03:54 +02:00
tst-wfile-gconv.c libio: Fix gconv-related memory leak [BZ #24583] 2019-05-21 12:03:54 +02:00
tst-wfile-sync.c Fix crash in _IO_wfile_sync (bug 20568) 2019-05-15 16:47:09 +02:00
tst-wfile-sync.input Fix crash in _IO_wfile_sync (bug 20568) 2019-05-15 16:47:09 +02:00
tst-widetext.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-widetext.input
tst-wmemstream1.c
tst-wmemstream2.c
tst-wmemstream3.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-wmemstream4.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
vasprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Versions libio: Implement internal function __libc_readline_unlocked 2018-07-06 17:52:54 +02:00
vscanf.c libio: Use stdin consistently for input functions [BZ #24153] 2019-02-03 09:38:24 +01:00
vsnprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
vswprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
vtables.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
vwprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
vwscanf.c libio: Use stdin consistently for input functions [BZ #24153] 2019-02-03 09:38:24 +01:00
wfiledoalloc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wfileops.c libio: Remove codecvt vtable [BZ #24588] 2019-05-20 21:54:57 +02:00
wgenops.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wmemstream.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wprintf.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wscanf.c Use C99-compliant scanf under _GNU_SOURCE with modern compilers. 2019-01-03 11:12:39 -05:00
wstrops.c Break more lines before not after operators. 2019-02-25 13:19:19 +00:00