summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-12-07 00:48:31 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-12-07 00:48:31 +0000
commit1f9055ce04a66a787c400c05f12e88c96f07e686 (patch)
treea05445d18571377ca108a7a86ffe1ea698815f92 /math
parentfb1ca2aa3e58cad474c918f34e5e5eed70f5d94a (diff)
downloadglibc-1f9055ce04a66a787c400c05f12e88c96f07e686.tar.gz
glibc-1f9055ce04a66a787c400c05f12e88c96f07e686.tar.xz
glibc-1f9055ce04a66a787c400c05f12e88c96f07e686.zip
Add _Float32 function aliases.
This patch concludes filling out TS 18661-3 support for different
types by adding *f32 function aliases of float functions to support
_Float32.  As with _Float64 and _Float32x, this is supported for all
glibc configurations.  As with the previous such patches there are
some x86 ulps updates because of inline functions present for float
but not for _Float32.  The patch also has the usual
bits/floatn-common.h update, symbol versions, ABI baselines updates,
test enablement and documentation.

Tested for x86_64 and x86, and with build-many-glibcs.py, with both
GCC 6 and GCC 7.

	* 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.
Diffstat (limited to 'math')
-rw-r--r--math/Makefile2
-rw-r--r--math/Versions210
2 files changed, 106 insertions, 106 deletions
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;
-    ctanhf64; ctanhf32x;
-    erfcf64; erfcf32x;
-    erff64; erff32x;
-    exp10f64; exp10f32x;
-    exp2f64; exp2f32x;
-    expf64; expf32x;
-    expm1f64; expm1f32x;
-    fabsf64; fabsf32x;
-    fdimf64; fdimf32x;
-    floorf64; floorf32x;
-    fmaf64; fmaf32x;
-    fmaxf64; fmaxf32x;
-    fmaxmagf64; fmaxmagf32x;
-    fminf64; fminf32x;
-    fminmagf64; fminmagf32x;
-    fmodf64; fmodf32x;
-    frexpf64; frexpf32x;
-    fromfpf64; fromfpf32x;
-    fromfpxf64; fromfpxf32x;
-    getpayloadf64; getpayloadf32x;
-    hypotf64; hypotf32x;
-    ilogbf64; ilogbf32x;
-    j0f64; j0f32x;
-    j1f64; j1f32x;
-    jnf64; jnf32x;
-    ldexpf64; ldexpf32x;
-    lgammaf64; lgammaf32x;
-    lgammaf64_r; lgammaf32x_r;
-    llogbf64; llogbf32x;
-    llrintf64; llrintf32x;
-    llroundf64; llroundf32x;
-    log10f64; log10f32x;
-    log1pf64; log1pf32x;
-    log2f64; log2f32x;
-    logbf64; logbf32x;
-    logf64; logf32x;
-    lrintf64; lrintf32x;
-    lroundf64; lroundf32x;
-    modff64; modff32x;
-    nanf64; nanf32x;
-    nearbyintf64; nearbyintf32x;
-    nextafterf64; nextafterf32x;
-    nextdownf64; nextdownf32x;
-    nextupf64; nextupf32x;
-    powf64; powf32x;
-    remainderf64; remainderf32x;
-    remquof64; remquof32x;
-    rintf64; rintf32x;
-    roundevenf64; roundevenf32x;
-    roundf64; roundf32x;
-    scalblnf64; scalblnf32x;
-    scalbnf64; scalbnf32x;
-    setpayloadf64; setpayloadf32x;
-    setpayloadsigf64; setpayloadsigf32x;
-    sincosf64; sincosf32x;
-    sinf64; sinf32x;
-    sinhf64; sinhf32x;
-    sqrtf64; sqrtf32x;
-    tanf64; tanf32x;
-    tanhf64; tanhf32x;
-    tgammaf64; tgammaf32x;
-    totalorderf64; totalorderf32x;
-    totalordermagf64; totalordermagf32x;
-    truncf64; truncf32x;
-    ufromfpf64; ufromfpf32x;
-    ufromfpxf64; ufromfpxf32x;
-    y0f64; y0f32x;
-    y1f64; y1f32x;
-    ynf64; ynf32x;
+    # _Float32, _Float64 and _Float32x functions, for all configurations.
+    acosf32; acosf64; acosf32x;
+    acoshf32; acoshf64; acoshf32x;
+    asinf32; asinf64; asinf32x;
+    asinhf32; asinhf64; asinhf32x;
+    atan2f32; atan2f64; atan2f32x;
+    atanf32; atanf64; atanf32x;
+    atanhf32; atanhf64; atanhf32x;
+    cabsf32; cabsf64; cabsf32x;
+    cacosf32; cacosf64; cacosf32x;
+    cacoshf32; cacoshf64; cacoshf32x;
+    canonicalizef32; canonicalizef64; canonicalizef32x;
+    cargf32; cargf64; cargf32x;
+    casinf32; casinf64; casinf32x;
+    casinhf32; casinhf64; casinhf32x;
+    catanf32; catanf64; catanf32x;
+    catanhf32; catanhf64; catanhf32x;
+    cbrtf32; cbrtf64; cbrtf32x;
+    ccosf32; ccosf64; ccosf32x;
+    ccoshf32; ccoshf64; ccoshf32x;
+    ceilf32; ceilf64; ceilf32x;
+    cexpf32; cexpf64; cexpf32x;
+    cimagf32; cimagf64; cimagf32x;
+    clog10f32; clog10f64; clog10f32x;
+    clogf32; clogf64; clogf32x;
+    conjf32; conjf64; conjf32x;
+    copysignf32; copysignf64; copysignf32x;
+    cosf32; cosf64; cosf32x;
+    coshf32; coshf64; coshf32x;
+    cpowf32; cpowf64; cpowf32x;
+    cprojf32; cprojf64; cprojf32x;
+    crealf32; crealf64; crealf32x;
+    csinf32; csinf64; csinf32x;
+    csinhf32; csinhf64; csinhf32x;
+    csqrtf32; csqrtf64; csqrtf32x;
+    ctanf32; ctanf64; ctanf32x;
+    ctanhf32; ctanhf64; ctanhf32x;
+    erfcf32; erfcf64; erfcf32x;
+    erff32; erff64; erff32x;
+    exp10f32; exp10f64; exp10f32x;
+    exp2f32; exp2f64; exp2f32x;
+    expf32; expf64; expf32x;
+    expm1f32; expm1f64; expm1f32x;
+    fabsf32; fabsf64; fabsf32x;
+    fdimf32; fdimf64; fdimf32x;
+    floorf32; floorf64; floorf32x;
+    fmaf32; fmaf64; fmaf32x;
+    fmaxf32; fmaxf64; fmaxf32x;
+    fmaxmagf32; fmaxmagf64; fmaxmagf32x;
+    fminf32; fminf64; fminf32x;
+    fminmagf32; fminmagf64; fminmagf32x;
+    fmodf32; fmodf64; fmodf32x;
+    frexpf32; frexpf64; frexpf32x;
+    fromfpf32; fromfpf64; fromfpf32x;
+    fromfpxf32; fromfpxf64; fromfpxf32x;
+    getpayloadf32; getpayloadf64; getpayloadf32x;
+    hypotf32; hypotf64; hypotf32x;
+    ilogbf32; ilogbf64; ilogbf32x;
+    j0f32; j0f64; j0f32x;
+    j1f32; j1f64; j1f32x;
+    jnf32; jnf64; jnf32x;
+    ldexpf32; ldexpf64; ldexpf32x;
+    lgammaf32; lgammaf64; lgammaf32x;
+    lgammaf32_r; lgammaf64_r; lgammaf32x_r;
+    llogbf32; llogbf64; llogbf32x;
+    llrintf32; llrintf64; llrintf32x;
+    llroundf32; llroundf64; llroundf32x;
+    log10f32; log10f64; log10f32x;
+    log1pf32; log1pf64; log1pf32x;
+    log2f32; log2f64; log2f32x;
+    logbf32; logbf64; logbf32x;
+    logf32; logf64; logf32x;
+    lrintf32; lrintf64; lrintf32x;
+    lroundf32; lroundf64; lroundf32x;
+    modff32; modff64; modff32x;
+    nanf32; nanf64; nanf32x;
+    nearbyintf32; nearbyintf64; nearbyintf32x;
+    nextafterf32; nextafterf64; nextafterf32x;
+    nextdownf32; nextdownf64; nextdownf32x;
+    nextupf32; nextupf64; nextupf32x;
+    powf32; powf64; powf32x;
+    remainderf32; remainderf64; remainderf32x;
+    remquof32; remquof64; remquof32x;
+    rintf32; rintf64; rintf32x;
+    roundevenf32; roundevenf64; roundevenf32x;
+    roundf32; roundf64; roundf32x;
+    scalblnf32; scalblnf64; scalblnf32x;
+    scalbnf32; scalbnf64; scalbnf32x;
+    setpayloadf32; setpayloadf64; setpayloadf32x;
+    setpayloadsigf32; setpayloadsigf64; setpayloadsigf32x;
+    sincosf32; sincosf64; sincosf32x;
+    sinf32; sinf64; sinf32x;
+    sinhf32; sinhf64; sinhf32x;
+    sqrtf32; sqrtf64; sqrtf32x;
+    tanf32; tanf64; tanf32x;
+    tanhf32; tanhf64; tanhf32x;
+    tgammaf32; tgammaf64; tgammaf32x;
+    totalorderf32; totalorderf64; totalorderf32x;
+    totalordermagf32; totalordermagf64; totalordermagf32x;
+    truncf32; truncf64; truncf32x;
+    ufromfpf32; ufromfpf64; ufromfpf32x;
+    ufromfpxf32; ufromfpxf64; ufromfpxf32x;
+    y0f32; y0f64; y0f32x;
+    y1f32; y1f64; y1f32x;
+    ynf32; ynf64; ynf32x;
   }
 }