about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/alpha
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-10-18 17:37:18 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-10-18 17:37:18 +0000
commit81325b12b14c44887f1633a2c180a413afc2b504 (patch)
tree090f597a1b4997ad177ce581b39edcacd930f334 /sysdeps/unix/sysv/linux/alpha
parenta68ba2f3cd3cbe32c1f31e13c20ed13487727b32 (diff)
downloadglibc-81325b12b14c44887f1633a2c180a413afc2b504.tar.gz
glibc-81325b12b14c44887f1633a2c180a413afc2b504.tar.xz
glibc-81325b12b14c44887f1633a2c180a413afc2b504.zip
Add _Float128 function aliases.
This patch adds support for *f128 function aliases on platforms where
long double has the binary128 format (and thus GCC 7 provides the
_Float128 type with the same ABI as long double but as a distinct type
in terms of C type compatibility).  This is the same API as provided
in glibc 2.26 for powerpc64le / x86_64 / x86 / ia64 where _Float128
has a different format from long double, with the bulk of the API
coming from TS 18661-3.  All the functions alias the corresponding
long double functions, and __* function names are not provided since
those are only needed once for each floating-point format, not more
than once for different types with the same format (so for example,
-ffinite-math-only maps foof128 to __fool_finite, while type-generic
macros end up calling e.g. __issignalingl for _Float128 arguments on
such platforms).

The preparation for this feature was done in previous patches, so this
one just needs to add the relevant makefile and header definitions,
and update macro definitions of libm_alias_ldouble_other_r, to turn on
the feature, and update documentation and ABI baselines.

Tested (a) for x86_64, (b) for aarch64, (c) with build-many-glibcs.py
with both GCC 6 and GCC 7.

	* sysdeps/ieee754/ldbl-128/Makeconfig: New file.
	* sysdeps/ieee754/ldbl-128/bits/floatn.h: Likewise.
	* sysdeps/ieee754/ldbl-128/float128-abi.h: Likewise.
	* sysdeps/generic/libm-alias-ldouble.h: Include <bits/floatn.h>.
	[__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128]
	(libm_alias_ldouble_other_r): Also create _Float128 alias.
	* sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h: Include
	<bits/floatn.h>.
	[__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128]
	(libm_alias_ldouble_other_r): Also create _Float128 alias.
	* manual/math.texi (Mathematics): Document additional architecture
	support for _Float128.
	* 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/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/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/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.
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha')
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libm.abilist104
2 files changed, 109 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 4836ea0374..4e57f36bcf 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2017,6 +2017,11 @@ GLIBC_2.26 reallocarray F
 GLIBC_2.27 GLIBC_2.27 A
 GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
+GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strtof128 F
+GLIBC_2.27 strtof128_l F
+GLIBC_2.27 wcstof128 F
+GLIBC_2.27 wcstof128_l F
 GLIBC_2.3 GLIBC_2.3 A
 GLIBC_2.3 __ctype_b_loc F
 GLIBC_2.3 __ctype_tolower_loc F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 78edc5e3d9..3ba02a1966 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -471,11 +471,115 @@ GLIBC_2.25 ufromfpx F
 GLIBC_2.25 ufromfpxf F
 GLIBC_2.25 ufromfpxl F
 GLIBC_2.27 GLIBC_2.27 A
+GLIBC_2.27 acosf128 F
+GLIBC_2.27 acoshf128 F
+GLIBC_2.27 asinf128 F
+GLIBC_2.27 asinhf128 F
+GLIBC_2.27 atan2f128 F
+GLIBC_2.27 atanf128 F
+GLIBC_2.27 atanhf128 F
+GLIBC_2.27 cabsf128 F
+GLIBC_2.27 cacosf128 F
+GLIBC_2.27 cacoshf128 F
+GLIBC_2.27 canonicalizef128 F
+GLIBC_2.27 cargf128 F
+GLIBC_2.27 casinf128 F
+GLIBC_2.27 casinhf128 F
+GLIBC_2.27 catanf128 F
+GLIBC_2.27 catanhf128 F
+GLIBC_2.27 cbrtf128 F
+GLIBC_2.27 ccosf128 F
+GLIBC_2.27 ccoshf128 F
+GLIBC_2.27 ceilf128 F
+GLIBC_2.27 cexpf128 F
+GLIBC_2.27 cimagf128 F
+GLIBC_2.27 clog10f128 F
+GLIBC_2.27 clogf128 F
+GLIBC_2.27 conjf128 F
+GLIBC_2.27 copysignf128 F
+GLIBC_2.27 cosf128 F
+GLIBC_2.27 coshf128 F
+GLIBC_2.27 cpowf128 F
+GLIBC_2.27 cprojf128 F
+GLIBC_2.27 crealf128 F
+GLIBC_2.27 csinf128 F
+GLIBC_2.27 csinhf128 F
+GLIBC_2.27 csqrtf128 F
+GLIBC_2.27 ctanf128 F
+GLIBC_2.27 ctanhf128 F
+GLIBC_2.27 erfcf128 F
+GLIBC_2.27 erff128 F
+GLIBC_2.27 exp10f128 F
 GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f128 F
 GLIBC_2.27 expf F
