[PATCH 00/13] Enable IEEE binary128 long double on powerpc64le
Paul E. Murphy
murphyp@linux.vnet.ibm.com
Fri Mar 6 20:37:00 GMT 2020
This shuffles the powerpc64le Makefile around to support
building and testing the new long double format. I consider
this support experimental as GNU libstc++ has some growing
pains to make -mfloat128 and -mabi=ieeelongdouble play nicely
togethor, and the runtime symbol selection may also need some
improvement (i.e dlopen/dlsym). Nevertheless, this is the
start to making this feature available.
The first 3 patches fixup internal headers to ensure local
PLT usage works, and C++ tests continue to work. Something
changed between g++ 8 and 9 which prevents the redirects from
working unless the headers are marked as system headers.
The majority of the powerpc64le patches refactor the common
ppc64le Makefile to ensure the correct ldouble/float128
compiler flags are applied when -mabi=ieeelongdouble is
applied globally, as should be the case in some future release.
Notably, the only explicit user of long double internally is
difftime.
Gabriel F. T. Gomes (3):
powerpc64le: Ensure correct ldouble compiler flags are used
powerpc64le: link tests against ld.so
powerpc64le: Enable support for IEEE long double
Paul E. Murphy (10):
ldbl-128ibm-compat: PLT redirects for using ldbl redirects internally
Fix tests which expose ldbl -> _Float128 redirects
RFC: ldbl-128ibm-compat: workaround C++ redirect limitations
powerpc64le: add -mno-gnu-attribute to *f128 objects and difftime
powerpc64: apply -mabi=ibmlongdouble to special files
powerpc64le: Enforce -mabi=ibmlongdouble when -mfloat128 used
powerpc64le: workaround ieee long double / _Float128 stdc++ bug
powerpc64le: raise GCC requirement to 7.3 for long double transition
powerpc64le: bump binutils version requirement to >= 2.26
powerpc64le: enforce non-specific long double in .gnu.attributes
section
INSTALL | 5 +
NEWS | 8 +-
elf/tst-addr1.c | 11 +
include/err.h | 12 +-
include/libc-symbols.h | 2 +
include/monetary.h | 8 +
include/printf.h | 8 +
include/stdio.h | 62 +++--
include/stdlib.h | 9 +
include/sys/cdefs.h | 20 ++
include/sys/syslog.h | 2 +-
include/wchar.h | 11 +-
manual/install.texi | 9 +
stdio-common/tst-vfprintf-user-type.c | 4 +
.../ldbl-128ibm-compat/ieee128-asprintf.c | 5 +-
.../ldbl-128ibm-compat/ieee128-dprintf.c | 1 +
.../ieee754/ldbl-128ibm-compat/ieee128-err.c | 7 +
.../ldbl-128ibm-compat/ieee128-fprintf.c | 1 +
.../ieee128-isoc99_sscanf.c | 1 +
.../ieee128-isoc99_vfscanf.c | 2 +
.../ieee128-isoc99_vsscanf.c | 1 +
.../ldbl-128ibm-compat/ieee128-sprintf.c | 1 +
.../ldbl-128ibm-compat/ieee128-syslog.c | 1 +
.../ldbl-128ibm-compat/ieee128-vfprintf.c | 1 +
.../ldbl-128ibm/include/bits/iscanonical.h | 2 +-
sysdeps/powerpc/fpu/libm-test-ulps | 8 +
sysdeps/powerpc/powerpc64/Makefile | 6 +
sysdeps/powerpc/powerpc64/le/Implies-before | 1 +
sysdeps/powerpc/powerpc64/le/Makefile | 251 ++++++++++++++----
sysdeps/powerpc/powerpc64/le/configure | 124 +++++++++
sysdeps/powerpc/powerpc64/le/configure.ac | 41 +++
.../powerpc64/le/fpu/multiarch/Makefile | 4 +-
.../powerpc64/le/no_ldbl_gnu_attribute.c | 30 +++
sysdeps/powerpc/powerpc64/power7/Makefile | 6 +-
.../powerpc64/le/ldbl-128ibm-compat-abi.h | 8 +
.../linux/powerpc/powerpc64/le/libc.abilist | 93 +++++++
.../linux/powerpc/powerpc64/le/libm.abilist | 117 ++++++++
37 files changed, 803 insertions(+), 80 deletions(-)
create mode 100644 sysdeps/powerpc/powerpc64/le/no_ldbl_gnu_attribute.c
create mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/ldbl-128ibm-compat-abi.h
--
2.21.1
More information about the Libc-alpha
mailing list