mbox series

[0/6] IEEE long double printf and friends for powerpc64le

Message ID 20190809183154.32605-1-gabriel@inconstante.net.br
Headers show
Series IEEE long double printf and friends for powerpc64le | expand

Message

Gabriel F. T. Gomes Aug. 9, 2019, 6:31 p.m. UTC
From: "Gabriel F. T. Gomes" <gabrielftg@linux.ibm.com>

A long time ago [1], I sent a patch set with the initial implementations
of many string to/from IEEE long double conversion routines for
powerpc64le.  The patch set depended on other, at the time unapplied,
patch sets [2,3], which are now all integrated into master.  Even though
this dependency existed, I got a lot of feedback (thanks, btw), which I
tried to address for this new round.

In this thread, I only included printf and friends functions, which
helps reduce the size of the patch set and maybe ease review. :)

As with previous submissions, these changes can only be tested once all
other functions have actually been integrated (because the function
redirections in our installed headers are macroized and work for all
long double routines).  So, in order to test it, I use a more complete
branch, which I made available at:
https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/gabriel/powerpc-ieee128-printscan

[1] https://sourceware.org/ml/libc-alpha/2018-06/msg00652.html
[2] https://sourceware.org/ml/libc-alpha/2018-10/msg00612.html
[3] https://sourceware.org/ml/libc-alpha/2019-02/msg00582.html

Gabriel F. T. Gomes (6):
  ldbl-128ibm-compat: Add regular character printing functions
  ldbl-128ibm-compat: Add wide character printing functions
  ldbl-128ibm-compat: Add regular character, fortified printing
    functions
  ldbl-128ibm-compat: Add wide character, fortified printing functions
  ldbl-128ibm-compat: Test double values
  ldbl-128ibm-compat: Test positional arguments

 elf/tst-addr1.c                               |   7 +-
 sysdeps/ieee754/ldbl-128ibm-compat/Makefile   | 104 +++++++++-
 sysdeps/ieee754/ldbl-128ibm-compat/Versions   |  45 +++++
 .../ldbl-128ibm-compat/ieee128-asprintf.c     |  35 ++++
 .../ldbl-128ibm-compat/ieee128-asprintf_chk.c |  38 ++++
 .../ldbl-128ibm-compat/ieee128-dprintf.c      |  34 ++++
 .../ldbl-128ibm-compat/ieee128-dprintf_chk.c  |  38 ++++
 .../ldbl-128ibm-compat/ieee128-fprintf.c      |  34 ++++
 .../ldbl-128ibm-compat/ieee128-fprintf_chk.c  |  38 ++++
 .../ldbl-128ibm-compat/ieee128-fwprintf.c     |  35 ++++
 .../ldbl-128ibm-compat/ieee128-fwprintf_chk.c |  38 ++++
 .../ldbl-128ibm-compat/ieee128-printf.c       |  35 ++++
 .../ldbl-128ibm-compat/ieee128-printf_chk.c   |  38 ++++
 .../ldbl-128ibm-compat/ieee128-snprintf.c     |  35 ++++
 .../ldbl-128ibm-compat/ieee128-snprintf_chk.c |  42 ++++
 .../ldbl-128ibm-compat/ieee128-sprintf.c      |  35 ++++
 .../ldbl-128ibm-compat/ieee128-sprintf_chk.c  |  42 ++++
 .../ldbl-128ibm-compat/ieee128-swprintf.c     |  36 ++++
 .../ldbl-128ibm-compat/ieee128-swprintf_chk.c |  42 ++++
 .../ldbl-128ibm-compat/ieee128-vasprintf.c    |  27 +++
 .../ieee128-vasprintf_chk.c                   |  31 +++
 .../ldbl-128ibm-compat/ieee128-vdprintf.c     |  26 +++
 .../ldbl-128ibm-compat/ieee128-vdprintf_chk.c |  30 +++
 .../ldbl-128ibm-compat/ieee128-vfprintf.c     |  26 +++
 .../ldbl-128ibm-compat/ieee128-vfprintf_chk.c |  30 +++
 .../ldbl-128ibm-compat/ieee128-vfwprintf.c    |  27 +++
 .../ieee128-vfwprintf_chk.c                   |  31 +++
 .../ldbl-128ibm-compat/ieee128-vprintf.c      |  27 +++
 .../ldbl-128ibm-compat/ieee128-vprintf_chk.c  |  30 +++
 .../ldbl-128ibm-compat/ieee128-vsnprintf.c    |  28 +++
 .../ieee128-vsnprintf_chk.c                   |  34 ++++
 .../ldbl-128ibm-compat/ieee128-vsprintf.c     |  27 +++
 .../ldbl-128ibm-compat/ieee128-vsprintf_chk.c |  34 ++++
 .../ldbl-128ibm-compat/ieee128-vswprintf.c    |  28 +++
 .../ieee128-vswprintf_chk.c                   |  34 ++++
 .../ldbl-128ibm-compat/ieee128-vwprintf.c     |  27 +++
 .../ldbl-128ibm-compat/ieee128-vwprintf_chk.c |  30 +++
 .../ldbl-128ibm-compat/ieee128-wprintf.c      |  35 ++++
 .../ldbl-128ibm-compat/ieee128-wprintf_chk.c  |  38 ++++
 .../test-printf-chk-ibm128.c                  |   1 +
 .../test-printf-chk-ieee128.c                 |   1 +
 .../test-printf-chk-ldbl-compat.c             | 191 ++++++++++++++++++
 .../test-printf-chk-redir-ibm128.c            |   2 +
 .../test-printf-chk-redir-ieee128.c           |   2 +
 .../ldbl-128ibm-compat/test-printf-ibm128.c   |   1 +
 .../ldbl-128ibm-compat/test-printf-ieee128.c  |   1 +
 .../test-printf-ldbl-compat.c                 | 182 +++++++++++++++++
 .../test-wprintf-chk-ibm128.c                 |   1 +
 .../test-wprintf-chk-ieee128.c                |   1 +
 .../test-wprintf-chk-ldbl-compat.c            | 122 +++++++++++
 .../test-wprintf-chk-redir-ibm128.c           |   2 +
 .../test-wprintf-chk-redir-ieee128.c          |   2 +
 .../ldbl-128ibm-compat/test-wprintf-ibm128.c  |   1 +
 .../ldbl-128ibm-compat/test-wprintf-ieee128.c |   1 +
 .../test-wprintf-ldbl-compat.c                | 120 +++++++++++
 .../powerpc64/le/ldbl-128ibm-compat-abi.h     |   8 +
 56 files changed, 1988 insertions(+), 2 deletions(-)
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ibm128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ieee128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ibm128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ieee128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ibm128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ieee128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ibm128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ieee128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ibm128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ieee128.c
 create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c
 create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h

