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

Gabriel F. T. Gomes gabriel@inconstante.net.br
Fri Aug 9 18:32:00 GMT 2019


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

-- 
2.21.0



More information about the Libc-alpha mailing list