This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v4 0/9] 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: Fri, 13 Dec 2019 19:24:18 -0300
- Subject: [PATCH v4 0/9] Add IEEE long double <-> string functions for powerpc64le
From: "Gabriel F. T. Gomes" <gabrielftg@linux.ibm.com>
Changes since v3:
- Only the cvt* refactoring patches changed ('changed since v3'
messages in each of them).
- The refactoring patches are now standalone and will not be squashed
before commit.
Message for v3:
- '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 (7):
Refactor *cvt functions implementation (1/2)
Refactor *cvt functions implementation (2/2)
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/{qefgcvt_r.c => efgcvt-dbl-macros.h} | 51 ++--
misc/{qefgcvt_r.c => efgcvt-ldbl-macros.h} | 10 +-
misc/efgcvt-template.c | 75 ++++++
misc/efgcvt.c | 124 ++-------
misc/{efgcvt_r.c => efgcvt_r-template.c} | 84 +-----
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 | 32 ++-
sysdeps/ieee754/ldbl-128ibm-compat/Versions | 6 +
.../bits/long-double.h | 7 +-
.../ldbl-128ibm-compat/ieee128-qefgcvt.c | 52 ++++
.../ldbl-128ibm-compat/ieee128-qefgcvt_r.c | 37 ++-
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 +-
47 files changed, 751 insertions(+), 574 deletions(-)
copy misc/{qefgcvt_r.c => efgcvt-dbl-macros.h} (54%)
copy misc/{qefgcvt_r.c => efgcvt-ldbl-macros.h} (83%)
create mode 100644 misc/efgcvt-template.c
copy misc/{efgcvt_r.c => efgcvt_r-template.c} (58%)
copy sysdeps/ieee754/{ldbl-opt => ldbl-128ibm-compat}/bits/long-double.h (70%)
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt.c
copy misc/bits/syslog-ldbl.h => sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt_r.c (52%)
create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h
--
2.21.0