This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
[glibc] Deleted branch gabriel/powerpc-ieee128-printscan
- From: Gabriel F.T.Gomes <gftg at sourceware dot org>
- To: glibc-cvs at sourceware dot org
- Date: 15 Oct 2019 19:00:53 -0000
- Subject: [glibc] Deleted branch gabriel/powerpc-ieee128-printscan
The branch 'gabriel/powerpc-ieee128-printscan' was deleted.
It previously pointed to:
5f49077... TEMP: powerpc64le: Enable support for IEEE long double
Diff:
!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------
5f49077... TEMP: powerpc64le: Enable support for IEEE long double
ff8094b... ldbl-128ibm-compat: Compiler flags for stdio functions
e9ec75d... Do not redirect calls to __GI_* symbols, when redirecting t
cd3b0ae... ldbl-128ibm-compat: Add *cvt functions
e68d5d6... Refactor *cvt functions implementation (4/4)
09ad2c6... Refactor *cvt functions implementation (3/4)
9e6e2c4... Refactor *cvt functions implementation (2/4)
ad0747f... Refactor *cvt functions implementation (1/4)
ab9d8a9... Remove hidden_def and hidden_proto from cvt functions
5ee6bab... ldbl-128ibm-compat: Add tests for strfroml, strtold, and wc
fcb4403... ldbl-128ibm-compat: Add tests for strfmon and strfmon_l
ee48071... ldbl-128ibm-compat: Add strfmon_l with IEEE long double for
296b3a2... ldbl-128ibm-compat: Add syslog functions
2f55e5a... ldbl-128ibm-compat: Add obstack printing functions
3a15cc5... ldbl-128ibm-compat: Add ISO C99 versions of scanf functions
ee06790... ldbl-128ibm-compat: Add tests for err.h and error.h functio
649699a... ldbl-128ibm-compat: Add error.h functions
cf58352... ldbl-128ibm-compat: Add err.h functions
5e4992a... ldbl-128ibm-compat: Add argp_error and argp_failure
34da91f... ldbl-128ibm-compat: Add wide character scanning functions
3f27187... ldbl-128ibm-compat: Add regular character scanning function
3b54a47... ldbl-128ibm-compat: Test positional arguments
fdb36db... ldbl-128ibm-compat: Test double values
03e0ef4... ldbl-128ibm-compat: Add wide character, fortified printing
553c5b6... ldbl-128ibm-compat: Add regular character, fortified printi
812e611... ldbl-128ibm-compat: Add wide character printing functions
99ec031... ldbl-128ibm-compat: Add regular character printing function
commit 5f49077273274a266f939f6ffcdfab88f9238ec0
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:48:28 2019 -0300
TEMP: powerpc64le: Enable support for IEEE long double
DO NOT COMMIT!!!!!
<NEWS entry>
On platforms where long double may have two different formats, i.e.: the
same format as double (64-bits) or something else (128-bits), building
with -mlong-double-128 is the default and function calls in the user
program match the name of the function in Glibc. When building with
-mlong-double-64, Glibc installed headers redirect such calls to the
appropriate function.
This patch adds similar redirections to be used by builds in IEEE long
double mode (-mabi=ieeelongdouble). It also skips some uses of
libc_hidden_proto in internal headers, because they also produce
redirections, causing a redirection conflict.
Tested for powerpc64le.
* argp/argp.h: When in IEEE long double mode, include the header
that produces the redirections.
* libio/stdio.h: Likewise.
* misc/err.h: Likewise.
* misc/error.h: Likewise.
* misc/sys/syslog.h: Likewise.
* stdio-common/printf.h: Likewise.
* stdlib/monetary.h: Likewise.
* stdlib/stdlib.h: Likewise.
* wcsmbs/wchar.h: Likewise.
* libio/bits/stdio-ldbl.h: Add specific redirections for IEEE
long double, when the generic redirection is not enough to
distinguish between -mlong-double-64 and -mabi=ieeelongdouble.
* misc/bits/syslog-ldbl.h: Likewise.
* stdlib/bits/stdlib-ldbl.h: Likewise.
* wcsmbs/bits/wchar-ldbl.h: Likewise.
* include/stdlib.h: Skip some uses of libc_hidden_proto when in
IEEE long double mode.
* include/wchar.h: Likewise.
* misc/sys/cdefs.h
(__LDBL_REDIR1, __LDBL_REDIR1_DECL, __LDBL_REDIR)
(__LDBL_REDIR_DECL, __LDBL_REDIR2_DECL, __REDIRECT_LDBL)
(__LDBL_REDIR_NTH, __LDBL_REDIR1_NTH, __REDIRECT_NTH_LDBL):
New definitions for the IEEE long double case.
* sysdeps/ieee754/ldbl-128ibm-compat/bits/long-double.h: New
file.
commit ff8094b61200753a7c6f78b35998a71f006fec20
Author: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date: Mon Jul 30 12:04:40 2018 -0300
ldbl-128ibm-compat: Compiler flags for stdio functions
Some of the files that provide stdio.h and wchar.h functions have a
filename prefixed with 'io', such as 'iovsprintf.c'. On platforms that
imply ldbl-128ibm-compat, these files must be compiled with the flag
-mabi=ibmlongdouble. This patch adds this flag to their compilation.
Notice that this is not required for the other files that provide
similar functions, because filenames that are not prefixed with 'io'
have ldbl-128ibm-compat counterparts in the Makefile, which already adds
-mabi=ibmlongdouble to them.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
(ldbl-ibm128-files): Add $(objpfx)iovdprintf^,
$(objpfx)iovsprintf^, $(objpfx)iovsscanf^, $(objpfx)iovswscanf^,
$(objpfx)iovfscanf^, and $(objpfx)iovfwscanf^.
commit e9ec75dba7df41ad82f5e8b4efe63f673f142128
Author: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date: Tue Jul 24 16:06:23 2018 -0300
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.
* include/err.h: Protect the redirection of warn, warnx, vwarn,
vwarnx, verr, and verrx)
* include/stdio.h: Likewise for __asprintf, fprintf, vfprintf,
sprintf, __snprintf, and sscanf.
* include/sys/syslog.h: Likewise for syslog and vsyslog.
* include/wchar.h: Likewise for vswscanf.
commit cd3b0aec91170c687dad79179b50b4839d873d70
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:48:24 2019 -0300
ldbl-128ibm-compat: Add *cvt functions
commit e68d5d64a49f0ded47a84f440655f6cbc7c2943c
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:48:20 2019 -0300
Refactor *cvt functions implementation (4/4)
This patch is to be squashed with the other n/4 refactoring patches.
The changelog is in patch 1/4.
commit 09ad2c6b9111e53c39b36c612fc10c9913a29c89
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:48:16 2019 -0300
Refactor *cvt functions implementation (3/4)
This patch is to be squashed with the other n/4 refactoring patches.
The changelog is in patch 1/4.
commit 9e6e2c4dc7c9c831493fd27254577c568a58123d
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:48:12 2019 -0300
Refactor *cvt functions implementation (2/4)
This patch is to be squashed with the other n/4 refactoring patches.
The changelog is in patch 1/4.
commit ad0747f4be67d76756b965516a62e0ab92770524
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:48:08 2019 -0300
Refactor *cvt functions implementation (1/4)
This patch is to be squashed with the other n/4 refactoring patches.
The changelog for the squashed patches is as follows:
misc/efgcvt_r.c: Moved to...
misc/efgcvt_r-template.c: ... this file.
misc/qefgcvt_r.c: Moved to...
misc/efgcvt-template.c: ... this file.
misc/efgcvt-dbl-macros.h} | 51 +++---
misc/efgcvt-ldbl-macros.h} | 12 +-
misc/efgcvt.c | 126 +++------------
misc/efgcvt_r.c | 252 ++---------------------------
misc/qefgcvt.c | 43 +++--
misc/qefgcvt_r.c | 48 ++----
commit ab9d8a93f90363b6406982a06f074bb10f237a6e
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:48:04 2019 -0300
Remove hidden_def and hidden_proto from cvt functions
Some *cvt functions are not called from within libc, yet they use
hidden_def and hidden_proto. This patch cleans this up and adds
attribute_hidden to the declarations, for architectures that need it.
Tested for powerpc64le and x86_64.
commit 5ee6bab6cbac40293e2eb664d61d16e8eb625fb9
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:48:00 2019 -0300
ldbl-128ibm-compat: Add tests for strfroml, strtold, and wcstold
Since the commit
commit 86a0f56158bd9cbaf2d640e2e6c66539f4cbbcc1
Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
Date: Thu Jun 28 13:57:50 2018 +0530
ldbl-128ibm-compat: Introduce ieee128 symbols
IEEE long double versions of strfroml, strtold, and wcstold have been
prepared, but not exposed (which will only happen when the full support
for IEEE long double is complete). This patch adds tests for these
functions in both IBM and IEEE long double mode.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == stdlib] (tests-internal): Add test-strfrom-ibm128 and
test-strfrom-ieee128.
[subdir == wcsmbs] (tests-internal): Add test-wcstold-ibm128 and
test-wcstold-ieee128.
(CFLAGS-test-strfrom-ieee128.c, CLAGS-test-strfrom-ibm128.c)
(CFLAGS-test-wcstold-ieee128.c, CLAGS-test-wcstold-ibm128.c):
New variables.
($(objpfx)test-strfrom-ieee128): New rule.
($(objpfx)test-wcstold-ieee128): Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c:
New file.
* sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c:
Likewise.
commit fcb4403a4ee01f51580471f44c8f52bf640f48fa
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:56 2019 -0300
ldbl-128ibm-compat: Add tests for strfmon and strfmon_l
This patch adds elementary tests to check that strfmon and strfmon_l
correctly evaluate long double values with IBM Extended Precision and
IEEE binary128 format.
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile [subdir== stdlib]
(tests-internal): Add test-strfmon-ibm128 and
test-strfmon-ieee128.
(CFLAGS-test-strfmon-ibm128.c, CFLAGS-test-strfmon-ieee128.c):
New flags.
($(objpfx)tst-strfmon-ibm128.out)
($(objpfx)tst-strfmon-ieee128.out): Add $(gen-locales) as
dependency.
* sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ibm128.c:
New file.
* sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c:
Likewise.
commit ee4807101101fc7acac727b249043f562ad936d5
Author: Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
Date: Thu Jun 28 15:17:42 2018 +0530
ldbl-128ibm-compat: Add strfmon_l with IEEE long double format
Similarly to what has been done for printf-like functions, more
specifically to the internal implementation in __vfprintf_internal, this
patch extends __vstrfmon_l_internal to deal with long double values with
binary128 format (as a third format option and reusing the float128
implementation).
2018-06-25 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
Gabriel F. T. Gomes <gabriel@inconstante.eti.br>
* include/monetary.h (STRFMON_LDBL_USES_FLOAT128): New constant.
* stdlib/strfmon_l.c: Include bits/floatn.h.
(__vstrfmon_l_internal): Add support for printing long double
values reusing the float128 implementation.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == stdlib] (ldbl-extra-routines): Add strfmon and
strfmon_l.
(CFLAGS-strfmon.c, CFLAGS-strfmon_l.c): New variables.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__strfmonieee128 and __strfmonieee128_l.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c: New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c: New file.
* sysdeps/powerpc/powerpc64/le/Makefile: Add -mabi=ibmlongdouble
to build strfmon and strfmon_l.
commit 296b3a21b08dd8c239b59d79e848c6437c545bf2
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:51 2019 -0300
ldbl-128ibm-compat: Add syslog functions
I'm using 'syslog (LOG_DEBUG, etc.);' in the test case, which I believe
will not print to the console, but I'm not sure if changing some system
setting to high verbosity will disturb people's lives. Please advise.
:)
-- 8< --
Similarly to __vfprintf_internal and __vfscanf_internal, the internal
implementation of syslog functions (__vsyslog_internal) takes a
'mode_flags' parameter used to select the format of long double
parameters. This patch adds variants of the syslog functions that set
'mode_flags' to PRINTF_LDBL_USES_FLOAT128, thus enabling the correct
printing of long double values on powerpc64le, when long double has IEEE
binary128 format (-mabi=ieeelongdouble).
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == misc] (ldbl-extra-routines): Add syslog.
[subdir == misc] (tests-internal): Add test-syslog-ieee128,
test-syslog-ibm128, test-syslog-chk-ieee128, test-syslog-chk-ibm128.
[subdir == misc] (CFLAGS-test-syslog-ieee128.c)
(CFLAGS-test-syslog-ibm128.c, CFLAGS-test-syslog-chk-ieee128.c)
(CFLAGS-test-syslog-chk-ibm128.c): New variables.
[subdir == misc] (tests-special): Add
$(objpfx)test-syslog-ieee128.out,
$(objpfx)test-syslog-ibm128.out,
$(objpfx)test-syslog-chk-ieee128.out, and
$(objpfx)test-syslog-chk-ibm128.out.
[subdir == misc] ($(objpfx)test-syslog-ieee128.out)
($(objpfx)test-syslog-ibm128.out)
($(objpfx)test-syslog-chk-ieee128.out)
($(objpfx)test-syslog-chk-ibm128.out): New build and run rules.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__syslogieee128, __vsyslogieee128, __syslog_chkieee128, and
__vsyslog_chkieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c:
New file.
* sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat.sh:
Likewise.
commit 2f55e5a5d89e089d6e8f629aaff7515db26246f6
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:47 2019 -0300
ldbl-128ibm-compat: Add obstack printing functions
Similar to the functions from the *printf family, this patch adds
implementations for __obstack_*printf* functions that set the
'mode_flags' parameter to PRINTF_LDBL_USES_FLOAT128, before making calls
to __vfprintf_internal (indirectly through __obstack_vprintf_internal).
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == stdio-common] (ldbl-extra-routines): Add obprintf,
obstack_chk, vobstack_chk.
[subdir == stdio-common] (tests-internal): Add
test-obstack-ieee128, test-obstack-ibm128,
test-obstack-chk-ieee128, and test-obstack-chk-ibm128.
[subdir == stdio-common] (CFLAGS-test-obstack-ieee128.c)
(CFLAGS-test-obstack-ibm128.c, CFLAGS-test-obstack-chk-ieee128.c)
(CFLAGS-test-obstack-chk-ibm128.c): New variable.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc) Add
__obstack_printfieee128, __obstack_vprintfieee128,
__obstack_printf_chkieee128, and __obstack_vprintf_chkieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c:
New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat.c:
Likewise.
commit 3a15cc582aa8a1a670f659655783daa60288c7f0
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:43 2019 -0300
ldbl-128ibm-compat: Add ISO C99 versions of scanf functions
In the format string for *scanf functions, the '%as', '%aS', and '%a[]'
modifiers behave differently depending on ISO C99 compatibility and on
_GNU_SOURCE. When _GNU_SOURCE is not set and when in compatibility with
ISO C99, these modifiers consume a floating-point argument. Otherwise,
they behave like ascanf, and allocate memory for the output. This patch
adds the IEEE binary128 variant of these functions for the third long
double format on powerpc64le.
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == stdio-common] (ldbl-extra-routines): Add
isoc99_fscanf, isoc99_scanf, isoc99_sscanf, isoc99_vfscanf,
isoc99_vscanf, isoc99_vsscanf,
[subdir == wcsmbs] (ldbl-extra-routines): Add isoc99_fwscanf,
isoc99_swscanf, isoc99_wscanf, isoc99_vfwscanf, isoc99_vswscanf,
and isoc99_vwscanf.
[subdir == stdio-common] (tests-internal): Add
test-isoc99-scanf-ieee128, test-isoc99-scanf-ibm128,
test-isoc99-wscanf-ieee128, and test-isoc99-wscanf-ibm128.
[subdir == stdio-common] (CFLAGS-test-isoc99-scanf-ieee128.c)
(CFLAGS-test-isoc99-scanf-ibm128.c)
(CFLAGS-test-isoc99-wscanf-ieee128.c)
(CFLAGS-test-isoc99-wscanf-ibm128.c): New variable.
[subdir == stdio-common] ($(objpfx)test-isoc99-scanf-ieee128)
($(objpfx)test-isoc99-wscanf-ieee128): Add $(f128-loader-link)
to gnulib.
[subdir == stdio-common] (tests-special): Add
$(objpfx)test-isoc99-scanf-ieee128.out,
$(objpfx)test-isoc99-scanf-ibm128.out,
$(objpfx)test-isoc99-wscanf-ieee128.out, and
$(objpfx)test-isoc99-wscanf-ibm128.out.
($(objpfx)test-isoc99-scanf-ieee128.out)
($(objpfx)test-isoc99-scanf-ibm128.out)
($(objpfx)test-isoc99-wscanf-ieee128.out)
($(objpfx)test-isoc99-wscanf-ibm128.out): New build and run rules.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__isoc99_fscanfieee128, __isoc99_scanfieee128,
__isoc99_sscanfieee128, __isoc99_vfscanfieee128,
__isoc99_vscanfieee128, __isoc99_vsscanfieee128,
__isoc99_fwscanfieee128, __isoc99_swscanfieee128,
__isoc99_wscanfieee128, __isoc99_vfwscanfieee128,
__isoc99_vswscanfieee128, and __isoc99_vwscanfieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c:
New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ldbl-compat-template.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ldbl-compat.sh:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c:
Protect the declaration of variables based on ISO C99 feature
test macros.
commit ee06790283060ba54e5b83e75e57e7288f50a971
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:39 2019 -0300
ldbl-128ibm-compat: Add tests for err.h and error.h functions
Add tests for the functions from err.h and error.h that can take
positional long double parameters.
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
(tests-internal): Add tst-ibm128-warn, tst-ieee128-warn,
tst-ibm128-error, tst-ieee128-error.
($(objpfx)tst-ibm128-error.c, $(objpfx)tst-ieee128-error.c):
New rules.
(CFLAGS-tst-ibm128-warn.c): New variable.
(CFLAGS-tst-ibm128-error.c): Likewise.
(CFLAGS-tst-ieee128-warn.c): Likewise.
(CFLAGS-tst-ieee128-error.c): Likewise.
commit 649699a1d0439889d542cb4082d06d9d297f2922
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:35 2019 -0300
ldbl-128ibm-compat: Add error.h functions
Use the recently added, internal functions, __error_at_line_internal and
__error_internal, to provide error.h functions that can take long double
arguments with IEEE binary128 format on platforms where long double can
also take double format or some non-IEEE format (currently, this means
powerpc64le).
Tested for powerpc64le.
* misc/errorP.h: New file.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == misc] (ldbl-extra-routines): Add error.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__error_at_lineieee128 and __errorieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c: New file.
commit cf583526361811bc3445409a4c8f5af0e1ecd345
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:30 2019 -0300
ldbl-128ibm-compat: Add err.h functions
Use the recently added, internal functions, __vwarnx_internal and
__vwarn_internal, to provide err.h functions that can take long double
arguments with IEEE binary128 format on platforms where long double can
also take double format or some non-IEEE format (currently, this means
powerpc64le).
Tested for powerpc64le.
* misc/errP.h: New file.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == misc] (ldbl-extra-routines): Add err.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__warnieee128, __warnxieee128, __vwarnieee128, __vwarnxieee128
__errieee128, __errxieee128, __verrieee128, and __verrxieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c: New file.
commit 5e4992a36d45adb9fb21d1e99245ec811906db1a
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:25 2019 -0300
ldbl-128ibm-compat: Add argp_error and argp_failure
Use the recently added, internal functions, __argp_error_internal and
__argp_failure_internal, to provide argp_error and argp_failure that can
take long double arguments with IEEE binary128 format on platforms where
long double can also take double format or some non-IEEE format
(currently, this means powerpc64le).
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == argp] (ldbl-extra-routines): Add argp-help.
[subdir == argp] ($(objpfx)tst-ieee128-argp.c)
($(objpfx)tst-ibm128-argp.c): New rule to copy the test from
the non-sysdeps directory to the build directory.
[subdir == argp] (tests-internal): Add tst-ieee128-argp,
tst-ibm128-argp.
[subdir == argp] (CFLAGS-tst-ieee128-argp.c): New variable.
[subdir == argp] (CFLAGS-tst-ibm128-argp.c): Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__argp_errorieee128 and __argp_failureieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c: New file.
commit 34da91f4526611173cfe84b460ccb52dccd865b8
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:21 2019 -0300
ldbl-128ibm-compat: Add wide character scanning functions
Similarly to what was done for regular character scanning functions,
this patch uses the new mode mask, SCANF_LDBL_USES_FLOAT128, in the
'mode' argument of the wide characters scanning function,
__vfwscanf_internal (which is also extended to support scanning
floating-point values with IEEE binary128, by redirecting calls to
__wcstold_internal to __wcstof128_internal).
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == libio] (ldbl-extra-routines): Add fwscanf, swscanf,
wscanf, vswscanf, and vwscanf
[subdir == stdio-common] (ldbl-extra-routines): Add vfwscanf.
(CFLAGS-vfwscanf-internal.c): Add -mfloat128 to the compiler
command used to build vfwscanf-internal.c. This is needed to
extend __vfwscanf_internal with the support to redirect the call
to __wcstold_internal to __wcstof128_internal.
(tests-internal): Add test-wscanf-ieee128 and test-wscanf-ibm128.
(CFLAGS-test-wscanf-ieee128.c): New variable.
(CFLAGS-test-wscanf-ibm128.c): Likewise.
($(objpfx)test-wscanf-ieee128): Link the loader after libgcc.
[run-built-tests] (tests-special): Add
$(objpfx)test-wscanf-ieee128.out and
$(objpfx)test-wscanf-ibm128.out.
($(objpfx)test-wscanf-ieee128.out): New build and run rules.
($(objpfx)test-wscanf-ibm128.out): Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions: Add
__fwscanfieee128, __swscanfieee128, __wscanfieee128,
__vfwscanfieee128, __vswscanfieee128, and __vwscanfieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c: New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ibm128.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ieee128.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ldbl-compat.c:
Likewise.
commit 3f27187fb28c21c56370d95cf2305c126abc8bac
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:16 2019 -0300
ldbl-128ibm-compat: Add regular character scanning functions
The 'mode' argument to __vfscanf_internal allows the selection of the
long double format for all long double arguments requested by the format
string. Currently, there are two possibilities: long double with the
same format as double or long double as something else. The 'something
else' format varies between architectures, and on powerpc64le, it means
IBM Extended Precision format.
In preparation for the third option of long double format on
powerpc64le, this patch uses the new mode mask,
SCANF_LDBL_USES_FLOAT128, which tells __vfscanf_internal to call
__strtof128_internal, instead of __strtold_internal, and save the output
into a _Float128 variable.
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == stdio-common] (ldbl-extra-routines): Add fscanf,
scanf, sscanf, vfscanf, vscanf, and vsscanf.
(CFLAGS-vfscanf-internal.c): Add -mfloat128 to the compiler
command used to build vfscanf-internal.c. This is needed to
extend __vfscanf_internal with the support to redirect the call
to __strtold_internal to __strtof128_internal.
(tests-internal): Add test-scanf-ieee128 and test-scanf-ibm128.
(CFLAGS-test-scanf-ieee128.c): New variable.
(CFLAGS-test-scanf-ibm128.c): Likewise.
($(objpfx)test-scanf-ieee128): Link the loader after libgcc.
[run-built-tests] (tests-special): Add
$(objpfx)test-scanf-ieee128.out and
$(objpfx)test-scanf-ibm128.out.
($(objpfx)test-scanf-ieee128.out): New build and run rule.
($(objpfx)test-scanf-ibm128.out): Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__fscanfieee128, __scanfieee128, __sscanfieee128,
__vfscanfieee128, __vscanfieee128, and __vsscanfieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c: New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh:
Likewise.
commit 3b54a4783b0b37a267246b62dc40f6a48b4e0bd3
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:12 2019 -0300
ldbl-128ibm-compat: Test positional arguments
The format string can request positional parameters, instead of relying
on the order in which they appear as arguments. Since this has an
effect on how the type of each argument is determined, this patch
extends the test cases to use positional parameters with mixed double
and long double types, to verify that the IEEE long double
implementations of *printf work correctly in this scenario.
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c
(do_test_call): Test positional parameters.
(do_test): Add results for positional parameters test.
commit fdb36db07be86c25ecbb81cf22c274ea9b91209d
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:06 2019 -0300
ldbl-128ibm-compat: Test double values
A single format string can take double and long double parameters at the
same time. Internally, these parameters are routed to the same
function, which correctly reads them and calls the underlying functions
responsible for the actual conversion to string. This patch adds a new
case to test this scenario.
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c:
(do_test_call_rarg): Add parameter of double type and use it in
the calls to *printf functions under test.
(do_test_call): Add a parameter of double type to the calls to
do_test_call_rarg and do_test_call_varg.
(do_test): Update expected result.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c:
Likewise.
commit 03e0ef4a620783ed61e3573a5486fd83240a7120
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:47:01 2019 -0300
ldbl-128ibm-compat: Add wide character, fortified printing functions
Similarly to what was done for the regular character, fortified printing
functions, this patch combines the mode masks PRINTF_LDBL_USES_FLOAT128
and PRINTF_FORTIFY to provide wide character versions of fortified
printf functions. It also adds two flavors of test cases: one that
explicitly calls the fortified functions, and another that reuses the
non-fortified test, but defining _FORTIFY_SOURCE as 2. The first
guarantees that the implementations are actually being tested
(independently of what's in bits/wchar2.h), whereas the second
guarantees that the redirections calls the correct function in the IBM
and IEEE long double cases.
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile:
[subdir == debug] (ldbl-extra-routines): Add
fwprintf_chk, swprintf_chk, wprintf_chk, vfwprintf_chk,
vswprintf_chk, and vwprintf_chk.
[subdir == debug] (tests-internal): Add
test-wprintf-chk-ieee128, test-wprintf-chk-ibm128,
test-wprintf-chk-redir-ieee128 and test-wprintf-chk-redir-ibm128.
[subdir == debug] (CFLAGS-test-wprintf-chk-ieee128.c): New
variable to add the relevant -mabi flags to the compilation.
[subdir == debug] (CFLAGS-test-wprintf-chk-ibm128.c): Likewise.
[subdir == debug] (CFLAGS-test-wprintf-chk-redir-ieee128.c):
Likewise.
[subdir == debug] (CFLAGS-test-wprintf-chk-redir-ibm128.c):
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__fwprintf_chkieee128, __swprintf_chkieee128,
__wprintf_chkieee128, __vfwprintf_chkieee128,
__vswprintf_chkieee128, and __vwprintf_chkieee128;
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c:
New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ieee128.c:
Likewise.
commit 553c5b647f6c0f21956a82f7ae7339066da318f3
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:46:57 2019 -0300
ldbl-128ibm-compat: Add regular character, fortified printing functions
Since the introduction of internal functions with explicit flags for the
printf family of functions, the 'mode' parameter can be used to select
which format long double parameters have (with the mode flags:
PRINTF_LDBL_IS_DBL and PRINTF_LDBL_USES_FLOAT128), as well as to select
whether to check for overflows (mode flag: PRINTF_FORTIFY).
This patch combines PRINTF_LDBL_USES_FLOAT128 and PRINTF_FORTIFY to
provide the IEEE binary128 version of printf-like function for platforms
where long double can take this format, in addition to the double format
and to some non-ieee format (currently, this means powerpc64le).
There are two flavors of test cases provided with this patch: one that
explicitly calls the fortified functions, for instance __asprintf_chk,
and another that reuses the non-fortified test, but defining
_FORTIFY_SOURCE as 2. The first guarantees that the implementations are
actually being tested (in bits/stdio2.h, vprintf gets redirected to
__vfprintf_chk, which would leave __vprintf_chk untested), whereas the
second guarantees that the redirections calls the correct function in
the IBM and IEEE long double cases.
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile:
[subdir == debug] (ldbl-extra-routines): Add
asprintf_chk, dprintf_chk, fprintf_chk, printf_chk,
snprintf_chk, sprintf_chk, vasprintf_chk, vdprintf_chk,
vfprintf_chk, vprintf_chk, vsnprintf_chk, and vsprintf_chk.
[subdir == debug] (tests-internal): Add
test-printf-chk-ieee128, test-printf-chk-ibm128,
test-printf-chk-redir-ieee128, and test-printf-chk-redir-ibm128.
[subdir == debug] (CFLAGS-test-printf-chk-ieee128.c): New
variable to add the relevant -mabi flags to the compilation.
[subdir == debug] (CFLAGS-test-printf-chk-ibm128.c): Likewise.
[subdir == debug] (CFLAGS-test-printf-chk-redir-ieee128.c):
Likewise.
[subdir == debug] (CFLAGS-test-printf-chk-redir-ibm128.c):
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__asprintf_chkieee128, __dprintf_chkieee128, __fprintf_chkieee128,
__printf_chkieee128, __snprintf_chkieee128, __sprintf_chkieee128,
__vasprintf_chkieee128, __vdprintf_chkieee128, __vfprintf_chkieee128,
__vprintf_chkieee128, __vsnprintf_chkieee128, __vsprintf_chkieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c: New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ieee128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ibm128.c:
Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ieee128.c:
Likewise.
commit 812e6114bd1c750ee3dfc2a984294da06da22646
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Jul 11 11:46:51 2019 -0300
ldbl-128ibm-compat: Add wide character printing functions
Similarly to what was done for regular character printing functions,
this patch uses the new mode mask, PRINTF_LDBL_USES_FLOAT128, in the
'mode' argument of the wide characters printing function,
__vfwprintf_internal (which is also extended to support printing
floating-point values with IEEE binary128, by saving floating-point
values into variables of type __float128 and adjusting the parameters to
__printf_fp and __printf_fphex as if it was a call from a wide-character
version of strfromf128 (even though such version does not exist)).
Tested for powerpc64le.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile:
[subdir == stdio-common] (ldbl-extra-routines): Add fwprintf,
swprintf, wprintf, vfwprintf, vswprintf, and vwprintf.
[subdir == stdio-common] (CFLAGS-vfwprintf-internal.c): New
variable. Add -mfloat128 to the compilation of
vfprintf-internal.c, so that it gets support for the use of
__printf_fp and __printf_fphex with __float128 parameter.
[subdir == stdio-common] (tests-internal): Add
test-wprintf-ieee128 and test-wprintf-ibm128.
[subdir == stdio-common] (CFLAGS-test-wprintf-ieee128.c): New
variable to add the relevant -mabi flags to the compilation.
[subdir == stdio-common] (CFLAGS-test-wprintf-ibm128.c): Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions (libc): Add
__fwprintfieee128, __swprintfieee128, __wprintfieee128,
__vfwprintfieee128, __vswprintfieee128, and __vwprintfieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c: New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ibm128.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ieee128.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c:
Likewise.
commit 99ec0318a3e820a0fcf4fcea4d25669f11de835d
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date: Thu Aug 8 10:42:35 2019 -0300
ldbl-128ibm-compat: Add regular character printing functions
The 'mode' argument to __vfprintf_internal allows the selection of the
long double format for all long double arguments requested by the format
string. Currently, there are two possibilities: long double with the
same format as double or long double as something else. The 'something
else' format varies between architectures, and on powerpc64le, it means
IBM Extended Precision format.
In preparation for the third option of long double format on
powerpc64le, this patch uses the new mode mask,
PRINTF_LDBL_USES_FLOAT128, which tells __vfprintf_internal to save the
floating-point values into variables of type __float128 and adjusts the
parameters to __printf_fp and __printf_fphex as if it was a call from
strfromf128.
Many files from the stdio-common, wcsmbs, argp, misc, and libio
directories will have IEEE binary128 counterparts. Setting the correct
compiler options to these files (original and counterparts) would
produce a large amount of repetitive Makefile rules. To avoid this
repetition, this patch adds a Makefile routine that iterates over the
files adding or removing the appropriate flags.
Tested for powerpc64le.
* elf/tst-addr1.c (do_test): Accept redirections of printf to
__printfieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/Makefile
[subdir == stdio-common] (routines): Move the addition of
printf_size to ldbl-extra-routines.
[subdir == stdio-common] (ldbl-extra-routines): New variable.
[subdir == stdio-common] (ldbl-ibm128-files): New variable.
[subdir == stdio-common] (obj-suf-foreach): New routine.
[subdir == stdio-common] (CFLAGS-vfprintf-internal.c): New
variable. Add -mfloat128 to the compilation of
vfprintf-internal.c, so that it gets support for the use of
__printf_fp and __printf_fphex with __float128 parameter.
[subdir == stdio-common] (tests-internal): Add
test-printf-ieee128 and test-printf-ibm128.
[subdir == stdio-common] (CFLAGS-test-printf-ieee128.c): New
variable to add the relevant -mabi flags to the compilation.
[subdir == stdio-common] (CFLAGS-test-printf-ibm128.c): Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/Versions: (libc): Add
__asprintfieee128, __dprintfieee128, __fprintfieee128,
__printfieee128, __snprintfieee128, __sprintfieee128,
__vasprintfieee128, __vdprintfieee128, __vfprintfieee128,
__vprintfieee128, __vsnprintfieee128, and __vsprintfieee128.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c: New file.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h:
Likewise.