mbox series

[0/6] long double to _Float128 redirecting support

Message ID cover.1580757509.git.murphyp@linux.vnet.ibm.com
Headers show
Series long double to _Float128 redirecting support | expand

Message

Paul E. Murphy Feb. 3, 2020, 9:10 p.m. UTC
There are still quite a few (about 26) patches to enable support
for a third long double format on powerpc64le.  I will focus on
the changes to the shared headers and common files first.

Patch 1 is unmodified from shortly before the closure of the 2.31
development cycle, and should complete the libc work to support
the newest long double format.

Patch 2 fixes some bugs in the header redirects for ldbl == dbl.
This has been rebased, but is otherwise the same.  It is necessary
to support the redirects in the subsequent patches.

Patches 3-5 add redirects to the math functions sufficient to
expose the new ABI.  These have been posted previously around
mid 2018.  I have updated them and dusted them off.

Patch 6 introduces templating to the scalb functions in support
of using these templates to support ldbl == ieee128 later on.
I've tested this on x86 and ppc64le.

The remaining patches are mostly self-contained, but can be
posted to a feature branch for those wanting a sneak peak at the
whole story.

---8<---

As an aside, I have taken over the work to support the ldbl
ieee128 transition from Gabriel.  Likewise, my copyright
assignment should also remain intact after my... intermission.

Gabriel F. T. Gomes (1):
  Prepare redirections for IEEE long double on powerpc64le

Rajalakshmi Srinivasaraghavan (1):
  ldbl-128ibm-compat: Redirect complex math functions

Tulio Magno Quites Machado Filho (4):
  Undefine redirections after long double definition on __LDBL_COMPAT
    [BZ #23294]
  ldbl-128ibm-compat: Redirect long double functions to f128/ieee128
    functions
  ldbl-128ibm-compat: Provide ieee128 symbols to narrow functions
  Add a generic scalb implementation

 argp/argp.h                                   |  3 +-
 include/math.h                                |  9 +-
 libio/bits/stdio-ldbl.h                       | 46 ++++++----
 libio/stdio.h                                 | 16 ++--
 math/Makefile                                 |  7 +-
 math/bits/mathcalls-helper-functions.h        | 18 ++--
 math/bits/mathcalls.h                         |  9 +-
 math/complex.h                                | 29 ++++++-
 math/{e_scalb.c => e_scalb_template.c}        | 33 +++----
 math/e_scalbf.c                               | 54 ------------
 math/e_scalbl.c                               | 54 ------------
 math/math-narrow.h                            | 15 +---
 math/math.h                                   | 75 ++++++++++++++--
 math/w_scalb_compat.c                         |  6 +-
 math/w_scalb_template.c                       | 59 +++++++++++++
 math/w_scalbf_compat.c                        |  4 +-
 math/w_scalbl_compat.c                        |  4 +-
 misc/bits/syslog-ldbl.h                       |  4 +-
 misc/err.h                                    |  3 +-
 misc/error.h                                  |  6 +-
 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/generic/math-narrow-alias-float128.h  | 32 +++++++
 sysdeps/ieee754/float128/w_scalbf128.c        |  1 +
 sysdeps/ieee754/ldbl-128ibm-compat/Versions   |  8 ++
 .../math-narrow-alias-float128.h              | 34 ++++++++
 .../ieee754/ldbl-128ibm/bits/iscanonical.h    |  8 +-
 sysdeps/ieee754/ldbl-opt/Makefile             |  4 +-
 .../ldbl-opt/test-redirection-ldbl-64.c       | 87 +++++++++++++++++++
 sysdeps/ieee754/ldbl-opt/w_scalb_compat.c     |  4 +-
 sysdeps/ieee754/ldbl-opt/w_scalbl_compat.c    |  2 +
 wcsmbs/bits/wchar-ldbl.h                      | 36 ++++++--
 wcsmbs/wchar.h                                | 14 +--
 37 files changed, 539 insertions(+), 219 deletions(-)
 rename math/{e_scalb.c => e_scalb_template.c} (64%)
 delete mode 100644 math/e_scalbf.c
 delete mode 100644 math/e_scalbl.c
 create mode 100644 math/w_scalb_template.c
 create mode 100644 sysdeps/generic/math-narrow-alias-float128.h
 create mode 100644 sysdeps/ieee754/float128/w_scalbf128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/math-narrow-alias-float128.h
 create mode 100644 sysdeps/ieee754/ldbl-opt/test-redirection-ldbl-64.c