diff options
64 files changed, 3052 insertions, 122 deletions
@@ -1,3 +1,82 @@ +2017-12-07 Joseph Myers <joseph@codesourcery.com> + + * bits/floatn-common.h (__HAVE_FLOAT32): Define to 1. + * manual/math.texi (Mathematics): Document support for _Float32. + * math/Makefile (test-types): Add float32. + * math/Versions (GLIBC_2.27): Add _Float32 functions. + * stdlib/Versions (GLIBC_2.27): Likewise. + * wcsmbs/Versions (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: + Likewise. + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. + * sysdeps/i386/fpu/libm-test-ulps: Likewise. + * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise. + 2017-12-06 Joseph Myers <joseph@codesourcery.com> * stdlib/strtof.c: Include <bits/floatn.h> @@ -41,9 +41,9 @@ Major new features: 18661-3:2015. These are corresponding interfaces to those supported for _Float128. -* The math library now implements interfaces for the _Float64 and _Float32x - types, as defined by ISO/IEC TS 18661-3:2015. These are corresponding - interfaces to those supported for _Float128. +* The math library now implements interfaces for the _Float32, _Float64 and + _Float32x types, as defined by ISO/IEC TS 18661-3:2015. These are + corresponding interfaces to those supported for _Float128. * glibc now implements the memfd_create and mlock2 functions on Linux. diff --git a/bits/floatn-common.h b/bits/floatn-common.h index a724421f77..6a06573cff 100644 --- a/bits/floatn-common.h +++ b/bits/floatn-common.h @@ -32,7 +32,7 @@ floating-point type with the right format for this type, and this glibc includes corresponding *fN or *fNx interfaces for it. */ #define __HAVE_FLOAT16 0 -#define __HAVE_FLOAT32 0 +#define __HAVE_FLOAT32 1 #define __HAVE_FLOAT64 1 #define __HAVE_FLOAT32X 1 #define __HAVE_FLOAT128X 0 diff --git a/manual/math.texi b/manual/math.texi index 705582ea9e..a9f2a98138 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -66,7 +66,8 @@ these functions are described along with the @code{double}, @w{ISO/IEC TS 18661-3}, unless explicitly stated otherwise. Support for @code{_Float@var{N}} or @code{_Float@var{N}x} types is -provided for @code{_Float64} and @code{_Float32x} on all platforms. +provided for @code{_Float32}, @code{_Float64} and @code{_Float32x} on +all platforms. It is also provided for @code{_Float128} and @code{_Float64x} on powerpc64le (PowerPC 64-bits little-endian), x86_64, x86, ia64, aarch64, alpha, mips64, s390 and sparc. diff --git a/math/Makefile b/math/Makefile index a6c0d8b8a7..ae84abdb25 100644 --- a/math/Makefile +++ b/math/Makefile @@ -132,7 +132,7 @@ type-float64x-yes := float64x types = $(types-basic) $(type-float128-$(float128-fcts)) test-types = $(test-types-basic) $(type-float128-$(float128-fcts)) \ - float64 $(type-float128-$(float128-alias-fcts)) \ + float32 float64 $(type-float128-$(float128-alias-fcts)) \ float32x $(type-float64x-$(float64x-alias-fcts)) # For each of the basic types (float, double, long double), replace the diff --git a/math/Versions b/math/Versions index eaa3b25b0d..01ed388ae5 100644 --- a/math/Versions +++ b/math/Versions @@ -445,110 +445,110 @@ libm { y0f64x; y1f64x; ynf64x; - # _Float64 and _Float32x functions, for all configurations. - acosf64; acosf32x; - acoshf64; acoshf32x; - asinf64; asinf32x; - asinhf64; asinhf32x; - atan2f64; atan2f32x; - atanf64; atanf32x; - atanhf64; atanhf32x; - cabsf64; cabsf32x; - cacosf64; cacosf32x; - cacoshf64; cacoshf32x; - canonicalizef64; canonicalizef32x; - cargf64; cargf32x; - casinf64; casinf32x; - casinhf64; casinhf32x; - catanf64; catanf32x; - catanhf64; catanhf32x; - cbrtf64; cbrtf32x; - ccosf64; ccosf32x; - ccoshf64; ccoshf32x; - ceilf64; ceilf32x; - cexpf64; cexpf32x; - cimagf64; cimagf32x; - clog10f64; clog10f32x; - clogf64; clogf32x; - conjf64; conjf32x; - copysignf64; copysignf32x; - cosf64; cosf32x; - coshf64; coshf32x; - cpowf64; cpowf32x; - cprojf64; cprojf32x; - crealf64; crealf32x; - csinf64; csinf32x; - csinhf64; csinhf32x; - csqrtf64; csqrtf32x; - ctanf64; ctanf32x; |
