diff options
author | Paul E. Murphy <murphyp@linux.vnet.ibm.com> | 2016-08-09 16:48:54 -0500 |
---|---|---|
committer | Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com> | 2017-05-25 16:14:47 -0300 |
commit | 0ded00553f47d1e19bad2df60b4d6ee54eaff1ad (patch) | |
tree | 5625f7b30e20f2e893ef210379e79aed180f1dd8 /sysdeps/powerpc/powerpc64le/Makefile | |
parent | 6675666a8233b38c726df28d4c61d6e806585215 (diff) | |
download | glibc-0ded00553f47d1e19bad2df60b4d6ee54eaff1ad.tar.gz glibc-0ded00553f47d1e19bad2df60b4d6ee54eaff1ad.tar.xz glibc-0ded00553f47d1e19bad2df60b4d6ee54eaff1ad.zip |
powerpc64le: Enable float128 tuliom/float128
Add ulps for the float128 type, bits/floatn.h, and float128-abi.h. Likewise, sqrt is not implemented in libgcc. The sfp-machine.h header is taken from libgcc, and used to build a P7/P8 soft-fp sqrtf128. * sysdeps/powerpc/fpu/libm-test-ulps: Regenerated. * sysdeps/powerpc/fpu/math_private.h: (__ieee754_sqrtf128): New inline override. * sysdeps/powerpc/powerpc64le/Implies-before: New file. * sysdeps/powerpc/powerpc64le/Makefile: New file. * sysdeps/powerpc/powerpc64le/bits/floatn.h: New file. * sysdeps/powerpc/powerpc64le/fpu/e_sqrtf128.c: New file. * sysdeps/powerpc/powerpc64le/fpu/sfp-machine.h: New file. * sysdeps/powerpc/powerpc64le/power9/fpu/e_sqrtf128.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Regenerated. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64le/float128-abi.h New file.
Diffstat (limited to 'sysdeps/powerpc/powerpc64le/Makefile')
-rw-r--r-- | sysdeps/powerpc/powerpc64le/Makefile | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64le/Makefile b/sysdeps/powerpc/powerpc64le/Makefile new file mode 100644 index 0000000000..0e3c449b2d --- /dev/null +++ b/sysdeps/powerpc/powerpc64le/Makefile @@ -0,0 +1,48 @@ +# When building float128 we need to ensure -mfloat128 is +# passed to all such object files. + +ifeq ($(subdir),math) +# sqrtf128 requires emulation on POWER8 and below. +CPPFLAGS += -I../soft-fp + +# float128 requires adding a handful of extra flags. +%f128.o %f128.os %f128_r.o %f128_r.os: CFLAGS += -mfloat128 +$(objpfx)test-float128%.o $(objpfx)test-float128%.os: CFLAGS += -mfloat128 +$(objpfx)test-ifloat128%.o $(objpfx)test-ifloat128%.os: CFLAGS += -mfloat128 +CFLAGS-libm-test-support-float128.c += -mfloat128 +endif + +# Append flags to string <-> _Float128 routines. +ifneq ($(filter $(subdir),wcsmbs stdlib),) +%f128.o %f128.os %f128_l.o %f128_l.os %f128_nan.o %f128_nan.os %float1282mpn.o %float1282mpn.os %mpn2float128.o %mpn2float128.os: CFLAGS += -mfloat128 +CFLAGS-bug-strtod.c += -mfloat128 +CFLAGS-bug-strtod2.c += -mfloat128 +CFLAGS-tst-strtod-round.c += -mfloat128 +CFLAGS-tst-wcstod-round.c += -mfloat128 +CFLAGS-tst-strtod6.c += -mfloat128 +CFLAGS-tst-strfrom.c += -mfloat128 +CFLAGS-tst-strfrom-locale.c += -mfloat128 +CFLAGS-strfrom-skeleton.c += -mfloat128 + +# The strfrom class of functions call __printf_fp in order to convert the +# floating-point value to characters. This requires the value of IO_MTSAFE_IO. +CFLAGS-strfromf128.c += $(libio-mtsafe) + +# When building glibc with support for _Float128, the powers of ten tables in +# fpioconst.c and in the string conversion functions must be extended. +sysdep-CFLAGS += $(sysdep-CFLAGS-$(<F)) +sysdep-CFLAGS-fpioconst.c += -mfloat128 +sysdep-CFLAGS-strtod_l.c += -mfloat128 +sysdep-CFLAGS-strtof_l.c += -mfloat128 +sysdep-CFLAGS-strtold_l.c += -mfloat128 +sysdep-CFLAGS-wcstod_l.c += -mfloat128 +sysdep-CFLAGS-wcstof_l.c += -mfloat128 +sysdep-CFLAGS-wcstold_l.c += -mfloat128 +endif + +# Append flags to printf routines. +ifeq ($(subdir),stdio-common) +CFLAGS-printf_fp.c = -mfloat128 +CFLAGS-printf_fphex.c = -mfloat128 +CFLAGS-printf_size.c = -mfloat128 +endif |