This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v3 00/11] Add IEEE long double <-> string functions for powerpc64le
- From: "Gabriel F. T. Gomes" <gabriel at inconstante dot net dot br>
- To: <libc-alpha at sourceware dot org>
- Date: Tue, 3 Dec 2019 14:05:29 -0300
- Subject: [PATCH v3 00/11] Add IEEE long double <-> string functions for powerpc64le
From: "Gabriel F. T. Gomes" <gabrielftg@linux.ibm.com>
Changes since v2:
- 'Changes since v2' messages in each of the patches;
- Patch 1/11 is new;
- Branch updated at our git server [1].
[1] https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/gabriel/powerpc-ieee128-printscan
Message for v2:
'Changes since v1' messages in each of the patches, except for patch v1
19/31, which has been dropped. The updated tree can be found in the
repository [1] (commit ID d9fa17b4597a).
This patch set has been tested on powerpc64le, x86_64, and with
build-many-glibcs.py (sorry for not using b-m-g previously).
[1] https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/gabriel/powerpc-ieee128-printscan
Message for v1:
Hi,
I have previously sent some of the patches in this set, but sending only
part of them usually raised the concern that they were hard to test,
because they depended on the remaining patches (making it also hard to
review). To make testing easier, I provided the remaining patches in a
public branch (even though some weren't fully done), but that is not
what we usually do, which also contributes for the patch set being hard
to test and review.
I wanted to change this, so I finished the patches that weren't fully
ready in the branch, and I'm finally sending it as a regular patch
series by email.
Some notes to ease review:
- Many of the patches are somewhat independent, for instance, it
should be possible for someone to review only the syslog or cvt
patches, but not those related to printf*. The reason why I want to
send them together is that many of them touch the same file
(sysdeps/ieee754/ldbl-128ibm-compat/Makefile), so the order is
important in this sense (I can change the order before commit if
some later patch gets positive reviews first).
- Beware that the *cvt refactoring is composed of 5 patches, but I
will commit them only after squashing all into a *single* commit.
- The last patch in the series is what makes all of this patches
actually be used, so it's needed for the testing (and the last one
needs all the others, because the function redirections (in *-ldbl.h
files) is all-or-nothing.
- This patch set is also available as a branch in the repository [1]
(commit ID 1c4f7fffc4f1 - branch gabriel/powerpc-ieee128-printscan),
maybe that helps.
PS: I removed all the ChangeLog entries (Hurray!)
[1] https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/gabriel/powerpc-ieee128-printscan
Gabriel F. T. Gomes (9):
ldbl-128ibm-compat: Fix selection of GNU and ISO C99 scanf
ldbl-128ibm-compat: Add ISO C99 versions of scanf functions
Refactor *cvt functions implementation (1-4/5)
Refactor *cvt functions implementation (5/5)
ldbl-128ibm-compat: Add *cvt functions
Avoid compat symbols for totalorder in powerpc64le IEEE long double
ldbl-128ibm-compat: Do not mix -mabi=*longdouble and -mlong-double-128
powerpc64le: Require a compiler with -mno-gnu-attribute
RFC: powerpc64le: Enable support for IEEE long double
Tulio Magno Quites Machado Filho (2):
Do not redirect calls to __GI_* symbols, when redirecting to *ieee128
ldbl-128ibm-compat: Compiler flags for stdio functions
INSTALL | 5 +
NEWS | 2 +-
argp/argp.h | 3 +-
bits/long-double.h | 1 +
include/stdio.h | 11 +-
include/stdlib.h | 3 +
libio/bits/stdio-ldbl.h | 46 ++--
libio/stdio.h | 16 +-
manual/install.texi | 5 +
misc/bits/syslog-ldbl.h | 4 +-
misc/efgcvt-dbl-macros.h | 52 ++++
misc/efgcvt-ldbl-macros.h | 59 ++++
misc/efgcvt-template.c | 75 ++++++
misc/efgcvt.c | 124 ++-------
misc/efgcvt_r-template.c | 198 ++++++++++++++
misc/efgcvt_r.c | 251 +-----------------
misc/err.h | 3 +-
misc/error.h | 6 +-
misc/qefgcvt.c | 43 ++-
misc/qefgcvt_r.c | 50 ++--
misc/sys/cdefs.h | 38 ++-
misc/sys/syslog.h | 4 +-
stdio-common/printf.h | 3 +-
stdlib/bits/stdlib-ldbl.h | 22 ++
stdlib/monetary.h | 3 +-
stdlib/stdlib.h | 4 +-
sysdeps/ieee754/ldbl-128/bits/long-double.h | 1 +
sysdeps/ieee754/ldbl-128/s_totalorderl.c | 9 +
sysdeps/ieee754/ldbl-128/s_totalordermagl.c | 9 +
sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 97 ++++++-
sysdeps/ieee754/ldbl-128ibm-compat/Versions | 22 ++
.../ldbl-128ibm-compat/bits/long-double.h | 29 ++
.../ieee128-isoc99_fscanf.c | 35 +++
.../ieee128-isoc99_fwscanf.c | 35 +++
.../ldbl-128ibm-compat/ieee128-isoc99_scanf.c | 35 +++
.../ieee128-isoc99_sscanf.c | 39 +++
.../ieee128-isoc99_swscanf.c | 40 +++
.../ieee128-isoc99_vfscanf.c | 27 ++
.../ieee128-isoc99_vfwscanf.c | 27 ++
.../ieee128-isoc99_vscanf.c | 27 ++
.../ieee128-isoc99_vsscanf.c | 30 +++
.../ieee128-isoc99_vswscanf.c | 32 +++
.../ieee128-isoc99_vwscanf.c | 27 ++
.../ieee128-isoc99_wscanf.c | 35 +++
.../ldbl-128ibm-compat/ieee128-qefgcvt.c | 52 ++++
.../ldbl-128ibm-compat/ieee128-qefgcvt_r.c | 34 +++
.../test-isoc99-scanf-ibm128.c | 1 +
.../test-isoc99-scanf-ieee128.c | 1 +
.../test-isoc99-wscanf-ibm128.c | 1 +
.../test-isoc99-wscanf-ieee128.c | 1 +
.../test-scanf-ldbl-compat-template.c | 73 +++--
.../test-scanf-ldbl-compat.c | 7 +-
.../test-scanf-ldbl-compat.sh | 16 +-
.../test-wscanf-ldbl-compat.c | 7 +-
sysdeps/ieee754/ldbl-96/bits/long-double.h | 1 +
sysdeps/ieee754/ldbl-opt/bits/long-double.h | 1 +
sysdeps/mips/ieee754/bits/long-double.h | 1 +
sysdeps/powerpc/powerpc64/le/Implies-before | 1 +
sysdeps/powerpc/powerpc64/le/configure | 29 ++
sysdeps/powerpc/powerpc64/le/configure.ac | 15 ++
.../powerpc64/le/ldbl-128ibm-compat-abi.h | 8 +
.../linux/powerpc/powerpc64/le/libc.abilist | 93 +++++++
.../linux/powerpc/powerpc64/le/libm.abilist | 104 ++++++++
.../linux/sparc/sparc32/bits/long-double.h | 1 +
.../linux/sparc/sparc64/bits/long-double.h | 1 +
wcsmbs/bits/wchar-ldbl.h | 36 ++-
wcsmbs/wchar.h | 14 +-
67 files changed, 1594 insertions(+), 491 deletions(-)
create mode 100644 misc/efgcvt-dbl-macros.h
create mode 100644 misc/efgcvt-ldbl-macros.h
create mode 100644 misc/efgcvt-template.c
create mode 100644 misc/efgcvt_r-template.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/bits/long-double.h
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt_r.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ibm128.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ieee128.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ibm128.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ieee128.c
create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h
--
2.21.0