diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-12-06 00:58:03 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-12-06 00:58:03 +0000 |
commit | 0d93b7fd7cc043e908a132aacd46ff46e0c308a5 (patch) | |
tree | b544e95cd11e774c7ec079e70ef07e030067a2d2 /sysdeps/unix/sysv/linux/i386 | |
parent | f7787234964031bb642bfeb43a31292e1769b56c (diff) | |
download | glibc-0d93b7fd7cc043e908a132aacd46ff46e0c308a5.tar.gz glibc-0d93b7fd7cc043e908a132aacd46ff46e0c308a5.tar.xz glibc-0d93b7fd7cc043e908a132aacd46ff46e0c308a5.zip |
Add _Float64, _Float32x function aliases.
This patch continues filling out TS 18661-3 support by adding *f64 and *f32x function aliases, supporting _Float64 and _Float32x, as aliases for double functions. These types are supported for all glibc configurations. The API corresponds exactly to that for _Float128 and _Float64x. _Float32 aliases to float functions remain to be added in subsequent patches to complete this process (then there are a few miscellaneous functions in TS 18661-3 to implement that aren't simply versions of existing functions for new types). The patch enables the feature in bits/floatn-common.h, adds symbol versions and documentation with updates to ABI baselines, and arranges for the libm functions for the new types to be tested. As with the _Float64x changes there are some x86 ulps updates because of header inlines not used for the new types (and one other change to the non-multiarch libm-test-ulps, which I suppose comes from using a different compiler version / configuration from when it was last regenerated). Tested for x86_64 and x86, and with build-many-glibcs.py, with both GCC 6 and GCC 7. * bits/floatn-common.h (__HAVE_FLOAT64): Define to 1. (__HAVE_FLOAT32X): Likewise. * manual/math.texi (Mathematics): Document support for _Float64 and _Float32x. * math/Makefile (test-types): Add float64 and float32x. * math/Versions (GLIBC_2.27): Add _Float64 and _Float32x 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.
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/libc.abilist | 10 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/libm.abilist | 208 |
2 files changed, 218 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 8e10641162..332baed1f8 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2043,9 +2043,19 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 274ca86606..609f5bc7d5 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -612,113 +612,321 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A |