about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/i386
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-12-06 00:58:03 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-12-06 00:58:03 +0000
commit0d93b7fd7cc043e908a132aacd46ff46e0c308a5 (patch)
treeb544e95cd11e774c7ec079e70ef07e030067a2d2 /sysdeps/unix/sysv/linux/i386
parentf7787234964031bb642bfeb43a31292e1769b56c (diff)
downloadglibc-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.abilist10
-rw-r--r--sysdeps/unix/sysv/linux/i386/libm.abilist208
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