Comments

Gabriel F. T. Gomes Sept. 2, 2019, 2:15 p.m. UTC | #1
Any comments on these patches?

I believe I have addressed all the comments in previous submissions.

On Fri, 09 Aug 2019, Gabriel F. T. Gomes wrote:

>From: "Gabriel F. T. Gomes" <gabrielftg@linux.ibm.com>
>
>A long time ago [1], I sent a patch set with the initial implementations
>of many string to/from IEEE long double conversion routines for
>powerpc64le.  The patch set depended on other, at the time unapplied,
>patch sets [2,3], which are now all integrated into master.  Even though
>this dependency existed, I got a lot of feedback (thanks, btw), which I
>tried to address for this new round.
>
>In this thread, I only included printf and friends functions, which
>helps reduce the size of the patch set and maybe ease review. :)
>
>As with previous submissions, these changes can only be tested once all
>other functions have actually been integrated (because the function
>redirections in our installed headers are macroized and work for all
>long double routines).  So, in order to test it, I use a more complete
>branch, which I made available at:
>https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/gabriel/powerpc-ieee128-printscan
>
>[1] https://sourceware.org/ml/libc-alpha/2018-06/msg00652.html
>[2] https://sourceware.org/ml/libc-alpha/2018-10/msg00612.html
>[3] https://sourceware.org/ml/libc-alpha/2019-02/msg00582.html
>
>Gabriel F. T. Gomes (6):
>  ldbl-128ibm-compat: Add regular character printing functions
>  ldbl-128ibm-compat: Add wide character printing functions
>  ldbl-128ibm-compat: Add regular character, fortified printing
>    functions
>  ldbl-128ibm-compat: Add wide character, fortified printing functions
>  ldbl-128ibm-compat: Test double values
>  ldbl-128ibm-compat: Test positional arguments