+GLIBC_2.27 expf128 F
+GLIBC_2.27 expm1f128 F
+GLIBC_2.27 fabsf128 F
+GLIBC_2.27 fdimf128 F
+GLIBC_2.27 floorf128 F
+GLIBC_2.27 fmaf128 F
+GLIBC_2.27 fmaxf128 F
+GLIBC_2.27 fmaxmagf128 F
+GLIBC_2.27 fminf128 F
+GLIBC_2.27 fminmagf128 F
+GLIBC_2.27 fmodf128 F
+GLIBC_2.27 frexpf128 F
+GLIBC_2.27 fromfpf128 F
+GLIBC_2.27 fromfpxf128 F
+GLIBC_2.27 getpayloadf128 F
+GLIBC_2.27 hypotf128 F
+GLIBC_2.27 ilogbf128 F
+GLIBC_2.27 j0f128 F
+GLIBC_2.27 j1f128 F
+GLIBC_2.27 jnf128 F
+GLIBC_2.27 ldexpf128 F
+GLIBC_2.27 lgammaf128 F
+GLIBC_2.27 lgammaf128_r F
+GLIBC_2.27 llogbf128 F
+GLIBC_2.27 llrintf128 F
+GLIBC_2.27 llroundf128 F
+GLIBC_2.27 log10f128 F
+GLIBC_2.27 log1pf128 F
 GLIBC_2.27 log2f F
+GLIBC_2.27 log2f128 F
+GLIBC_2.27 logbf128 F
 GLIBC_2.27 logf F
+GLIBC_2.27 logf128 F
+GLIBC_2.27 lrintf128 F
+GLIBC_2.27 lroundf128 F
+GLIBC_2.27 modff128 F
+GLIBC_2.27 nanf128 F
+GLIBC_2.27 nearbyintf128 F
+GLIBC_2.27 nextafterf128 F
+GLIBC_2.27 nextdownf128 F
+GLIBC_2.27 nextupf128 F
 GLIBC_2.27 powf F
+GLIBC_2.27 powf128 F
+GLIBC_2.27 remainderf128 F
+GLIBC_2.27 remquof128 F
+GLIBC_2.27 rintf128 F
+GLIBC_2.27 roundevenf128 F
+GLIBC_2.27 roundf128 F
+GLIBC_2.27 scalblnf128 F
+GLIBC_2.27 scalbnf128 F
+GLIBC_2.27 setpayloadf128 F
+GLIBC_2.27 setpayloadsigf128 F
+GLIBC_2.27 sincosf128 F
+GLIBC_2.27 sinf128 F
+GLIBC_2.27 sinhf128 F
+GLIBC_2.27 sqrtf128 F
+GLIBC_2.27 tanf128 F
+GLIBC_2.27 tanhf128 F
+GLIBC_2.27 tgammaf128 F
+GLIBC_2.27 totalorderf128 F
+GLIBC_2.27 totalordermagf128 F
+GLIBC_2.27 truncf128 F
+GLIBC_2.27 ufromfpf128 F
+GLIBC_2.27 ufromfpxf128 F
+GLIBC_2.27 y0f128 F
+GLIBC_2.27 y1f128 F
+GLIBC_2.27 ynf128 F
 GLIBC_2.3.4 GLIBC_2.3.4 A
 GLIBC_2.3.4 __c1_cabsf F
 GLIBC_2.3.4 __c1_cacosf F