about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-11-27 14:16:47 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-11-27 14:16:47 +0000
commita23aa5b7272ec4a04578d82399ec2bf536281119 (patch)
treeca8063afcf28f64aa6b890acbda0f4bc0b6db902
parentc2c299fd24e87b83c63191ff979d41a86b37d714 (diff)
downloadglibc-a23aa5b7272ec4a04578d82399ec2bf536281119.tar.gz
glibc-a23aa5b7272ec4a04578d82399ec2bf536281119.tar.xz
glibc-a23aa5b7272ec4a04578d82399ec2bf536281119.zip
Add _Float64x function aliases.
This patch continues filling out TS 18661-3 support by adding *f64x
function aliases on platforms with _Float64x support.  (It so happens
the set of such platforms is exactly the same as the set of platforms
with _Float128 support, although on x86_64, x86 and ia32 the _Float64x
format is Intel extended rather than binary128.)  The API provided
corresponds exactly to that provided for _Float128, mostly coming from
TS 18661-3.  As these functions always alias those for another type
(long double, _Float128 or both), __* function names are not provided,
as in other cases of alias types.

Given the preparation done in previous patches, this one just enables
the feature via Makeconfig and bits/floatn.h, adds symbol versions,
and updates documentation and ABI baselines.  The symbol versions are
present unconditionally as GLIBC_2.27 in the relevant Versions files,
as it's OK for those to specify versions for functions that may not be
present in some configurations; no additional complexity is needed
unless in future some configuration gains support for this type that
didn't have such support in 2.27.  The Makeconfig additions for ia64
and x86 aren't strictly needed, as those configurations also get
float64x-alias-fcts definitions from
sysdeps/ieee754/float128/Makeconfig, but still seem appropriate given
that _Float64x is not _Float128 for those configurations.

A libm-test-ulps update for x86 is included.  This is because
bits/mathinline.h does not have _Float64x support added and for two
functions the use of out-of-line functions results in increased ulps
(ifloat64x shares ulps with ildouble / ifloat128 as appropriate).
Given that we'd like generally to eliminate bits/mathinline.h
optimizations, preferring to have such optimizations in GCC instead,
it seems reasonable not to add such support there for new types.  GCC
support for _FloatN / _FloatNx built-in functions is limited, but has
been improved in GCC 8, and at some point I hope the full set of libm
built-in functions in GCC, and other optimizations with
per-floating-type aspects, will be enabled for all _FloatN / _FloatNx
types.

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

	* sysdeps/ia64/Makeconfig (float64x-alias-fcts): New variable.
	* sysdeps/ieee754/float128/Makeconfig (float64x-alias-fcts):
	Likewise.
	* sysdeps/ieee754/ldbl-128/Makeconfig (float64x-alias-fcts):
	Likewise.
	* sysdeps/x86/Makeconfig: New file.
	* bits/floatn-common.h (__HAVE_FLOAT64X): Remove macro.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* bits/floatn.h (__HAVE_FLOAT64X): New macro.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/ia64/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/ieee754/ldbl-128/bits/floatn.h (__HAVE_FLOAT64X):
	Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/mips/ieee754/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/powerpc/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* sysdeps/x86/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
	* manual/math.texi (Mathematics): Document support for _Float64x.
	* math/Versions (GLIBC_2.27): Add _Float64x 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/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/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/powerpc/powerpc64/libc-le.abilist:
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.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.
	* 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.
-rw-r--r--ChangeLog57
-rw-r--r--NEWS6
-rw-r--r--bits/floatn-common.h7
-rw-r--r--bits/floatn.h11
-rw-r--r--manual/math.texi6
-rw-r--r--math/Versions104
-rw-r--r--stdlib/Versions5
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps8
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps8
-rw-r--r--sysdeps/ia64/Makeconfig2
-rw-r--r--sysdeps/ia64/bits/floatn.h11
-rw-r--r--sysdeps/ieee754/float128/Makeconfig1
-rw-r--r--sysdeps/ieee754/ldbl-128/Makeconfig1
-rw-r--r--sysdeps/ieee754/ldbl-128/bits/floatn.h11
-rw-r--r--sysdeps/mips/ieee754/bits/floatn.h11
-rw-r--r--sysdeps/powerpc/bits/floatn.h11
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/i386/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libm.abilist104
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist5
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist104
-rw-r--r--sysdeps/x86/Makeconfig1
-rw-r--r--sysdeps/x86/bits/floatn.h11
-rw-r--r--wcsmbs/Versions4
44 files changed, 1571 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 1131526f8b..389e39ea39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,60 @@
+2017-11-27  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/ia64/Makeconfig (float64x-alias-fcts): New variable.
+	* sysdeps/ieee754/float128/Makeconfig (float64x-alias-fcts):
+	Likewise.
+	* sysdeps/ieee754/ldbl-128/Makeconfig (float64x-alias-fcts):
+	Likewise.
+	* sysdeps/x86/Makeconfig: New file.
+	* bits/floatn-common.h (__HAVE_FLOAT64X): Remove macro.
+	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+	* bits/floatn.h (__HAVE_FLOAT64X): New macro.
+	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+	* sysdeps/ia64/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
+	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+	* sysdeps/ieee754/ldbl-128/bits/floatn.h (__HAVE_FLOAT64X):
+	Likewise.
+	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+	* sysdeps/mips/ieee754/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
+	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+	* sysdeps/powerpc/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
+	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+	* sysdeps/x86/bits/floatn.h (__HAVE_FLOAT64X): Likewise.
+	(__HAVE_FLOAT64X_LONG_DOUBLE): Likewise.
+	* manual/math.texi (Mathematics): Document support for _Float64x.
+	* math/Versions (GLIBC_2.27): Add _Float64x 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/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/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/powerpc/powerpc64/libc-le.abilist:
+	Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.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.
+	* 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-11-27  Andreas Schwab  <schwab@suse.de>
 
 	* elf/Makefile (dl-routines): Add dl-sort-maps.
diff --git a/NEWS b/NEWS
index ab14d1eb1b..33c62abf2f 100644
--- a/NEWS
+++ b/NEWS
@@ -35,6 +35,12 @@ Major new features:
   are the same interfaces added in version 2.26 for some platforms where
   this format is supported but is not the format of long double.
 
+* On platforms with support for _Float64x (aarch64, alpha, i386, ia64,
+  mips64, powerpc64le, s390, sparc and x86_64), the math library now
+  implements interfaces for that type, as defined by ISO/IEC TS
+  18661-3:2015.  These are corresponding interfaces to those supported for
+  _Float128.
+
 * glibc now implements the memfd_create function on Linux.
 
 Deprecated and removed features, and other changes affecting compatibility:
diff --git a/bits/floatn-common.h b/bits/floatn-common.h
index 2182c9d56a..4d38a910fc 100644
--- a/bits/floatn-common.h
+++ b/bits/floatn-common.h
@@ -34,7 +34,6 @@
 #define __HAVE_FLOAT32 0
 #define __HAVE_FLOAT64 0
 #define __HAVE_FLOAT32X 0
-#define __HAVE_FLOAT64X 0
 #define __HAVE_FLOAT128X 0
 
 /* Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
@@ -56,12 +55,6 @@
 #define __HAVE_DISTINCT_FLOAT64X 0
 #define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X
 
-/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
-   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
-   the format of _Float128, which must be different from that of long
-   double.  */
-#define __HAVE_FLOAT64X_LONG_DOUBLE 0
-
 /* Defined to 1 if any _FloatN or _FloatNx types that are not
    ABI-distinct are however distinct types at the C language level (so
    for the purposes of __builtin_types_compatible_p and _Generic).  */
diff --git a/bits/floatn.h b/bits/floatn.h
index dc0cf93cbf..89114b5a70 100644
--- a/bits/floatn.h
+++ b/bits/floatn.h
@@ -25,6 +25,17 @@
    from the default float, double and long double types in this glibc.  */
 #define __HAVE_DISTINCT_FLOAT128 0
 
+/* Defined to 1 if the current compiler invocation provides a
+   floating-point type with the right format for _Float64x, and this
+   glibc includes corresponding *f64x interfaces for it.  */
+#define __HAVE_FLOAT64X 0
+
+/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+   the format of _Float128, which must be different from that of long
+   double.  */
+#define __HAVE_FLOAT64X_LONG_DOUBLE 0
+
 #ifndef __ASSEMBLER__
 
 /* Defined to concatenate the literal suffix to be used with _Float128
diff --git a/manual/math.texi b/manual/math.texi
index e6aa342076..08e5dae471 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -66,9 +66,9 @@ these functions are described along with the @code{double},
 @w{ISO/IEC TS 18661-3}, unless explicitly stated otherwise.
 
 Currently, support for @code{_Float@var{N}} or @code{_Float@var{N}x}
-types is only provided for @code{_Float128} on powerpc64le (PowerPC
-64-bits little-endian), x86_64, x86, ia64, aarch64, alpha, mips64,
-s390 and sparc.
+types is only provided for @code{_Float128} and @code{_Float64x} on
+powerpc64le (PowerPC 64-bits little-endian), x86_64, x86, ia64,
+aarch64, alpha, mips64, s390 and sparc.
 
 @menu
 * Mathematical Constants::      Precise numeric values for often-used
diff --git a/math/Versions b/math/Versions
index c10e32662d..d4018f6964 100644
--- a/math/Versions
+++ b/math/Versions
@@ -340,5 +340,109 @@ libm {
 %endif
   GLIBC_2.27 {
     expf; exp2f; logf; log2f; powf;
+    acosf64x;
+    acoshf64x;
+    asinf64x;
+    asinhf64x;
+    atan2f64x;
+    atanf64x;
+    atanhf64x;
+    cabsf64x;
+    cacosf64x;
+    cacoshf64x;
+    canonicalizef64x;
+    cargf64x;
+    casinf64x;
+    casinhf64x;
+    catanf64x;
+    catanhf64x;
+    cbrtf64x;
+    ccosf64x;
+    ccoshf64x;
+    ceilf64x;
+    cexpf64x;
+    cimagf64x;
+    clog10f64x;
+    clogf64x;
+    conjf64x;
+    copysignf64x;
+    cosf64x;
+    coshf64x;
+    cpowf64x;
+    cprojf64x;
+    crealf64x;
+    csinf64x;
+    csinhf64x;
+    csqrtf64x;
+    ctanf64x;
+    ctanhf64x;
+    erfcf64x;
+    erff64x;
+    exp10f64x;
+    exp2f64x;
+    expf64x;
+    expm1f64x;
+    fabsf64x;
+    fdimf64x;
+    floorf64x;
+    fmaf64x;
+    fmaxf64x;
+    fmaxmagf64x;
+    fminf64x;
+    fminmagf64x;
+    fmodf64x;
+    frexpf64x;
+    fromfpf64x;
+    fromfpxf64x;
+    getpayloadf64x;
+    hypotf64x;
+    ilogbf64x;
+    j0f64x;
+    j1f64x;
+    jnf64x;
+    ldexpf64x;
+    lgammaf64x;
+    lgammaf64x_r;
+    llogbf64x;
+    llrintf64x;
+    llroundf64x;
+    log10f64x;
+    log1pf64x;
+    log2f64x;
+    logbf64x;
+    logf64x;
+    lrintf64x;
+    lroundf64x;
+    modff64x;
+    nanf64x;
+    nearbyintf64x;
+    nextafterf64x;
+    nextdownf64x;
+    nextupf64x;
+    powf64x;
+    remainderf64x;
+    remquof64x;
+    rintf64x;
+    roundevenf64x;
+    roundf64x;
+    scalblnf64x;
+    scalbnf64x;
+    setpayloadf64x;
+    setpayloadsigf64x;
+    sincosf64x;
+    sinf64x;
+    sinhf64x;
+    sqrtf64x;
+    tanf64x;
+    tanhf64x;
+    tgammaf64x;
+    totalorderf64x;
+    totalordermagf64x;
+    truncf64x;
+    ufromfpf64x;
+    ufromfpxf64x;
+    y0f64x;
+    y1f64x;
+    ynf64x;
   }
 }
diff --git a/stdlib/Versions b/stdlib/Versions
index bf2172f926..66f6b35be9 100644
--- a/stdlib/Versions
+++ b/stdlib/Versions
@@ -129,6 +129,11 @@ libc {
     strtof128_l;
   }
 %endif
+  GLIBC_2.27 {
+    strfromf64x;
+    strtof64x;
+    strtof64x_l;
+  }
   GLIBC_PRIVATE {
     # functions which have an additional interface since they are
     # are cancelable.
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index be6aadf1c6..c0ed6a9497 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -222,7 +222,7 @@ float128: 4
 idouble: 1
 ifloat: 1
 ifloat128: 4
-ildouble: 3
+ildouble: 4
 ldouble: 4
 
 Function: "atanh_towardzero":
@@ -2488,7 +2488,7 @@ float128: 3
 idouble: 1
 ifloat: 1
 ifloat128: 3
-ildouble: 4
+ildouble: 5
 ldouble: 5
 
 Function: "sinh_towardzero":
@@ -2498,7 +2498,7 @@ float128: 3
 idouble: 1
 ifloat: 1
 ifloat128: 3
-ildouble: 3
+ildouble: 4
 ldouble: 4
 
 Function: "sinh_upward":
@@ -2508,7 +2508,7 @@ float128: 4
 idouble: 1
 ifloat: 1
 ifloat128: 4
-ildouble: 4
+ildouble: 5
 ldouble: 5
 
 Function: "tan":
diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
index 26d90ec636..e67837c5df 100644
--- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
+++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
@@ -222,7 +222,7 @@ float128: 4
 idouble: 1
 ifloat: 1
 ifloat128: 4
-ildouble: 3
+ildouble: 4
 ldouble: 4
 
 Function: "atanh_towardzero":
@@ -2472,7 +2472,7 @@ float128: 3
 idouble: 1
 ifloat: 1
 ifloat128: 3
-ildouble: 4
+ildouble: 5
 ldouble: 5
 
 Function: "sinh_towardzero":
@@ -2482,7 +2482,7 @@ float128: 3
 idouble: 1
 ifloat: 1
 ifloat128: 3
-ildouble: 3
+ildouble: 4
 ldouble: 4
 
 Function: "sinh_upward":
@@ -2492,7 +2492,7 @@ float128: 4
 idouble: 1
 ifloat: 1
 ifloat128: 4
-ildouble: 4
+ildouble: 5
 ldouble: 5
 
 Function: "tan":
diff --git a/sysdeps/ia64/Makeconfig b/sysdeps/ia64/Makeconfig
index d1d3f6c95c..2f1abe868c 100644
--- a/sysdeps/ia64/Makeconfig
+++ b/sysdeps/ia64/Makeconfig
@@ -1,2 +1,4 @@
 # ia64 does not provide crtbeginT.o, so use crtbegin.o.
 +prectorT = $(+prector)
+
+float64x-alias-fcts = yes
diff --git a/sysdeps/ia64/bits/floatn.h b/sysdeps/ia64/bits/floatn.h
index d0aeb3f99e..938a5ddac5 100644
--- a/sysdeps/ia64/bits/floatn.h
+++ b/sysdeps/ia64/bits/floatn.h
@@ -40,6 +40,17 @@
 # define __HAVE_DISTINCT_FLOAT128 0
 #endif
 
+/* Defined to 1 if the current compiler invocation provides a
+   floating-point type with the right format for _Float64x, and this
+   glibc includes corresponding *f64x interfaces for it.  */
+#define __HAVE_FLOAT64X 1
+
+/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+   the format of _Float128, which must be different from that of long
+   double.  */
+#define __HAVE_FLOAT64X_LONG_DOUBLE 1
+
 #ifndef __ASSEMBLER__
 
 /* Defined to concatenate the literal suffix to be used with _Float128
diff --git a/sysdeps/ieee754/float128/Makeconfig b/sysdeps/ieee754/float128/Makeconfig
index 6c385d2df2..a493ff1d41 100644
--- a/sysdeps/ieee754/float128/Makeconfig
+++ b/sysdeps/ieee754/float128/Makeconfig
@@ -1,3 +1,4 @@
 # Include this earlier so it can be used earlier in Makefiles,
 # and sysdep/ makefiles.
 float128-fcts = yes
+float64x-alias-fcts = yes
diff --git a/sysdeps/ieee754/ldbl-128/Makeconfig b/sysdeps/ieee754/ldbl-128/Makeconfig
index 1f8e2562f0..ca17c1b12a 100644
--- a/sysdeps/ieee754/ldbl-128/Makeconfig
+++ b/sysdeps/ieee754/ldbl-128/Makeconfig
@@ -1,3 +1,4 @@
 # Include this earlier so it can be used earlier in Makefiles,
 # and sysdep/ makefiles.
 float128-alias-fcts = yes
+float64x-alias-fcts = yes
diff --git a/sysdeps/ieee754/ldbl-128/bits/floatn.h b/sysdeps/ieee754/ldbl-128/bits/floatn.h
index 01009f0deb..7489bcf204 100644
--- a/sysdeps/ieee754/ldbl-128/bits/floatn.h
+++ b/sysdeps/ieee754/ldbl-128/bits/floatn.h
@@ -39,6 +39,17 @@
    from the default float, double and long double types in this glibc.  */
 #define __HAVE_DISTINCT_FLOAT128 0
 
+/* Defined to 1 if the current compiler invocation provides a
+   floating-point type with the right format for _Float64x, and this
+   glibc includes corresponding *f64x interfaces for it.  */
+#define __HAVE_FLOAT64X __HAVE_FLOAT128
+
+/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+   the format of _Float128, which must be different from that of long
+   double.  */
+#define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128
+
 #ifndef __ASSEMBLER__
 
 /* Defined to concatenate the literal suffix to be used with _Float128
diff --git a/sysdeps/mips/ieee754/bits/floatn.h b/sysdeps/mips/ieee754/bits/floatn.h
index 4131991ded..ab74ccfc70 100644
--- a/sysdeps/mips/ieee754/bits/floatn.h
+++ b/sysdeps/mips/ieee754/bits/floatn.h
@@ -39,6 +39,17 @@
    from the default float, double and long double types in this glibc.  */
 #define __HAVE_DISTINCT_FLOAT128 0
 
+/* Defined to 1 if the current compiler invocation provides a
+   floating-point type with the right format for _Float64x, and this
+   glibc includes corresponding *f64x interfaces for it.  */
+#define __HAVE_FLOAT64X __HAVE_FLOAT128
+
+/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+   the format of _Float128, which must be different from that of long
+   double.  */
+#define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128
+
 #ifndef __ASSEMBLER__
 
 /* Defined to concatenate the literal suffix to be used with _Float128
diff --git a/sysdeps/powerpc/bits/floatn.h b/sysdeps/powerpc/bits/floatn.h
index 09a1c30f5e..e2595e70be 100644
--- a/sysdeps/powerpc/bits/floatn.h
+++ b/sysdeps/powerpc/bits/floatn.h
@@ -40,6 +40,17 @@
 # define __HAVE_DISTINCT_FLOAT128 0
 #endif
 
+/* Defined to 1 if the current compiler invocation provides a
+   floating-point type with the right format for _Float64x, and this
+   glibc includes corresponding *f64x interfaces for it.  */
+#define __HAVE_FLOAT64X __HAVE_FLOAT128
+
+/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+   the format of _Float128, which must be different from that of long
+   double.  */
+#define __HAVE_FLOAT64X_LONG_DOUBLE 0
+
 #ifndef __ASSEMBLER__
 
 /* Defined to concatenate the literal suffix to be used with _Float128
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 140ca28abc..af60b4f577 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2108,7 +2108,12 @@ GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
 GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strfromf64x F
 GLIBC_2.27 strtof128 F
 GLIBC_2.27 strtof128_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
 GLIBC_2.27 wcstof128 F
 GLIBC_2.27 wcstof128_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_l F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index b21d136e9d..4174e64e6e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -462,111 +462,215 @@ 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 acosf64x F
 GLIBC_2.27 acoshf128 F
+GLIBC_2.27 acoshf64x F
 GLIBC_2.27 asinf128 F
+GLIBC_2.27 asinf64x F
 GLIBC_2.27 asinhf128 F
+GLIBC_2.27 asinhf64x F
 GLIBC_2.27 atan2f128 F
+GLIBC_2.27 atan2f64x F
 GLIBC_2.27 atanf128 F
+GLIBC_2.27 atanf64x F
 GLIBC_2.27 atanhf128 F
+GLIBC_2.27 atanhf64x F
 GLIBC_2.27 cabsf128 F
+GLIBC_2.27 cabsf64x F
 GLIBC_2.27 cacosf128 F
+GLIBC_2.27 cacosf64x F
 GLIBC_2.27 cacoshf128 F
+GLIBC_2.27 cacoshf64x F
 GLIBC_2.27 canonicalizef128 F
+GLIBC_2.27 canonicalizef64x F
 GLIBC_2.27 cargf128 F
+GLIBC_2.27 cargf64x F
 GLIBC_2.27 casinf128 F
+GLIBC_2.27 casinf64x F
 GLIBC_2.27 casinhf128 F
+GLIBC_2.27 casinhf64x F
 GLIBC_2.27 catanf128 F
+GLIBC_2.27 catanf64x F
 GLIBC_2.27 catanhf128 F
+GLIBC_2.27 catanhf64x F
 GLIBC_2.27 cbrtf128 F
+GLIBC_2.27 cbrtf64x F
 GLIBC_2.27 ccosf128 F
+GLIBC_2.27 ccosf64x F
 GLIBC_2.27 ccoshf128 F
+GLIBC_2.27 ccoshf64x F
 GLIBC_2.27 ceilf128 F
+GLIBC_2.27 ceilf64x F
 GLIBC_2.27 cexpf128 F
+GLIBC_2.27 cexpf64x F
 GLIBC_2.27 cimagf128 F
+GLIBC_2.27 cimagf64x F
 GLIBC_2.27 clog10f128 F
+GLIBC_2.27 clog10f64x F
 GLIBC_2.27 clogf128 F
+GLIBC_2.27 clogf64x F
 GLIBC_2.27 conjf128 F
+GLIBC_2.27 conjf64x F
 GLIBC_2.27 copysignf128 F
+GLIBC_2.27 copysignf64x F
 GLIBC_2.27 cosf128 F
+GLIBC_2.27 cosf64x F
 GLIBC_2.27 coshf128 F
+GLIBC_2.27 coshf64x F
 GLIBC_2.27 cpowf128 F
+GLIBC_2.27 cpowf64x F
 GLIBC_2.27 cprojf128 F
+GLIBC_2.27 cprojf64x F
 GLIBC_2.27 crealf128 F
+GLIBC_2.27 crealf64x F
 GLIBC_2.27 csinf128 F
+GLIBC_2.27 csinf64x F
 GLIBC_2.27 csinhf128 F
+GLIBC_2.27 csinhf64x F
 GLIBC_2.27 csqrtf128 F
+GLIBC_2.27 csqrtf64x F
 GLIBC_2.27 ctanf128 F
+GLIBC_2.27 ctanf64x F
 GLIBC_2.27 ctanhf128 F
+GLIBC_2.27 ctanhf64x F
 GLIBC_2.27 erfcf128 F
+GLIBC_2.27 erfcf64x F
 GLIBC_2.27 erff128 F
+GLIBC_2.27 erff64x F
 GLIBC_2.27 exp10f128 F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
 GLIBC_2.27 exp2f128 F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
 GLIBC_2.27 expf128 F
+GLIBC_2.27 expf64x F
 GLIBC_2.27 expm1f128 F
+GLIBC_2.27 expm1f64x F
 GLIBC_2.27 fabsf128 F
+GLIBC_2.27 fabsf64x F
 GLIBC_2.27 fdimf128 F
+GLIBC_2.27 fdimf64x F
 GLIBC_2.27 floorf128 F
+GLIBC_2.27 floorf64x F
 GLIBC_2.27 fmaf128 F
+GLIBC_2.27 fmaf64x F
 GLIBC_2.27 fmaxf128 F
+GLIBC_2.27 fmaxf64x F
 GLIBC_2.27 fmaxmagf128 F
+GLIBC_2.27 fmaxmagf64x F
 GLIBC_2.27 fminf128 F
+GLIBC_2.27 fminf64x F
 GLIBC_2.27 fminmagf128 F
+GLIBC_2.27 fminmagf64x F
 GLIBC_2.27 fmodf128 F
+GLIBC_2.27 fmodf64x F
 GLIBC_2.27 frexpf128 F
+GLIBC_2.27 frexpf64x F
 GLIBC_2.27 fromfpf128 F
+GLIBC_2.27 fromfpf64x F
 GLIBC_2.27 fromfpxf128 F
+GLIBC_2.27 fromfpxf64x F
 GLIBC_2.27 getpayloadf128 F
+GLIBC_2.27 getpayloadf64x F
 GLIBC_2.27 hypotf128 F
+GLIBC_2.27 hypotf64x F
 GLIBC_2.27 ilogbf128 F
+GLIBC_2.27 ilogbf64x F
 GLIBC_2.27 j0f128 F
+GLIBC_2.27 j0f64x F
 GLIBC_2.27 j1f128 F
+GLIBC_2.27 j1f64x F
 GLIBC_2.27 jnf128 F
+GLIBC_2.27 jnf64x F
 GLIBC_2.27 ldexpf128 F
+GLIBC_2.27 ldexpf64x F
 GLIBC_2.27 lgammaf128 F
 GLIBC_2.27 lgammaf128_r F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
 GLIBC_2.27 llogbf128 F
+GLIBC_2.27 llogbf64x F
 GLIBC_2.27 llrintf128 F
+GLIBC_2.27 llrintf64x F
 GLIBC_2.27 llroundf128 F
+GLIBC_2.27 llroundf64x F
 GLIBC_2.27 log10f128 F
+GLIBC_2.27 log10f64x F
 GLIBC_2.27 log1pf128 F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
 GLIBC_2.27 log2f128 F
+GLIBC_2.27 log2f64x F
 GLIBC_2.27 logbf128 F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
 GLIBC_2.27 logf128 F
+GLIBC_2.27 logf64x F
 GLIBC_2.27 lrintf128 F
+GLIBC_2.27 lrintf64x F
 GLIBC_2.27 lroundf128 F
+GLIBC_2.27 lroundf64x F
 GLIBC_2.27 modff128 F
+GLIBC_2.27 modff64x F
 GLIBC_2.27 nanf128 F
+GLIBC_2.27 nanf64x F
 GLIBC_2.27 nearbyintf128 F
+GLIBC_2.27 nearbyintf64x F
 GLIBC_2.27 nextafterf128 F
+GLIBC_2.27 nextafterf64x F
 GLIBC_2.27 nextdownf128 F
+GLIBC_2.27 nextdownf64x F
 GLIBC_2.27 nextupf128 F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
 GLIBC_2.27 powf128 F
+GLIBC_2.27 powf64x F
 GLIBC_2.27 remainderf128 F
+GLIBC_2.27 remainderf64x F
 GLIBC_2.27 remquof128 F
+GLIBC_2.27 remquof64x F
 GLIBC_2.27 rintf128 F
+GLIBC_2.27 rintf64x F
 GLIBC_2.27 roundevenf128 F
+GLIBC_2.27 roundevenf64x F
 GLIBC_2.27 roundf128 F
+GLIBC_2.27 roundf64x F
 GLIBC_2.27 scalblnf128 F
+GLIBC_2.27 scalblnf64x F
 GLIBC_2.27 scalbnf128 F
+GLIBC_2.27 scalbnf64x F
 GLIBC_2.27 setpayloadf128 F
+GLIBC_2.27 setpayloadf64x F
 GLIBC_2.27 setpayloadsigf128 F
+GLIBC_2.27 setpayloadsigf64x F
 GLIBC_2.27 sincosf128 F
+GLIBC_2.27 sincosf64x F
 GLIBC_2.27 sinf128 F
+GLIBC_2.27 sinf64x F
 GLIBC_2.27 sinhf128 F
+GLIBC_2.27 sinhf64x F
 GLIBC_2.27 sqrtf128 F
+GLIBC_2.27 sqrtf64x F
 GLIBC_2.27 tanf128 F
+GLIBC_2.27 tanf64x F
 GLIBC_2.27 tanhf128 F
+GLIBC_2.27 tanhf64x F
 GLIBC_2.27 tgammaf128 F
+GLIBC_2.27 tgammaf64x F
 GLIBC_2.27 totalorderf128 F
+GLIBC_2.27 totalorderf64x F
 GLIBC_2.27 totalordermagf128 F
+GLIBC_2.27 totalordermagf64x F
 GLIBC_2.27 truncf128 F
+GLIBC_2.27 truncf64x F
 GLIBC_2.27 ufromfpf128 F
+GLIBC_2.27 ufromfpf64x F
 GLIBC_2.27 ufromfpxf128 F
+GLIBC_2.27 ufromfpxf64x F
 GLIBC_2.27 y0f128 F
+GLIBC_2.27 y0f64x F
 GLIBC_2.27 y1f128 F
+GLIBC_2.27 y1f64x F
 GLIBC_2.27 ynf128 F
+GLIBC_2.27 ynf64x F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index f698e1b2f4..98c6a17ae1 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -2019,10 +2019,15 @@ GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
 GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strfromf64x F
 GLIBC_2.27 strtof128 F
 GLIBC_2.27 strtof128_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
 GLIBC_2.27 wcstof128 F
 GLIBC_2.27 wcstof128_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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 3ba02a1966..75bd55cbb9 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -472,114 +472,218 @@ 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 acosf64x F
 GLIBC_2.27 acoshf128 F
+GLIBC_2.27 acoshf64x F
 GLIBC_2.27 asinf128 F
+GLIBC_2.27 asinf64x F
 GLIBC_2.27 asinhf128 F
+GLIBC_2.27 asinhf64x F
 GLIBC_2.27 atan2f128 F
+GLIBC_2.27 atan2f64x F
 GLIBC_2.27 atanf128 F
+GLIBC_2.27 atanf64x F
 GLIBC_2.27 atanhf128 F
+GLIBC_2.27 atanhf64x F
 GLIBC_2.27 cabsf128 F
+GLIBC_2.27 cabsf64x F
 GLIBC_2.27 cacosf128 F
+GLIBC_2.27 cacosf64x F
 GLIBC_2.27 cacoshf128 F
+GLIBC_2.27 cacoshf64x F
 GLIBC_2.27 canonicalizef128 F
+GLIBC_2.27 canonicalizef64x F
 GLIBC_2.27 cargf128 F
+GLIBC_2.27 cargf64x F
 GLIBC_2.27 casinf128 F
+GLIBC_2.27 casinf64x F
 GLIBC_2.27 casinhf128 F
+GLIBC_2.27 casinhf64x F
 GLIBC_2.27 catanf128 F
+GLIBC_2.27 catanf64x F
 GLIBC_2.27 catanhf128 F
+GLIBC_2.27 catanhf64x F
 GLIBC_2.27 cbrtf128 F
+GLIBC_2.27 cbrtf64x F
 GLIBC_2.27 ccosf128 F
+GLIBC_2.27 ccosf64x F
 GLIBC_2.27 ccoshf128 F
+GLIBC_2.27 ccoshf64x F
 GLIBC_2.27 ceilf128 F
+GLIBC_2.27 ceilf64x F
 GLIBC_2.27 cexpf128 F
+GLIBC_2.27 cexpf64x F
 GLIBC_2.27 cimagf128 F
+GLIBC_2.27 cimagf64x F
 GLIBC_2.27 clog10f128 F
+GLIBC_2.27 clog10f64x F
 GLIBC_2.27 clogf128 F
+GLIBC_2.27 clogf64x F
 GLIBC_2.27 conjf128 F
+GLIBC_2.27 conjf64x F
 GLIBC_2.27 copysignf128 F
+GLIBC_2.27 copysignf64x F
 GLIBC_2.27 cosf128 F
+GLIBC_2.27 cosf64x F
 GLIBC_2.27 coshf128 F
+GLIBC_2.27 coshf64x F
 GLIBC_2.27 cpowf128 F
+GLIBC_2.27 cpowf64x F
 GLIBC_2.27 cprojf128 F
+GLIBC_2.27 cprojf64x F
 GLIBC_2.27 crealf128 F
+GLIBC_2.27 crealf64x F
 GLIBC_2.27 csinf128 F
+GLIBC_2.27 csinf64x F
 GLIBC_2.27 csinhf128 F
+GLIBC_2.27 csinhf64x F
 GLIBC_2.27 csqrtf128 F
+GLIBC_2.27 csqrtf64x F
 GLIBC_2.27 ctanf128 F
+GLIBC_2.27 ctanf64x F
 GLIBC_2.27 ctanhf128 F
+GLIBC_2.27 ctanhf64x F
 GLIBC_2.27 erfcf128 F
+GLIBC_2.27 erfcf64x F
 GLIBC_2.27 erff128 F
+GLIBC_2.27 erff64x F
 GLIBC_2.27 exp10f128 F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
 GLIBC_2.27 exp2f128 F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
 GLIBC_2.27 expf128 F
+GLIBC_2.27 expf64x F
 GLIBC_2.27 expm1f128 F
+GLIBC_2.27 expm1f64x F
 GLIBC_2.27 fabsf128 F
+GLIBC_2.27 fabsf64x F
 GLIBC_2.27 fdimf128 F
+GLIBC_2.27 fdimf64x F
 GLIBC_2.27 floorf128 F
+GLIBC_2.27 floorf64x F
 GLIBC_2.27 fmaf128 F
+GLIBC_2.27 fmaf64x F
 GLIBC_2.27 fmaxf128 F
+GLIBC_2.27 fmaxf64x F
 GLIBC_2.27 fmaxmagf128 F
+GLIBC_2.27 fmaxmagf64x F
 GLIBC_2.27 fminf128 F
+GLIBC_2.27 fminf64x F
 GLIBC_2.27 fminmagf128 F
+GLIBC_2.27 fminmagf64x F
 GLIBC_2.27 fmodf128 F
+GLIBC_2.27 fmodf64x F
 GLIBC_2.27 frexpf128 F
+GLIBC_2.27 frexpf64x F
 GLIBC_2.27 fromfpf128 F
+GLIBC_2.27 fromfpf64x F
 GLIBC_2.27 fromfpxf128 F
+GLIBC_2.27 fromfpxf64x F
 GLIBC_2.27 getpayloadf128 F
+GLIBC_2.27 getpayloadf64x F
 GLIBC_2.27 hypotf128 F
+GLIBC_2.27 hypotf64x F
 GLIBC_2.27 ilogbf128 F
+GLIBC_2.27 ilogbf64x F
 GLIBC_2.27 j0f128 F
+GLIBC_2.27 j0f64x F
 GLIBC_2.27 j1f128 F
+GLIBC_2.27 j1f64x F
 GLIBC_2.27 jnf128 F
+GLIBC_2.27 jnf64x F
 GLIBC_2.27 ldexpf128 F
+GLIBC_2.27 ldexpf64x F
 GLIBC_2.27 lgammaf128 F
 GLIBC_2.27 lgammaf128_r F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
 GLIBC_2.27 llogbf128 F
+GLIBC_2.27 llogbf64x F
 GLIBC_2.27 llrintf128 F
+GLIBC_2.27 llrintf64x F
 GLIBC_2.27 llroundf128 F
+GLIBC_2.27 llroundf64x F
 GLIBC_2.27 log10f128 F
+GLIBC_2.27 log10f64x F
 GLIBC_2.27 log1pf128 F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
 GLIBC_2.27 log2f128 F
+GLIBC_2.27 log2f64x F
 GLIBC_2.27 logbf128 F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
 GLIBC_2.27 logf128 F
+GLIBC_2.27 logf64x F
 GLIBC_2.27 lrintf128 F
+GLIBC_2.27 lrintf64x F
 GLIBC_2.27 lroundf128 F
+GLIBC_2.27 lroundf64x F
 GLIBC_2.27 modff128 F
+GLIBC_2.27 modff64x F
 GLIBC_2.27 nanf128 F
+GLIBC_2.27 nanf64x F
 GLIBC_2.27 nearbyintf128 F
+GLIBC_2.27 nearbyintf64x F
 GLIBC_2.27 nextafterf128 F
+GLIBC_2.27 nextafterf64x F
 GLIBC_2.27 nextdownf128 F
+GLIBC_2.27 nextdownf64x F
 GLIBC_2.27 nextupf128 F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
 GLIBC_2.27 powf128 F
+GLIBC_2.27 powf64x F
 GLIBC_2.27 remainderf128 F
+GLIBC_2.27 remainderf64x F
 GLIBC_2.27 remquof128 F
+GLIBC_2.27 remquof64x F
 GLIBC_2.27 rintf128 F
+GLIBC_2.27 rintf64x F
 GLIBC_2.27 roundevenf128 F
+GLIBC_2.27 roundevenf64x F
 GLIBC_2.27 roundf128 F
+GLIBC_2.27 roundf64x F
 GLIBC_2.27 scalblnf128 F
+GLIBC_2.27 scalblnf64x F
 GLIBC_2.27 scalbnf128 F
+GLIBC_2.27 scalbnf64x F
 GLIBC_2.27 setpayloadf128 F
+GLIBC_2.27 setpayloadf64x F
 GLIBC_2.27 setpayloadsigf128 F
+GLIBC_2.27 setpayloadsigf64x F
 GLIBC_2.27 sincosf128 F
+GLIBC_2.27 sincosf64x F
 GLIBC_2.27 sinf128 F
+GLIBC_2.27 sinf64x F
 GLIBC_2.27 sinhf128 F
+GLIBC_2.27 sinhf64x F
 GLIBC_2.27 sqrtf128 F
+GLIBC_2.27 sqrtf64x F
 GLIBC_2.27 tanf128 F
+GLIBC_2.27 tanf64x F
 GLIBC_2.27 tanhf128 F
+GLIBC_2.27 tanhf64x F
 GLIBC_2.27 tgammaf128 F
+GLIBC_2.27 tgammaf64x F
 GLIBC_2.27 totalorderf128 F
+GLIBC_2.27 totalorderf64x F
 GLIBC_2.27 totalordermagf128 F
+GLIBC_2.27 totalordermagf64x F
 GLIBC_2.27 truncf128 F
+GLIBC_2.27 truncf64x F
 GLIBC_2.27 ufromfpf128 F
+GLIBC_2.27 ufromfpf64x F
 GLIBC_2.27 ufromfpxf128 F
+GLIBC_2.27 ufromfpxf64x F
 GLIBC_2.27 y0f128 F
+GLIBC_2.27 y0f64x F
 GLIBC_2.27 y1f128 F
+GLIBC_2.27 y1f64x F
 GLIBC_2.27 ynf128 F
+GLIBC_2.27 ynf64x F
 GLIBC_2.3.4 GLIBC_2.3.4 A
 GLIBC_2.3.4 __c1_cabsf F
 GLIBC_2.3.4 __c1_cacosf F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 51ead9e867..1526778ec2 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2037,6 +2037,11 @@ GLIBC_2.27 GLIBC_2.27 A
 GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
+GLIBC_2.27 strfromf64x F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 1a7e6bf449..274ca86606 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -612,9 +612,113 @@ 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 acosf64x F
+GLIBC_2.27 acoshf64x F
+GLIBC_2.27 asinf64x F
+GLIBC_2.27 asinhf64x F
+GLIBC_2.27 atan2f64x F
+GLIBC_2.27 atanf64x F
+GLIBC_2.27 atanhf64x F
+GLIBC_2.27 cabsf64x F
+GLIBC_2.27 cacosf64x F
+GLIBC_2.27 cacoshf64x F
+GLIBC_2.27 canonicalizef64x F
+GLIBC_2.27 cargf64x F
+GLIBC_2.27 casinf64x F
+GLIBC_2.27 casinhf64x F
+GLIBC_2.27 catanf64x F
+GLIBC_2.27 catanhf64x F
+GLIBC_2.27 cbrtf64x F
+GLIBC_2.27 ccosf64x F
+GLIBC_2.27 ccoshf64x F
+GLIBC_2.27 ceilf64x F
+GLIBC_2.27 cexpf64x F
+GLIBC_2.27 cimagf64x F
+GLIBC_2.27 clog10f64x F
+GLIBC_2.27 clogf64x F
+GLIBC_2.27 conjf64x F
+GLIBC_2.27 copysignf64x F
+GLIBC_2.27 cosf64x F
+GLIBC_2.27 coshf64x F
+GLIBC_2.27 cpowf64x F
+GLIBC_2.27 cprojf64x F
+GLIBC_2.27 crealf64x F
+GLIBC_2.27 csinf64x F
+GLIBC_2.27 csinhf64x F
+GLIBC_2.27 csqrtf64x F
+GLIBC_2.27 ctanf64x F
+GLIBC_2.27 ctanhf64x F
+GLIBC_2.27 erfcf64x F
+GLIBC_2.27 erff64x F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
+GLIBC_2.27 expf64x F
+GLIBC_2.27 expm1f64x F
+GLIBC_2.27 fabsf64x F
+GLIBC_2.27 fdimf64x F
+GLIBC_2.27 floorf64x F
+GLIBC_2.27 fmaf64x F
+GLIBC_2.27 fmaxf64x F
+GLIBC_2.27 fmaxmagf64x F
+GLIBC_2.27 fminf64x F
+GLIBC_2.27 fminmagf64x F
+GLIBC_2.27 fmodf64x F
+GLIBC_2.27 frexpf64x F
+GLIBC_2.27 fromfpf64x F
+GLIBC_2.27 fromfpxf64x F
+GLIBC_2.27 getpayloadf64x F
+GLIBC_2.27 hypotf64x F
+GLIBC_2.27 ilogbf64x F
+GLIBC_2.27 j0f64x F
+GLIBC_2.27 j1f64x F
+GLIBC_2.27 jnf64x F
+GLIBC_2.27 ldexpf64x F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
+GLIBC_2.27 llogbf64x F
+GLIBC_2.27 llrintf64x F
+GLIBC_2.27 llroundf64x F
+GLIBC_2.27 log10f64x F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
+GLIBC_2.27 log2f64x F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
+GLIBC_2.27 logf64x F
+GLIBC_2.27 lrintf64x F
+GLIBC_2.27 lroundf64x F
+GLIBC_2.27 modff64x F
+GLIBC_2.27 nanf64x F
+GLIBC_2.27 nearbyintf64x F
+GLIBC_2.27 nextafterf64x F
+GLIBC_2.27 nextdownf64x F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
+GLIBC_2.27 powf64x F
+GLIBC_2.27 remainderf64x F
+GLIBC_2.27 remquof64x F
+GLIBC_2.27 rintf64x F
+GLIBC_2.27 roundevenf64x F
+GLIBC_2.27 roundf64x F
+GLIBC_2.27 scalblnf64x F
+GLIBC_2.27 scalbnf64x F
+GLIBC_2.27 setpayloadf64x F
+GLIBC_2.27 setpayloadsigf64x F
+GLIBC_2.27 sincosf64x F
+GLIBC_2.27 sinf64x F
+GLIBC_2.27 sinhf64x F
+GLIBC_2.27 sqrtf64x F
+GLIBC_2.27 tanf64x F
+GLIBC_2.27 tanhf64x F
+GLIBC_2.27 tgammaf64x F
+GLIBC_2.27 totalorderf64x F
+GLIBC_2.27 totalordermagf64x F
+GLIBC_2.27 truncf64x F
+GLIBC_2.27 ufromfpf64x F
+GLIBC_2.27 ufromfpxf64x F
+GLIBC_2.27 y0f64x F
+GLIBC_2.27 y1f64x F
+GLIBC_2.27 ynf64x F
 GLIBC_2.4 GLIBC_2.4 A
diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist
index 78b4ee8d40..132200f2bd 100644
--- a/sysdeps/unix/sysv/linux/ia64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -1901,6 +1901,11 @@ GLIBC_2.27 GLIBC_2.27 A
 GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
+GLIBC_2.27 strfromf64x F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist
index 7e15735eae..28a38c6006 100644
--- a/sysdeps/unix/sysv/linux/ia64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist
@@ -541,9 +541,113 @@ 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 acosf64x F
+GLIBC_2.27 acoshf64x F
+GLIBC_2.27 asinf64x F
+GLIBC_2.27 asinhf64x F
+GLIBC_2.27 atan2f64x F
+GLIBC_2.27 atanf64x F
+GLIBC_2.27 atanhf64x F
+GLIBC_2.27 cabsf64x F
+GLIBC_2.27 cacosf64x F
+GLIBC_2.27 cacoshf64x F
+GLIBC_2.27 canonicalizef64x F
+GLIBC_2.27 cargf64x F
+GLIBC_2.27 casinf64x F
+GLIBC_2.27 casinhf64x F
+GLIBC_2.27 catanf64x F
+GLIBC_2.27 catanhf64x F
+GLIBC_2.27 cbrtf64x F
+GLIBC_2.27 ccosf64x F
+GLIBC_2.27 ccoshf64x F
+GLIBC_2.27 ceilf64x F
+GLIBC_2.27 cexpf64x F
+GLIBC_2.27 cimagf64x F
+GLIBC_2.27 clog10f64x F
+GLIBC_2.27 clogf64x F
+GLIBC_2.27 conjf64x F
+GLIBC_2.27 copysignf64x F
+GLIBC_2.27 cosf64x F
+GLIBC_2.27 coshf64x F
+GLIBC_2.27 cpowf64x F
+GLIBC_2.27 cprojf64x F
+GLIBC_2.27 crealf64x F
+GLIBC_2.27 csinf64x F
+GLIBC_2.27 csinhf64x F
+GLIBC_2.27 csqrtf64x F
+GLIBC_2.27 ctanf64x F
+GLIBC_2.27 ctanhf64x F
+GLIBC_2.27 erfcf64x F
+GLIBC_2.27 erff64x F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
+GLIBC_2.27 expf64x F
+GLIBC_2.27 expm1f64x F
+GLIBC_2.27 fabsf64x F
+GLIBC_2.27 fdimf64x F
+GLIBC_2.27 floorf64x F
+GLIBC_2.27 fmaf64x F
+GLIBC_2.27 fmaxf64x F
+GLIBC_2.27 fmaxmagf64x F
+GLIBC_2.27 fminf64x F
+GLIBC_2.27 fminmagf64x F
+GLIBC_2.27 fmodf64x F
+GLIBC_2.27 frexpf64x F
+GLIBC_2.27 fromfpf64x F
+GLIBC_2.27 fromfpxf64x F
+GLIBC_2.27 getpayloadf64x F
+GLIBC_2.27 hypotf64x F
+GLIBC_2.27 ilogbf64x F
+GLIBC_2.27 j0f64x F
+GLIBC_2.27 j1f64x F
+GLIBC_2.27 jnf64x F
+GLIBC_2.27 ldexpf64x F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
+GLIBC_2.27 llogbf64x F
+GLIBC_2.27 llrintf64x F
+GLIBC_2.27 llroundf64x F
+GLIBC_2.27 log10f64x F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
+GLIBC_2.27 log2f64x F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
+GLIBC_2.27 logf64x F
+GLIBC_2.27 lrintf64x F
+GLIBC_2.27 lroundf64x F
+GLIBC_2.27 modff64x F
+GLIBC_2.27 nanf64x F
+GLIBC_2.27 nearbyintf64x F
+GLIBC_2.27 nextafterf64x F
+GLIBC_2.27 nextdownf64x F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
+GLIBC_2.27 powf64x F
+GLIBC_2.27 remainderf64x F
+GLIBC_2.27 remquof64x F
+GLIBC_2.27 rintf64x F
+GLIBC_2.27 roundevenf64x F
+GLIBC_2.27 roundf64x F
+GLIBC_2.27 scalblnf64x F
+GLIBC_2.27 scalbnf64x F
+GLIBC_2.27 setpayloadf64x F
+GLIBC_2.27 setpayloadsigf64x F
+GLIBC_2.27 sincosf64x F
+GLIBC_2.27 sinf64x F
+GLIBC_2.27 sinhf64x F
+GLIBC_2.27 sqrtf64x F
+GLIBC_2.27 tanf64x F
+GLIBC_2.27 tanhf64x F
+GLIBC_2.27 tgammaf64x F
+GLIBC_2.27 totalorderf64x F
+GLIBC_2.27 totalordermagf64x F
+GLIBC_2.27 truncf64x F
+GLIBC_2.27 ufromfpf64x F
+GLIBC_2.27 ufromfpxf64x F
+GLIBC_2.27 y0f64x F
+GLIBC_2.27 y1f64x F
+GLIBC_2.27 ynf64x F
 GLIBC_2.4 GLIBC_2.4 A
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 92a46b6b30..9acc4cb41c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -464,112 +464,216 @@ 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 acosf64x F
 GLIBC_2.27 acoshf128 F
+GLIBC_2.27 acoshf64x F
 GLIBC_2.27 asinf128 F
+GLIBC_2.27 asinf64x F
 GLIBC_2.27 asinhf128 F
+GLIBC_2.27 asinhf64x F
 GLIBC_2.27 atan2f128 F
+GLIBC_2.27 atan2f64x F
 GLIBC_2.27 atanf128 F
+GLIBC_2.27 atanf64x F
 GLIBC_2.27 atanhf128 F
+GLIBC_2.27 atanhf64x F
 GLIBC_2.27 cabsf128 F
+GLIBC_2.27 cabsf64x F
 GLIBC_2.27 cacosf128 F
+GLIBC_2.27 cacosf64x F
 GLIBC_2.27 cacoshf128 F
+GLIBC_2.27 cacoshf64x F
 GLIBC_2.27 canonicalizef128 F
+GLIBC_2.27 canonicalizef64x F
 GLIBC_2.27 cargf128 F
+GLIBC_2.27 cargf64x F
 GLIBC_2.27 casinf128 F
+GLIBC_2.27 casinf64x F
 GLIBC_2.27 casinhf128 F
+GLIBC_2.27 casinhf64x F
 GLIBC_2.27 catanf128 F
+GLIBC_2.27 catanf64x F
 GLIBC_2.27 catanhf128 F
+GLIBC_2.27 catanhf64x F
 GLIBC_2.27 cbrtf128 F
+GLIBC_2.27 cbrtf64x F
 GLIBC_2.27 ccosf128 F
+GLIBC_2.27 ccosf64x F
 GLIBC_2.27 ccoshf128 F
+GLIBC_2.27 ccoshf64x F
 GLIBC_2.27 ceilf128 F
+GLIBC_2.27 ceilf64x F
 GLIBC_2.27 cexpf128 F
+GLIBC_2.27 cexpf64x F
 GLIBC_2.27 cimagf128 F
+GLIBC_2.27 cimagf64x F
 GLIBC_2.27 clog10f128 F
+GLIBC_2.27 clog10f64x F
 GLIBC_2.27 clogf128 F
+GLIBC_2.27 clogf64x F
 GLIBC_2.27 conjf128 F
+GLIBC_2.27 conjf64x F
 GLIBC_2.27 copysignf128 F
+GLIBC_2.27 copysignf64x F
 GLIBC_2.27 cosf128 F
+GLIBC_2.27 cosf64x F
 GLIBC_2.27 coshf128 F
+GLIBC_2.27 coshf64x F
 GLIBC_2.27 cpowf128 F
+GLIBC_2.27 cpowf64x F
 GLIBC_2.27 cprojf128 F
+GLIBC_2.27 cprojf64x F
 GLIBC_2.27 crealf128 F
+GLIBC_2.27 crealf64x F
 GLIBC_2.27 csinf128 F
+GLIBC_2.27 csinf64x F
 GLIBC_2.27 csinhf128 F
+GLIBC_2.27 csinhf64x F
 GLIBC_2.27 csqrtf128 F
+GLIBC_2.27 csqrtf64x F
 GLIBC_2.27 ctanf128 F
+GLIBC_2.27 ctanf64x F
 GLIBC_2.27 ctanhf128 F
+GLIBC_2.27 ctanhf64x F
 GLIBC_2.27 erfcf128 F
+GLIBC_2.27 erfcf64x F
 GLIBC_2.27 erff128 F
+GLIBC_2.27 erff64x F
 GLIBC_2.27 exp10f128 F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
 GLIBC_2.27 exp2f128 F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
 GLIBC_2.27 expf128 F
+GLIBC_2.27 expf64x F
 GLIBC_2.27 expm1f128 F
+GLIBC_2.27 expm1f64x F
 GLIBC_2.27 fabsf128 F
+GLIBC_2.27 fabsf64x F
 GLIBC_2.27 fdimf128 F
+GLIBC_2.27 fdimf64x F
 GLIBC_2.27 floorf128 F
+GLIBC_2.27 floorf64x F
 GLIBC_2.27 fmaf128 F
+GLIBC_2.27 fmaf64x F
 GLIBC_2.27 fmaxf128 F
+GLIBC_2.27 fmaxf64x F
 GLIBC_2.27 fmaxmagf128 F
+GLIBC_2.27 fmaxmagf64x F
 GLIBC_2.27 fminf128 F
+GLIBC_2.27 fminf64x F
 GLIBC_2.27 fminmagf128 F
+GLIBC_2.27 fminmagf64x F
 GLIBC_2.27 fmodf128 F
+GLIBC_2.27 fmodf64x F
 GLIBC_2.27 frexpf128 F
+GLIBC_2.27 frexpf64x F
 GLIBC_2.27 fromfpf128 F
+GLIBC_2.27 fromfpf64x F
 GLIBC_2.27 fromfpxf128 F
+GLIBC_2.27 fromfpxf64x F
 GLIBC_2.27 getpayloadf128 F
+GLIBC_2.27 getpayloadf64x F
 GLIBC_2.27 hypotf128 F
+GLIBC_2.27 hypotf64x F
 GLIBC_2.27 ilogbf128 F
+GLIBC_2.27 ilogbf64x F
 GLIBC_2.27 j0f128 F
+GLIBC_2.27 j0f64x F
 GLIBC_2.27 j1f128 F
+GLIBC_2.27 j1f64x F
 GLIBC_2.27 jnf128 F
+GLIBC_2.27 jnf64x F
 GLIBC_2.27 ldexpf128 F
+GLIBC_2.27 ldexpf64x F
 GLIBC_2.27 lgammaf128 F
 GLIBC_2.27 lgammaf128_r F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
 GLIBC_2.27 llogbf128 F
+GLIBC_2.27 llogbf64x F
 GLIBC_2.27 llrintf128 F
+GLIBC_2.27 llrintf64x F
 GLIBC_2.27 llroundf128 F
+GLIBC_2.27 llroundf64x F
 GLIBC_2.27 log10f128 F
+GLIBC_2.27 log10f64x F
 GLIBC_2.27 log1pf128 F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
 GLIBC_2.27 log2f128 F
+GLIBC_2.27 log2f64x F
 GLIBC_2.27 logbf128 F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
 GLIBC_2.27 logf128 F
+GLIBC_2.27 logf64x F
 GLIBC_2.27 lrintf128 F
+GLIBC_2.27 lrintf64x F
 GLIBC_2.27 lroundf128 F
+GLIBC_2.27 lroundf64x F
 GLIBC_2.27 modff128 F
+GLIBC_2.27 modff64x F
 GLIBC_2.27 nanf128 F
+GLIBC_2.27 nanf64x F
 GLIBC_2.27 nearbyintf128 F
+GLIBC_2.27 nearbyintf64x F
 GLIBC_2.27 nextafterf128 F
+GLIBC_2.27 nextafterf64x F
 GLIBC_2.27 nextdownf128 F
+GLIBC_2.27 nextdownf64x F
 GLIBC_2.27 nextupf128 F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
 GLIBC_2.27 powf128 F
+GLIBC_2.27 powf64x F
 GLIBC_2.27 remainderf128 F
+GLIBC_2.27 remainderf64x F
 GLIBC_2.27 remquof128 F
+GLIBC_2.27 remquof64x F
 GLIBC_2.27 rintf128 F
+GLIBC_2.27 rintf64x F
 GLIBC_2.27 roundevenf128 F
+GLIBC_2.27 roundevenf64x F
 GLIBC_2.27 roundf128 F
+GLIBC_2.27 roundf64x F
 GLIBC_2.27 scalblnf128 F
+GLIBC_2.27 scalblnf64x F
 GLIBC_2.27 scalbnf128 F
+GLIBC_2.27 scalbnf64x F
 GLIBC_2.27 setpayloadf128 F
+GLIBC_2.27 setpayloadf64x F
 GLIBC_2.27 setpayloadsigf128 F
+GLIBC_2.27 setpayloadsigf64x F
 GLIBC_2.27 sincosf128 F
+GLIBC_2.27 sincosf64x F
 GLIBC_2.27 sinf128 F
+GLIBC_2.27 sinf64x F
 GLIBC_2.27 sinhf128 F
+GLIBC_2.27 sinhf64x F
 GLIBC_2.27 sqrtf128 F
+GLIBC_2.27 sqrtf64x F
 GLIBC_2.27 tanf128 F
+GLIBC_2.27 tanf64x F
 GLIBC_2.27 tanhf128 F
+GLIBC_2.27 tanhf64x F
 GLIBC_2.27 tgammaf128 F
+GLIBC_2.27 tgammaf64x F
 GLIBC_2.27 totalorderf128 F
+GLIBC_2.27 totalorderf64x F
 GLIBC_2.27 totalordermagf128 F
+GLIBC_2.27 totalordermagf64x F
 GLIBC_2.27 truncf128 F
+GLIBC_2.27 truncf64x F
 GLIBC_2.27 ufromfpf128 F
+GLIBC_2.27 ufromfpf64x F
 GLIBC_2.27 ufromfpxf128 F
+GLIBC_2.27 ufromfpxf64x F
 GLIBC_2.27 y0f128 F
+GLIBC_2.27 y0f64x F
 GLIBC_2.27 y1f128 F
+GLIBC_2.27 y1f64x F
 GLIBC_2.27 ynf128 F
+GLIBC_2.27 ynf64x F
 GLIBC_2.4 GLIBC_2.4 A
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index ce7bc9b175..6ec940ee99 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1958,10 +1958,15 @@ GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
 GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strfromf64x F
 GLIBC_2.27 strtof128 F
 GLIBC_2.27 strtof128_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
 GLIBC_2.27 wcstof128 F
 GLIBC_2.27 wcstof128_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 3fdd85eace..71062b0eed 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1953,10 +1953,15 @@ GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
 GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strfromf64x F
 GLIBC_2.27 strtof128 F
 GLIBC_2.27 strtof128_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
 GLIBC_2.27 wcstof128 F
 GLIBC_2.27 wcstof128_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
index fa026a332c..a00f9042f8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
@@ -2202,3 +2202,8 @@ GLIBC_2.27 GLIBC_2.27 A
 GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
+GLIBC_2.27 strfromf64x F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_l F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist
index 723be46c20..1d86c798b9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist
@@ -606,8 +606,112 @@ 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 acosf64x F
+GLIBC_2.27 acoshf64x F
+GLIBC_2.27 asinf64x F
+GLIBC_2.27 asinhf64x F
+GLIBC_2.27 atan2f64x F
+GLIBC_2.27 atanf64x F
+GLIBC_2.27 atanhf64x F
+GLIBC_2.27 cabsf64x F
+GLIBC_2.27 cacosf64x F
+GLIBC_2.27 cacoshf64x F
+GLIBC_2.27 canonicalizef64x F
+GLIBC_2.27 cargf64x F
+GLIBC_2.27 casinf64x F
+GLIBC_2.27 casinhf64x F
+GLIBC_2.27 catanf64x F
+GLIBC_2.27 catanhf64x F
+GLIBC_2.27 cbrtf64x F
+GLIBC_2.27 ccosf64x F
+GLIBC_2.27 ccoshf64x F
+GLIBC_2.27 ceilf64x F
+GLIBC_2.27 cexpf64x F
+GLIBC_2.27 cimagf64x F
+GLIBC_2.27 clog10f64x F
+GLIBC_2.27 clogf64x F
+GLIBC_2.27 conjf64x F
+GLIBC_2.27 copysignf64x F
+GLIBC_2.27 cosf64x F
+GLIBC_2.27 coshf64x F
+GLIBC_2.27 cpowf64x F
+GLIBC_2.27 cprojf64x F
+GLIBC_2.27 crealf64x F
+GLIBC_2.27 csinf64x F
+GLIBC_2.27 csinhf64x F
+GLIBC_2.27 csqrtf64x F
+GLIBC_2.27 ctanf64x F
+GLIBC_2.27 ctanhf64x F
+GLIBC_2.27 erfcf64x F
+GLIBC_2.27 erff64x F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
+GLIBC_2.27 expf64x F
+GLIBC_2.27 expm1f64x F
+GLIBC_2.27 fabsf64x F
+GLIBC_2.27 fdimf64x F
+GLIBC_2.27 floorf64x F
+GLIBC_2.27 fmaf64x F
+GLIBC_2.27 fmaxf64x F
+GLIBC_2.27 fmaxmagf64x F
+GLIBC_2.27 fminf64x F
+GLIBC_2.27 fminmagf64x F
+GLIBC_2.27 fmodf64x F
+GLIBC_2.27 frexpf64x F
+GLIBC_2.27 fromfpf64x F
+GLIBC_2.27 fromfpxf64x F
+GLIBC_2.27 getpayloadf64x F
+GLIBC_2.27 hypotf64x F
+GLIBC_2.27 ilogbf64x F
+GLIBC_2.27 j0f64x F
+GLIBC_2.27 j1f64x F
+GLIBC_2.27 jnf64x F
+GLIBC_2.27 ldexpf64x F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
+GLIBC_2.27 llogbf64x F
+GLIBC_2.27 llrintf64x F
+GLIBC_2.27 llroundf64x F
+GLIBC_2.27 log10f64x F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
+GLIBC_2.27 log2f64x F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
+GLIBC_2.27 logf64x F
+GLIBC_2.27 lrintf64x F
+GLIBC_2.27 lroundf64x F
+GLIBC_2.27 modff64x F
+GLIBC_2.27 nanf64x F
+GLIBC_2.27 nearbyintf64x F
+GLIBC_2.27 nextafterf64x F
+GLIBC_2.27 nextdownf64x F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
+GLIBC_2.27 powf64x F
+GLIBC_2.27 remainderf64x F
+GLIBC_2.27 remquof64x F
+GLIBC_2.27 rintf64x F
+GLIBC_2.27 roundevenf64x F
+GLIBC_2.27 roundf64x F
+GLIBC_2.27 scalblnf64x F
+GLIBC_2.27 scalbnf64x F
+GLIBC_2.27 setpayloadf64x F
+GLIBC_2.27 setpayloadsigf64x F
+GLIBC_2.27 sincosf64x F
+GLIBC_2.27 sinf64x F
+GLIBC_2.27 sinhf64x F
+GLIBC_2.27 sqrtf64x F
+GLIBC_2.27 tanf64x F
+GLIBC_2.27 tanhf64x F
+GLIBC_2.27 tgammaf64x F
+GLIBC_2.27 totalorderf64x F
+GLIBC_2.27 totalordermagf64x F
+GLIBC_2.27 truncf64x F
+GLIBC_2.27 ufromfpf64x F
+GLIBC_2.27 ufromfpxf64x F
+GLIBC_2.27 y0f64x F
+GLIBC_2.27 y1f64x F
+GLIBC_2.27 ynf64x F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 41b79c496a..b7dbfaa23e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1991,10 +1991,15 @@ GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
 GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strfromf64x F
 GLIBC_2.27 strtof128 F
 GLIBC_2.27 strtof128_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
 GLIBC_2.27 wcstof128 F
 GLIBC_2.27 wcstof128_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index f3c4f77264..05f32b9f48 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -462,114 +462,218 @@ 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 acosf64x F
 GLIBC_2.27 acoshf128 F
+GLIBC_2.27 acoshf64x F
 GLIBC_2.27 asinf128 F
+GLIBC_2.27 asinf64x F
 GLIBC_2.27 asinhf128 F
+GLIBC_2.27 asinhf64x F
 GLIBC_2.27 atan2f128 F
+GLIBC_2.27 atan2f64x F
 GLIBC_2.27 atanf128 F
+GLIBC_2.27 atanf64x F
 GLIBC_2.27 atanhf128 F
+GLIBC_2.27 atanhf64x F
 GLIBC_2.27 cabsf128 F
+GLIBC_2.27 cabsf64x F
 GLIBC_2.27 cacosf128 F
+GLIBC_2.27 cacosf64x F
 GLIBC_2.27 cacoshf128 F
+GLIBC_2.27 cacoshf64x F
 GLIBC_2.27 canonicalizef128 F
+GLIBC_2.27 canonicalizef64x F
 GLIBC_2.27 cargf128 F
+GLIBC_2.27 cargf64x F
 GLIBC_2.27 casinf128 F
+GLIBC_2.27 casinf64x F
 GLIBC_2.27 casinhf128 F
+GLIBC_2.27 casinhf64x F
 GLIBC_2.27 catanf128 F
+GLIBC_2.27 catanf64x F
 GLIBC_2.27 catanhf128 F
+GLIBC_2.27 catanhf64x F
 GLIBC_2.27 cbrtf128 F
+GLIBC_2.27 cbrtf64x F
 GLIBC_2.27 ccosf128 F
+GLIBC_2.27 ccosf64x F
 GLIBC_2.27 ccoshf128 F
+GLIBC_2.27 ccoshf64x F
 GLIBC_2.27 ceilf128 F
+GLIBC_2.27 ceilf64x F
 GLIBC_2.27 cexpf128 F
+GLIBC_2.27 cexpf64x F
 GLIBC_2.27 cimagf128 F
+GLIBC_2.27 cimagf64x F
 GLIBC_2.27 clog10f128 F
+GLIBC_2.27 clog10f64x F
 GLIBC_2.27 clogf128 F
+GLIBC_2.27 clogf64x F
 GLIBC_2.27 conjf128 F
+GLIBC_2.27 conjf64x F
 GLIBC_2.27 copysignf128 F
+GLIBC_2.27 copysignf64x F
 GLIBC_2.27 cosf128 F
+GLIBC_2.27 cosf64x F
 GLIBC_2.27 coshf128 F
+GLIBC_2.27 coshf64x F
 GLIBC_2.27 cpowf128 F
+GLIBC_2.27 cpowf64x F
 GLIBC_2.27 cprojf128 F
+GLIBC_2.27 cprojf64x F
 GLIBC_2.27 crealf128 F
+GLIBC_2.27 crealf64x F
 GLIBC_2.27 csinf128 F
+GLIBC_2.27 csinf64x F
 GLIBC_2.27 csinhf128 F
+GLIBC_2.27 csinhf64x F
 GLIBC_2.27 csqrtf128 F
+GLIBC_2.27 csqrtf64x F
 GLIBC_2.27 ctanf128 F
+GLIBC_2.27 ctanf64x F
 GLIBC_2.27 ctanhf128 F
+GLIBC_2.27 ctanhf64x F
 GLIBC_2.27 erfcf128 F
+GLIBC_2.27 erfcf64x F
 GLIBC_2.27 erff128 F
+GLIBC_2.27 erff64x F
 GLIBC_2.27 exp10f128 F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
 GLIBC_2.27 exp2f128 F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
 GLIBC_2.27 expf128 F
+GLIBC_2.27 expf64x F
 GLIBC_2.27 expm1f128 F
+GLIBC_2.27 expm1f64x F
 GLIBC_2.27 fabsf128 F
+GLIBC_2.27 fabsf64x F
 GLIBC_2.27 fdimf128 F
+GLIBC_2.27 fdimf64x F
 GLIBC_2.27 floorf128 F
+GLIBC_2.27 floorf64x F
 GLIBC_2.27 fmaf128 F
+GLIBC_2.27 fmaf64x F
 GLIBC_2.27 fmaxf128 F
+GLIBC_2.27 fmaxf64x F
 GLIBC_2.27 fmaxmagf128 F
+GLIBC_2.27 fmaxmagf64x F
 GLIBC_2.27 fminf128 F
+GLIBC_2.27 fminf64x F
 GLIBC_2.27 fminmagf128 F
+GLIBC_2.27 fminmagf64x F
 GLIBC_2.27 fmodf128 F
+GLIBC_2.27 fmodf64x F
 GLIBC_2.27 frexpf128 F
+GLIBC_2.27 frexpf64x F
 GLIBC_2.27 fromfpf128 F
+GLIBC_2.27 fromfpf64x F
 GLIBC_2.27 fromfpxf128 F
+GLIBC_2.27 fromfpxf64x F
 GLIBC_2.27 getpayloadf128 F
+GLIBC_2.27 getpayloadf64x F
 GLIBC_2.27 hypotf128 F
+GLIBC_2.27 hypotf64x F
 GLIBC_2.27 ilogbf128 F
+GLIBC_2.27 ilogbf64x F
 GLIBC_2.27 j0f128 F
+GLIBC_2.27 j0f64x F
 GLIBC_2.27 j1f128 F
+GLIBC_2.27 j1f64x F
 GLIBC_2.27 jnf128 F
+GLIBC_2.27 jnf64x F
 GLIBC_2.27 ldexpf128 F
+GLIBC_2.27 ldexpf64x F
 GLIBC_2.27 lgammaf128 F
 GLIBC_2.27 lgammaf128_r F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
 GLIBC_2.27 llogbf128 F
+GLIBC_2.27 llogbf64x F
 GLIBC_2.27 llrintf128 F
+GLIBC_2.27 llrintf64x F
 GLIBC_2.27 llroundf128 F
+GLIBC_2.27 llroundf64x F
 GLIBC_2.27 log10f128 F
+GLIBC_2.27 log10f64x F
 GLIBC_2.27 log1pf128 F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
 GLIBC_2.27 log2f128 F
+GLIBC_2.27 log2f64x F
 GLIBC_2.27 logbf128 F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
 GLIBC_2.27 logf128 F
+GLIBC_2.27 logf64x F
 GLIBC_2.27 lrintf128 F
+GLIBC_2.27 lrintf64x F
 GLIBC_2.27 lroundf128 F
+GLIBC_2.27 lroundf64x F
 GLIBC_2.27 modff128 F
+GLIBC_2.27 modff64x F
 GLIBC_2.27 nanf128 F
+GLIBC_2.27 nanf64x F
 GLIBC_2.27 nearbyintf128 F
+GLIBC_2.27 nearbyintf64x F
 GLIBC_2.27 nextafterf128 F
+GLIBC_2.27 nextafterf64x F
 GLIBC_2.27 nextdownf128 F
+GLIBC_2.27 nextdownf64x F
 GLIBC_2.27 nextupf128 F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
 GLIBC_2.27 powf128 F
+GLIBC_2.27 powf64x F
 GLIBC_2.27 remainderf128 F
+GLIBC_2.27 remainderf64x F
 GLIBC_2.27 remquof128 F
+GLIBC_2.27 remquof64x F
 GLIBC_2.27 rintf128 F
+GLIBC_2.27 rintf64x F
 GLIBC_2.27 roundevenf128 F
+GLIBC_2.27 roundevenf64x F
 GLIBC_2.27 roundf128 F
+GLIBC_2.27 roundf64x F
 GLIBC_2.27 scalblnf128 F
+GLIBC_2.27 scalblnf64x F
 GLIBC_2.27 scalbnf128 F
+GLIBC_2.27 scalbnf64x F
 GLIBC_2.27 setpayloadf128 F
+GLIBC_2.27 setpayloadf64x F
 GLIBC_2.27 setpayloadsigf128 F
+GLIBC_2.27 setpayloadsigf64x F
 GLIBC_2.27 sincosf128 F
+GLIBC_2.27 sincosf64x F
 GLIBC_2.27 sinf128 F
+GLIBC_2.27 sinf64x F
 GLIBC_2.27 sinhf128 F
+GLIBC_2.27 sinhf64x F
 GLIBC_2.27 sqrtf128 F
+GLIBC_2.27 sqrtf64x F
 GLIBC_2.27 tanf128 F
+GLIBC_2.27 tanf64x F
 GLIBC_2.27 tanhf128 F
+GLIBC_2.27 tanhf64x F
 GLIBC_2.27 tgammaf128 F
+GLIBC_2.27 tgammaf64x F
 GLIBC_2.27 totalorderf128 F
+GLIBC_2.27 totalorderf64x F
 GLIBC_2.27 totalordermagf128 F
+GLIBC_2.27 totalordermagf64x F
 GLIBC_2.27 truncf128 F
+GLIBC_2.27 truncf64x F
 GLIBC_2.27 ufromfpf128 F
+GLIBC_2.27 ufromfpf64x F
 GLIBC_2.27 ufromfpxf128 F
+GLIBC_2.27 ufromfpxf64x F
 GLIBC_2.27 y0f128 F
+GLIBC_2.27 y0f64x F
 GLIBC_2.27 y1f128 F
+GLIBC_2.27 y1f64x F
 GLIBC_2.27 ynf128 F
+GLIBC_2.27 ynf64x F
 GLIBC_2.4 GLIBC_2.4 A
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index 68251a0e69..1175cd7d13 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1892,10 +1892,15 @@ GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
 GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strfromf64x F
 GLIBC_2.27 strtof128 F
 GLIBC_2.27 strtof128_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
 GLIBC_2.27 wcstof128 F
 GLIBC_2.27 wcstof128_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index eb113fd37c..1912fe6df5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -460,114 +460,218 @@ 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 acosf64x F
 GLIBC_2.27 acoshf128 F
+GLIBC_2.27 acoshf64x F
 GLIBC_2.27 asinf128 F
+GLIBC_2.27 asinf64x F
 GLIBC_2.27 asinhf128 F
+GLIBC_2.27 asinhf64x F
 GLIBC_2.27 atan2f128 F
+GLIBC_2.27 atan2f64x F
 GLIBC_2.27 atanf128 F
+GLIBC_2.27 atanf64x F
 GLIBC_2.27 atanhf128 F
+GLIBC_2.27 atanhf64x F
 GLIBC_2.27 cabsf128 F
+GLIBC_2.27 cabsf64x F
 GLIBC_2.27 cacosf128 F
+GLIBC_2.27 cacosf64x F
 GLIBC_2.27 cacoshf128 F
+GLIBC_2.27 cacoshf64x F
 GLIBC_2.27 canonicalizef128 F
+GLIBC_2.27 canonicalizef64x F
 GLIBC_2.27 cargf128 F
+GLIBC_2.27 cargf64x F
 GLIBC_2.27 casinf128 F
+GLIBC_2.27 casinf64x F
 GLIBC_2.27 casinhf128 F
+GLIBC_2.27 casinhf64x F
 GLIBC_2.27 catanf128 F
+GLIBC_2.27 catanf64x F
 GLIBC_2.27 catanhf128 F
+GLIBC_2.27 catanhf64x F
 GLIBC_2.27 cbrtf128 F
+GLIBC_2.27 cbrtf64x F
 GLIBC_2.27 ccosf128 F
+GLIBC_2.27 ccosf64x F
 GLIBC_2.27 ccoshf128 F
+GLIBC_2.27 ccoshf64x F
 GLIBC_2.27 ceilf128 F
+GLIBC_2.27 ceilf64x F
 GLIBC_2.27 cexpf128 F
+GLIBC_2.27 cexpf64x F
 GLIBC_2.27 cimagf128 F
+GLIBC_2.27 cimagf64x F
 GLIBC_2.27 clog10f128 F
+GLIBC_2.27 clog10f64x F
 GLIBC_2.27 clogf128 F
+GLIBC_2.27 clogf64x F
 GLIBC_2.27 conjf128 F
+GLIBC_2.27 conjf64x F
 GLIBC_2.27 copysignf128 F
+GLIBC_2.27 copysignf64x F
 GLIBC_2.27 cosf128 F
+GLIBC_2.27 cosf64x F
 GLIBC_2.27 coshf128 F
+GLIBC_2.27 coshf64x F
 GLIBC_2.27 cpowf128 F
+GLIBC_2.27 cpowf64x F
 GLIBC_2.27 cprojf128 F
+GLIBC_2.27 cprojf64x F
 GLIBC_2.27 crealf128 F
+GLIBC_2.27 crealf64x F
 GLIBC_2.27 csinf128 F
+GLIBC_2.27 csinf64x F
 GLIBC_2.27 csinhf128 F
+GLIBC_2.27 csinhf64x F
 GLIBC_2.27 csqrtf128 F
+GLIBC_2.27 csqrtf64x F
 GLIBC_2.27 ctanf128 F
+GLIBC_2.27 ctanf64x F
 GLIBC_2.27 ctanhf128 F
+GLIBC_2.27 ctanhf64x F
 GLIBC_2.27 erfcf128 F
+GLIBC_2.27 erfcf64x F
 GLIBC_2.27 erff128 F
+GLIBC_2.27 erff64x F
 GLIBC_2.27 exp10f128 F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
 GLIBC_2.27 exp2f128 F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
 GLIBC_2.27 expf128 F
+GLIBC_2.27 expf64x F
 GLIBC_2.27 expm1f128 F
+GLIBC_2.27 expm1f64x F
 GLIBC_2.27 fabsf128 F
+GLIBC_2.27 fabsf64x F
 GLIBC_2.27 fdimf128 F
+GLIBC_2.27 fdimf64x F
 GLIBC_2.27 floorf128 F
+GLIBC_2.27 floorf64x F
 GLIBC_2.27 fmaf128 F
+GLIBC_2.27 fmaf64x F
 GLIBC_2.27 fmaxf128 F
+GLIBC_2.27 fmaxf64x F
 GLIBC_2.27 fmaxmagf128 F
+GLIBC_2.27 fmaxmagf64x F
 GLIBC_2.27 fminf128 F
+GLIBC_2.27 fminf64x F
 GLIBC_2.27 fminmagf128 F
+GLIBC_2.27 fminmagf64x F
 GLIBC_2.27 fmodf128 F
+GLIBC_2.27 fmodf64x F
 GLIBC_2.27 frexpf128 F
+GLIBC_2.27 frexpf64x F
 GLIBC_2.27 fromfpf128 F
+GLIBC_2.27 fromfpf64x F
 GLIBC_2.27 fromfpxf128 F
+GLIBC_2.27 fromfpxf64x F
 GLIBC_2.27 getpayloadf128 F
+GLIBC_2.27 getpayloadf64x F
 GLIBC_2.27 hypotf128 F
+GLIBC_2.27 hypotf64x F
 GLIBC_2.27 ilogbf128 F
+GLIBC_2.27 ilogbf64x F
 GLIBC_2.27 j0f128 F
+GLIBC_2.27 j0f64x F
 GLIBC_2.27 j1f128 F
+GLIBC_2.27 j1f64x F
 GLIBC_2.27 jnf128 F
+GLIBC_2.27 jnf64x F
 GLIBC_2.27 ldexpf128 F
+GLIBC_2.27 ldexpf64x F
 GLIBC_2.27 lgammaf128 F
 GLIBC_2.27 lgammaf128_r F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
 GLIBC_2.27 llogbf128 F
+GLIBC_2.27 llogbf64x F
 GLIBC_2.27 llrintf128 F
+GLIBC_2.27 llrintf64x F
 GLIBC_2.27 llroundf128 F
+GLIBC_2.27 llroundf64x F
 GLIBC_2.27 log10f128 F
+GLIBC_2.27 log10f64x F
 GLIBC_2.27 log1pf128 F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
 GLIBC_2.27 log2f128 F
+GLIBC_2.27 log2f64x F
 GLIBC_2.27 logbf128 F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
 GLIBC_2.27 logf128 F
+GLIBC_2.27 logf64x F
 GLIBC_2.27 lrintf128 F
+GLIBC_2.27 lrintf64x F
 GLIBC_2.27 lroundf128 F
+GLIBC_2.27 lroundf64x F
 GLIBC_2.27 modff128 F
+GLIBC_2.27 modff64x F
 GLIBC_2.27 nanf128 F
+GLIBC_2.27 nanf64x F
 GLIBC_2.27 nearbyintf128 F
+GLIBC_2.27 nearbyintf64x F
 GLIBC_2.27 nextafterf128 F
+GLIBC_2.27 nextafterf64x F
 GLIBC_2.27 nextdownf128 F
+GLIBC_2.27 nextdownf64x F
 GLIBC_2.27 nextupf128 F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
 GLIBC_2.27 powf128 F
+GLIBC_2.27 powf64x F
 GLIBC_2.27 remainderf128 F
+GLIBC_2.27 remainderf64x F
 GLIBC_2.27 remquof128 F
+GLIBC_2.27 remquof64x F
 GLIBC_2.27 rintf128 F
+GLIBC_2.27 rintf64x F
 GLIBC_2.27 roundevenf128 F
+GLIBC_2.27 roundevenf64x F
 GLIBC_2.27 roundf128 F
+GLIBC_2.27 roundf64x F
 GLIBC_2.27 scalblnf128 F
+GLIBC_2.27 scalblnf64x F
 GLIBC_2.27 scalbnf128 F
+GLIBC_2.27 scalbnf64x F
 GLIBC_2.27 setpayloadf128 F
+GLIBC_2.27 setpayloadf64x F
 GLIBC_2.27 setpayloadsigf128 F
+GLIBC_2.27 setpayloadsigf64x F
 GLIBC_2.27 sincosf128 F
+GLIBC_2.27 sincosf64x F
 GLIBC_2.27 sinf128 F
+GLIBC_2.27 sinf64x F
 GLIBC_2.27 sinhf128 F
+GLIBC_2.27 sinhf64x F
 GLIBC_2.27 sqrtf128 F
+GLIBC_2.27 sqrtf64x F
 GLIBC_2.27 tanf128 F
+GLIBC_2.27 tanf64x F
 GLIBC_2.27 tanhf128 F
+GLIBC_2.27 tanhf64x F
 GLIBC_2.27 tgammaf128 F
+GLIBC_2.27 tgammaf64x F
 GLIBC_2.27 totalorderf128 F
+GLIBC_2.27 totalorderf64x F
 GLIBC_2.27 totalordermagf128 F
+GLIBC_2.27 totalordermagf64x F
 GLIBC_2.27 truncf128 F
+GLIBC_2.27 truncf64x F
 GLIBC_2.27 ufromfpf128 F
+GLIBC_2.27 ufromfpf64x F
 GLIBC_2.27 ufromfpxf128 F
+GLIBC_2.27 ufromfpxf64x F
 GLIBC_2.27 y0f128 F
+GLIBC_2.27 y0f64x F
 GLIBC_2.27 y1f128 F
+GLIBC_2.27 y1f64x F
 GLIBC_2.27 ynf128 F
+GLIBC_2.27 ynf64x F
 GLIBC_2.4 GLIBC_2.4 A
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index 93e6d092ac..899d5ff604 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1984,10 +1984,15 @@ GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
 GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strfromf64x F
 GLIBC_2.27 strtof128 F
 GLIBC_2.27 strtof128_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
 GLIBC_2.27 wcstof128 F
 GLIBC_2.27 wcstof128_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 152a83a869..5b08525e9b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -469,114 +469,218 @@ 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 acosf64x F
 GLIBC_2.27 acoshf128 F
+GLIBC_2.27 acoshf64x F
 GLIBC_2.27 asinf128 F
+GLIBC_2.27 asinf64x F
 GLIBC_2.27 asinhf128 F
+GLIBC_2.27 asinhf64x F
 GLIBC_2.27 atan2f128 F
+GLIBC_2.27 atan2f64x F
 GLIBC_2.27 atanf128 F
+GLIBC_2.27 atanf64x F
 GLIBC_2.27 atanhf128 F
+GLIBC_2.27 atanhf64x F
 GLIBC_2.27 cabsf128 F
+GLIBC_2.27 cabsf64x F
 GLIBC_2.27 cacosf128 F
+GLIBC_2.27 cacosf64x F
 GLIBC_2.27 cacoshf128 F
+GLIBC_2.27 cacoshf64x F
 GLIBC_2.27 canonicalizef128 F
+GLIBC_2.27 canonicalizef64x F
 GLIBC_2.27 cargf128 F
+GLIBC_2.27 cargf64x F
 GLIBC_2.27 casinf128 F
+GLIBC_2.27 casinf64x F
 GLIBC_2.27 casinhf128 F
+GLIBC_2.27 casinhf64x F
 GLIBC_2.27 catanf128 F
+GLIBC_2.27 catanf64x F
 GLIBC_2.27 catanhf128 F
+GLIBC_2.27 catanhf64x F
 GLIBC_2.27 cbrtf128 F
+GLIBC_2.27 cbrtf64x F
 GLIBC_2.27 ccosf128 F
+GLIBC_2.27 ccosf64x F
 GLIBC_2.27 ccoshf128 F
+GLIBC_2.27 ccoshf64x F
 GLIBC_2.27 ceilf128 F
+GLIBC_2.27 ceilf64x F
 GLIBC_2.27 cexpf128 F
+GLIBC_2.27 cexpf64x F
 GLIBC_2.27 cimagf128 F
+GLIBC_2.27 cimagf64x F
 GLIBC_2.27 clog10f128 F
+GLIBC_2.27 clog10f64x F
 GLIBC_2.27 clogf128 F
+GLIBC_2.27 clogf64x F
 GLIBC_2.27 conjf128 F
+GLIBC_2.27 conjf64x F
 GLIBC_2.27 copysignf128 F
+GLIBC_2.27 copysignf64x F
 GLIBC_2.27 cosf128 F
+GLIBC_2.27 cosf64x F
 GLIBC_2.27 coshf128 F
+GLIBC_2.27 coshf64x F
 GLIBC_2.27 cpowf128 F
+GLIBC_2.27 cpowf64x F
 GLIBC_2.27 cprojf128 F
+GLIBC_2.27 cprojf64x F
 GLIBC_2.27 crealf128 F
+GLIBC_2.27 crealf64x F
 GLIBC_2.27 csinf128 F
+GLIBC_2.27 csinf64x F
 GLIBC_2.27 csinhf128 F
+GLIBC_2.27 csinhf64x F
 GLIBC_2.27 csqrtf128 F
+GLIBC_2.27 csqrtf64x F
 GLIBC_2.27 ctanf128 F
+GLIBC_2.27 ctanf64x F
 GLIBC_2.27 ctanhf128 F
+GLIBC_2.27 ctanhf64x F
 GLIBC_2.27 erfcf128 F
+GLIBC_2.27 erfcf64x F
 GLIBC_2.27 erff128 F
+GLIBC_2.27 erff64x F
 GLIBC_2.27 exp10f128 F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
 GLIBC_2.27 exp2f128 F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
 GLIBC_2.27 expf128 F
+GLIBC_2.27 expf64x F
 GLIBC_2.27 expm1f128 F
+GLIBC_2.27 expm1f64x F
 GLIBC_2.27 fabsf128 F
+GLIBC_2.27 fabsf64x F
 GLIBC_2.27 fdimf128 F
+GLIBC_2.27 fdimf64x F
 GLIBC_2.27 floorf128 F
+GLIBC_2.27 floorf64x F
 GLIBC_2.27 fmaf128 F
+GLIBC_2.27 fmaf64x F
 GLIBC_2.27 fmaxf128 F
+GLIBC_2.27 fmaxf64x F
 GLIBC_2.27 fmaxmagf128 F
+GLIBC_2.27 fmaxmagf64x F
 GLIBC_2.27 fminf128 F
+GLIBC_2.27 fminf64x F
 GLIBC_2.27 fminmagf128 F
+GLIBC_2.27 fminmagf64x F
 GLIBC_2.27 fmodf128 F
+GLIBC_2.27 fmodf64x F
 GLIBC_2.27 frexpf128 F
+GLIBC_2.27 frexpf64x F
 GLIBC_2.27 fromfpf128 F
+GLIBC_2.27 fromfpf64x F
 GLIBC_2.27 fromfpxf128 F
+GLIBC_2.27 fromfpxf64x F
 GLIBC_2.27 getpayloadf128 F
+GLIBC_2.27 getpayloadf64x F
 GLIBC_2.27 hypotf128 F
+GLIBC_2.27 hypotf64x F
 GLIBC_2.27 ilogbf128 F
+GLIBC_2.27 ilogbf64x F
 GLIBC_2.27 j0f128 F
+GLIBC_2.27 j0f64x F
 GLIBC_2.27 j1f128 F
+GLIBC_2.27 j1f64x F
 GLIBC_2.27 jnf128 F
+GLIBC_2.27 jnf64x F
 GLIBC_2.27 ldexpf128 F
+GLIBC_2.27 ldexpf64x F
 GLIBC_2.27 lgammaf128 F
 GLIBC_2.27 lgammaf128_r F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
 GLIBC_2.27 llogbf128 F
+GLIBC_2.27 llogbf64x F
 GLIBC_2.27 llrintf128 F
+GLIBC_2.27 llrintf64x F
 GLIBC_2.27 llroundf128 F
+GLIBC_2.27 llroundf64x F
 GLIBC_2.27 log10f128 F
+GLIBC_2.27 log10f64x F
 GLIBC_2.27 log1pf128 F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
 GLIBC_2.27 log2f128 F
+GLIBC_2.27 log2f64x F
 GLIBC_2.27 logbf128 F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
 GLIBC_2.27 logf128 F
+GLIBC_2.27 logf64x F
 GLIBC_2.27 lrintf128 F
+GLIBC_2.27 lrintf64x F
 GLIBC_2.27 lroundf128 F
+GLIBC_2.27 lroundf64x F
 GLIBC_2.27 modff128 F
+GLIBC_2.27 modff64x F
 GLIBC_2.27 nanf128 F
+GLIBC_2.27 nanf64x F
 GLIBC_2.27 nearbyintf128 F
+GLIBC_2.27 nearbyintf64x F
 GLIBC_2.27 nextafterf128 F
+GLIBC_2.27 nextafterf64x F
 GLIBC_2.27 nextdownf128 F
+GLIBC_2.27 nextdownf64x F
 GLIBC_2.27 nextupf128 F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
 GLIBC_2.27 powf128 F
+GLIBC_2.27 powf64x F
 GLIBC_2.27 remainderf128 F
+GLIBC_2.27 remainderf64x F
 GLIBC_2.27 remquof128 F
+GLIBC_2.27 remquof64x F
 GLIBC_2.27 rintf128 F
+GLIBC_2.27 rintf64x F
 GLIBC_2.27 roundevenf128 F
+GLIBC_2.27 roundevenf64x F
 GLIBC_2.27 roundf128 F
+GLIBC_2.27 roundf64x F
 GLIBC_2.27 scalblnf128 F
+GLIBC_2.27 scalblnf64x F
 GLIBC_2.27 scalbnf128 F
+GLIBC_2.27 scalbnf64x F
 GLIBC_2.27 setpayloadf128 F
+GLIBC_2.27 setpayloadf64x F
 GLIBC_2.27 setpayloadsigf128 F
+GLIBC_2.27 setpayloadsigf64x F
 GLIBC_2.27 sincosf128 F
+GLIBC_2.27 sincosf64x F
 GLIBC_2.27 sinf128 F
+GLIBC_2.27 sinf64x F
 GLIBC_2.27 sinhf128 F
+GLIBC_2.27 sinhf64x F
 GLIBC_2.27 sqrtf128 F
+GLIBC_2.27 sqrtf64x F
 GLIBC_2.27 tanf128 F
+GLIBC_2.27 tanf64x F
 GLIBC_2.27 tanhf128 F
+GLIBC_2.27 tanhf64x F
 GLIBC_2.27 tgammaf128 F
+GLIBC_2.27 tgammaf64x F
 GLIBC_2.27 totalorderf128 F
+GLIBC_2.27 totalorderf64x F
 GLIBC_2.27 totalordermagf128 F
+GLIBC_2.27 totalordermagf64x F
 GLIBC_2.27 truncf128 F
+GLIBC_2.27 truncf64x F
 GLIBC_2.27 ufromfpf128 F
+GLIBC_2.27 ufromfpf64x F
 GLIBC_2.27 ufromfpxf128 F
+GLIBC_2.27 ufromfpxf64x F
 GLIBC_2.27 y0f128 F
+GLIBC_2.27 y0f64x F
 GLIBC_2.27 y1f128 F
+GLIBC_2.27 y1f64x F
 GLIBC_2.27 ynf128 F
+GLIBC_2.27 ynf64x F
 GLIBC_2.4 GLIBC_2.4 A
 GLIBC_2.4 __clog10l F
 GLIBC_2.4 __finitel F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index b11d6764d4..fbe0e51f62 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1921,10 +1921,15 @@ GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
 GLIBC_2.27 strfromf128 F
+GLIBC_2.27 strfromf64x F
 GLIBC_2.27 strtof128 F
 GLIBC_2.27 strtof128_l F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
 GLIBC_2.27 wcstof128 F
 GLIBC_2.27 wcstof128_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index ff6962d7e7..7065b81c42 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -463,112 +463,216 @@ 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 acosf64x F
 GLIBC_2.27 acoshf128 F
+GLIBC_2.27 acoshf64x F
 GLIBC_2.27 asinf128 F
+GLIBC_2.27 asinf64x F
 GLIBC_2.27 asinhf128 F
+GLIBC_2.27 asinhf64x F
 GLIBC_2.27 atan2f128 F
+GLIBC_2.27 atan2f64x F
 GLIBC_2.27 atanf128 F
+GLIBC_2.27 atanf64x F
 GLIBC_2.27 atanhf128 F
+GLIBC_2.27 atanhf64x F
 GLIBC_2.27 cabsf128 F
+GLIBC_2.27 cabsf64x F
 GLIBC_2.27 cacosf128 F
+GLIBC_2.27 cacosf64x F
 GLIBC_2.27 cacoshf128 F
+GLIBC_2.27 cacoshf64x F
 GLIBC_2.27 canonicalizef128 F
+GLIBC_2.27 canonicalizef64x F
 GLIBC_2.27 cargf128 F
+GLIBC_2.27 cargf64x F
 GLIBC_2.27 casinf128 F
+GLIBC_2.27 casinf64x F
 GLIBC_2.27 casinhf128 F
+GLIBC_2.27 casinhf64x F
 GLIBC_2.27 catanf128 F
+GLIBC_2.27 catanf64x F
 GLIBC_2.27 catanhf128 F
+GLIBC_2.27 catanhf64x F
 GLIBC_2.27 cbrtf128 F
+GLIBC_2.27 cbrtf64x F
 GLIBC_2.27 ccosf128 F
+GLIBC_2.27 ccosf64x F
 GLIBC_2.27 ccoshf128 F
+GLIBC_2.27 ccoshf64x F
 GLIBC_2.27 ceilf128 F
+GLIBC_2.27 ceilf64x F
 GLIBC_2.27 cexpf128 F
+GLIBC_2.27 cexpf64x F
 GLIBC_2.27 cimagf128 F
+GLIBC_2.27 cimagf64x F
 GLIBC_2.27 clog10f128 F
+GLIBC_2.27 clog10f64x F
 GLIBC_2.27 clogf128 F
+GLIBC_2.27 clogf64x F
 GLIBC_2.27 conjf128 F
+GLIBC_2.27 conjf64x F
 GLIBC_2.27 copysignf128 F
+GLIBC_2.27 copysignf64x F
 GLIBC_2.27 cosf128 F
+GLIBC_2.27 cosf64x F
 GLIBC_2.27 coshf128 F
+GLIBC_2.27 coshf64x F
 GLIBC_2.27 cpowf128 F
+GLIBC_2.27 cpowf64x F
 GLIBC_2.27 cprojf128 F
+GLIBC_2.27 cprojf64x F
 GLIBC_2.27 crealf128 F
+GLIBC_2.27 crealf64x F
 GLIBC_2.27 csinf128 F
+GLIBC_2.27 csinf64x F
 GLIBC_2.27 csinhf128 F
+GLIBC_2.27 csinhf64x F
 GLIBC_2.27 csqrtf128 F
+GLIBC_2.27 csqrtf64x F
 GLIBC_2.27 ctanf128 F
+GLIBC_2.27 ctanf64x F
 GLIBC_2.27 ctanhf128 F
+GLIBC_2.27 ctanhf64x F
 GLIBC_2.27 erfcf128 F
+GLIBC_2.27 erfcf64x F
 GLIBC_2.27 erff128 F
+GLIBC_2.27 erff64x F
 GLIBC_2.27 exp10f128 F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
 GLIBC_2.27 exp2f128 F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
 GLIBC_2.27 expf128 F
+GLIBC_2.27 expf64x F
 GLIBC_2.27 expm1f128 F
+GLIBC_2.27 expm1f64x F
 GLIBC_2.27 fabsf128 F
+GLIBC_2.27 fabsf64x F
 GLIBC_2.27 fdimf128 F
+GLIBC_2.27 fdimf64x F
 GLIBC_2.27 floorf128 F
+GLIBC_2.27 floorf64x F
 GLIBC_2.27 fmaf128 F
+GLIBC_2.27 fmaf64x F
 GLIBC_2.27 fmaxf128 F
+GLIBC_2.27 fmaxf64x F
 GLIBC_2.27 fmaxmagf128 F
+GLIBC_2.27 fmaxmagf64x F
 GLIBC_2.27 fminf128 F
+GLIBC_2.27 fminf64x F
 GLIBC_2.27 fminmagf128 F
+GLIBC_2.27 fminmagf64x F
 GLIBC_2.27 fmodf128 F
+GLIBC_2.27 fmodf64x F
 GLIBC_2.27 frexpf128 F
+GLIBC_2.27 frexpf64x F
 GLIBC_2.27 fromfpf128 F
+GLIBC_2.27 fromfpf64x F
 GLIBC_2.27 fromfpxf128 F
+GLIBC_2.27 fromfpxf64x F
 GLIBC_2.27 getpayloadf128 F
+GLIBC_2.27 getpayloadf64x F
 GLIBC_2.27 hypotf128 F
+GLIBC_2.27 hypotf64x F
 GLIBC_2.27 ilogbf128 F
+GLIBC_2.27 ilogbf64x F
 GLIBC_2.27 j0f128 F
+GLIBC_2.27 j0f64x F
 GLIBC_2.27 j1f128 F
+GLIBC_2.27 j1f64x F
 GLIBC_2.27 jnf128 F
+GLIBC_2.27 jnf64x F
 GLIBC_2.27 ldexpf128 F
+GLIBC_2.27 ldexpf64x F
 GLIBC_2.27 lgammaf128 F
 GLIBC_2.27 lgammaf128_r F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
 GLIBC_2.27 llogbf128 F
+GLIBC_2.27 llogbf64x F
 GLIBC_2.27 llrintf128 F
+GLIBC_2.27 llrintf64x F
 GLIBC_2.27 llroundf128 F
+GLIBC_2.27 llroundf64x F
 GLIBC_2.27 log10f128 F
+GLIBC_2.27 log10f64x F
 GLIBC_2.27 log1pf128 F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
 GLIBC_2.27 log2f128 F
+GLIBC_2.27 log2f64x F
 GLIBC_2.27 logbf128 F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
 GLIBC_2.27 logf128 F
+GLIBC_2.27 logf64x F
 GLIBC_2.27 lrintf128 F
+GLIBC_2.27 lrintf64x F
 GLIBC_2.27 lroundf128 F
+GLIBC_2.27 lroundf64x F
 GLIBC_2.27 modff128 F
+GLIBC_2.27 modff64x F
 GLIBC_2.27 nanf128 F
+GLIBC_2.27 nanf64x F
 GLIBC_2.27 nearbyintf128 F
+GLIBC_2.27 nearbyintf64x F
 GLIBC_2.27 nextafterf128 F
+GLIBC_2.27 nextafterf64x F
 GLIBC_2.27 nextdownf128 F
+GLIBC_2.27 nextdownf64x F
 GLIBC_2.27 nextupf128 F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
 GLIBC_2.27 powf128 F
+GLIBC_2.27 powf64x F
 GLIBC_2.27 remainderf128 F
+GLIBC_2.27 remainderf64x F
 GLIBC_2.27 remquof128 F
+GLIBC_2.27 remquof64x F
 GLIBC_2.27 rintf128 F
+GLIBC_2.27 rintf64x F
 GLIBC_2.27 roundevenf128 F
+GLIBC_2.27 roundevenf64x F
 GLIBC_2.27 roundf128 F
+GLIBC_2.27 roundf64x F
 GLIBC_2.27 scalblnf128 F
+GLIBC_2.27 scalblnf64x F
 GLIBC_2.27 scalbnf128 F
+GLIBC_2.27 scalbnf64x F
 GLIBC_2.27 setpayloadf128 F
+GLIBC_2.27 setpayloadf64x F
 GLIBC_2.27 setpayloadsigf128 F
+GLIBC_2.27 setpayloadsigf64x F
 GLIBC_2.27 sincosf128 F
+GLIBC_2.27 sincosf64x F
 GLIBC_2.27 sinf128 F
+GLIBC_2.27 sinf64x F
 GLIBC_2.27 sinhf128 F
+GLIBC_2.27 sinhf64x F
 GLIBC_2.27 sqrtf128 F
+GLIBC_2.27 sqrtf64x F
 GLIBC_2.27 tanf128 F
+GLIBC_2.27 tanf64x F
 GLIBC_2.27 tanhf128 F
+GLIBC_2.27 tanhf64x F
 GLIBC_2.27 tgammaf128 F
+GLIBC_2.27 tgammaf64x F
 GLIBC_2.27 totalorderf128 F
+GLIBC_2.27 totalorderf64x F
 GLIBC_2.27 totalordermagf128 F
+GLIBC_2.27 totalordermagf64x F
 GLIBC_2.27 truncf128 F
+GLIBC_2.27 truncf64x F
 GLIBC_2.27 ufromfpf128 F
+GLIBC_2.27 ufromfpf64x F
 GLIBC_2.27 ufromfpxf128 F
+GLIBC_2.27 ufromfpxf64x F
 GLIBC_2.27 y0f128 F
+GLIBC_2.27 y0f64x F
 GLIBC_2.27 y1f128 F
+GLIBC_2.27 y1f64x F
 GLIBC_2.27 ynf128 F
+GLIBC_2.27 ynf64x F
 GLIBC_2.4 GLIBC_2.4 A
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index 0a4f7797ac..9c4b53b416 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -1878,6 +1878,11 @@ GLIBC_2.27 GLIBC_2.27 A
 GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
+GLIBC_2.27 strfromf64x F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_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/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 201c2ab1b1..8a35d3c494 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -601,9 +601,113 @@ 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 acosf64x F
+GLIBC_2.27 acoshf64x F
+GLIBC_2.27 asinf64x F
+GLIBC_2.27 asinhf64x F
+GLIBC_2.27 atan2f64x F
+GLIBC_2.27 atanf64x F
+GLIBC_2.27 atanhf64x F
+GLIBC_2.27 cabsf64x F
+GLIBC_2.27 cacosf64x F
+GLIBC_2.27 cacoshf64x F
+GLIBC_2.27 canonicalizef64x F
+GLIBC_2.27 cargf64x F
+GLIBC_2.27 casinf64x F
+GLIBC_2.27 casinhf64x F
+GLIBC_2.27 catanf64x F
+GLIBC_2.27 catanhf64x F
+GLIBC_2.27 cbrtf64x F
+GLIBC_2.27 ccosf64x F
+GLIBC_2.27 ccoshf64x F
+GLIBC_2.27 ceilf64x F
+GLIBC_2.27 cexpf64x F
+GLIBC_2.27 cimagf64x F
+GLIBC_2.27 clog10f64x F
+GLIBC_2.27 clogf64x F
+GLIBC_2.27 conjf64x F
+GLIBC_2.27 copysignf64x F
+GLIBC_2.27 cosf64x F
+GLIBC_2.27 coshf64x F
+GLIBC_2.27 cpowf64x F
+GLIBC_2.27 cprojf64x F
+GLIBC_2.27 crealf64x F
+GLIBC_2.27 csinf64x F
+GLIBC_2.27 csinhf64x F
+GLIBC_2.27 csqrtf64x F
+GLIBC_2.27 ctanf64x F
+GLIBC_2.27 ctanhf64x F
+GLIBC_2.27 erfcf64x F
+GLIBC_2.27 erff64x F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
+GLIBC_2.27 expf64x F
+GLIBC_2.27 expm1f64x F
+GLIBC_2.27 fabsf64x F
+GLIBC_2.27 fdimf64x F
+GLIBC_2.27 floorf64x F
+GLIBC_2.27 fmaf64x F
+GLIBC_2.27 fmaxf64x F
+GLIBC_2.27 fmaxmagf64x F
+GLIBC_2.27 fminf64x F
+GLIBC_2.27 fminmagf64x F
+GLIBC_2.27 fmodf64x F
+GLIBC_2.27 frexpf64x F
+GLIBC_2.27 fromfpf64x F
+GLIBC_2.27 fromfpxf64x F
+GLIBC_2.27 getpayloadf64x F
+GLIBC_2.27 hypotf64x F
+GLIBC_2.27 ilogbf64x F
+GLIBC_2.27 j0f64x F
+GLIBC_2.27 j1f64x F
+GLIBC_2.27 jnf64x F
+GLIBC_2.27 ldexpf64x F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
+GLIBC_2.27 llogbf64x F
+GLIBC_2.27 llrintf64x F
+GLIBC_2.27 llroundf64x F
+GLIBC_2.27 log10f64x F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
+GLIBC_2.27 log2f64x F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
+GLIBC_2.27 logf64x F
+GLIBC_2.27 lrintf64x F
+GLIBC_2.27 lroundf64x F
+GLIBC_2.27 modff64x F
+GLIBC_2.27 nanf64x F
+GLIBC_2.27 nearbyintf64x F
+GLIBC_2.27 nextafterf64x F
+GLIBC_2.27 nextdownf64x F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
+GLIBC_2.27 powf64x F
+GLIBC_2.27 remainderf64x F
+GLIBC_2.27 remquof64x F
+GLIBC_2.27 rintf64x F
+GLIBC_2.27 roundevenf64x F
+GLIBC_2.27 roundf64x F
+GLIBC_2.27 scalblnf64x F
+GLIBC_2.27 scalbnf64x F
+GLIBC_2.27 setpayloadf64x F
+GLIBC_2.27 setpayloadsigf64x F
+GLIBC_2.27 sincosf64x F
+GLIBC_2.27 sinf64x F
+GLIBC_2.27 sinhf64x F
+GLIBC_2.27 sqrtf64x F
+GLIBC_2.27 tanf64x F
+GLIBC_2.27 tanhf64x F
+GLIBC_2.27 tgammaf64x F
+GLIBC_2.27 totalorderf64x F
+GLIBC_2.27 totalordermagf64x F
+GLIBC_2.27 truncf64x F
+GLIBC_2.27 ufromfpf64x F
+GLIBC_2.27 ufromfpxf64x F
+GLIBC_2.27 y0f64x F
+GLIBC_2.27 y1f64x F
+GLIBC_2.27 ynf64x F
 GLIBC_2.4 GLIBC_2.4 A
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 23f6a91429..7a179a5ff6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2121,3 +2121,8 @@ GLIBC_2.27 GLIBC_2.27 A
 GLIBC_2.27 glob F
 GLIBC_2.27 glob64 F
 GLIBC_2.27 memfd_create F
+GLIBC_2.27 strfromf64x F
+GLIBC_2.27 strtof64x F
+GLIBC_2.27 strtof64x_l F
+GLIBC_2.27 wcstof64x F
+GLIBC_2.27 wcstof64x_l F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 10e389a96a..f18420484c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -600,8 +600,112 @@ 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 acosf64x F
+GLIBC_2.27 acoshf64x F
+GLIBC_2.27 asinf64x F
+GLIBC_2.27 asinhf64x F
+GLIBC_2.27 atan2f64x F
+GLIBC_2.27 atanf64x F
+GLIBC_2.27 atanhf64x F
+GLIBC_2.27 cabsf64x F
+GLIBC_2.27 cacosf64x F
+GLIBC_2.27 cacoshf64x F
+GLIBC_2.27 canonicalizef64x F
+GLIBC_2.27 cargf64x F
+GLIBC_2.27 casinf64x F
+GLIBC_2.27 casinhf64x F
+GLIBC_2.27 catanf64x F
+GLIBC_2.27 catanhf64x F
+GLIBC_2.27 cbrtf64x F
+GLIBC_2.27 ccosf64x F
+GLIBC_2.27 ccoshf64x F
+GLIBC_2.27 ceilf64x F
+GLIBC_2.27 cexpf64x F
+GLIBC_2.27 cimagf64x F
+GLIBC_2.27 clog10f64x F
+GLIBC_2.27 clogf64x F
+GLIBC_2.27 conjf64x F
+GLIBC_2.27 copysignf64x F
+GLIBC_2.27 cosf64x F
+GLIBC_2.27 coshf64x F
+GLIBC_2.27 cpowf64x F
+GLIBC_2.27 cprojf64x F
+GLIBC_2.27 crealf64x F
+GLIBC_2.27 csinf64x F
+GLIBC_2.27 csinhf64x F
+GLIBC_2.27 csqrtf64x F
+GLIBC_2.27 ctanf64x F
+GLIBC_2.27 ctanhf64x F
+GLIBC_2.27 erfcf64x F
+GLIBC_2.27 erff64x F
+GLIBC_2.27 exp10f64x F
 GLIBC_2.27 exp2f F
+GLIBC_2.27 exp2f64x F
 GLIBC_2.27 expf F
+GLIBC_2.27 expf64x F
+GLIBC_2.27 expm1f64x F
+GLIBC_2.27 fabsf64x F
+GLIBC_2.27 fdimf64x F
+GLIBC_2.27 floorf64x F
+GLIBC_2.27 fmaf64x F
+GLIBC_2.27 fmaxf64x F
+GLIBC_2.27 fmaxmagf64x F
+GLIBC_2.27 fminf64x F
+GLIBC_2.27 fminmagf64x F
+GLIBC_2.27 fmodf64x F
+GLIBC_2.27 frexpf64x F
+GLIBC_2.27 fromfpf64x F
+GLIBC_2.27 fromfpxf64x F
+GLIBC_2.27 getpayloadf64x F
+GLIBC_2.27 hypotf64x F
+GLIBC_2.27 ilogbf64x F
+GLIBC_2.27 j0f64x F
+GLIBC_2.27 j1f64x F
+GLIBC_2.27 jnf64x F
+GLIBC_2.27 ldexpf64x F
+GLIBC_2.27 lgammaf64x F
+GLIBC_2.27 lgammaf64x_r F
+GLIBC_2.27 llogbf64x F
+GLIBC_2.27 llrintf64x F
+GLIBC_2.27 llroundf64x F
+GLIBC_2.27 log10f64x F
+GLIBC_2.27 log1pf64x F
 GLIBC_2.27 log2f F
+GLIBC_2.27 log2f64x F
+GLIBC_2.27 logbf64x F
 GLIBC_2.27 logf F
+GLIBC_2.27 logf64x F
+GLIBC_2.27 lrintf64x F
+GLIBC_2.27 lroundf64x F
+GLIBC_2.27 modff64x F
+GLIBC_2.27 nanf64x F
+GLIBC_2.27 nearbyintf64x F
+GLIBC_2.27 nextafterf64x F
+GLIBC_2.27 nextdownf64x F
+GLIBC_2.27 nextupf64x F
 GLIBC_2.27 powf F
+GLIBC_2.27 powf64x F
+GLIBC_2.27 remainderf64x F
+GLIBC_2.27 remquof64x F
+GLIBC_2.27 rintf64x F
+GLIBC_2.27 roundevenf64x F
+GLIBC_2.27 roundf64x F
+GLIBC_2.27 scalblnf64x F
+GLIBC_2.27 scalbnf64x F
+GLIBC_2.27 setpayloadf64x F
+GLIBC_2.27 setpayloadsigf64x F
+GLIBC_2.27 sincosf64x F
+GLIBC_2.27 sinf64x F
+GLIBC_2.27 sinhf64x F
+GLIBC_2.27 sqrtf64x F
+GLIBC_2.27 tanf64x F
+GLIBC_2.27 tanhf64x F
+GLIBC_2.27 tgammaf64x F
+GLIBC_2.27 totalorderf64x F
+GLIBC_2.27 totalordermagf64x F
+GLIBC_2.27 truncf64x F
+GLIBC_2.27 ufromfpf64x F
+GLIBC_2.27 ufromfpxf64x F
+GLIBC_2.27 y0f64x F
+GLIBC_2.27 y1f64x F
+GLIBC_2.27 ynf64x F
diff --git a/sysdeps/x86/Makeconfig b/sysdeps/x86/Makeconfig
new file mode 100644
index 0000000000..d701f8294d
--- /dev/null
+++ b/sysdeps/x86/Makeconfig
@@ -0,0 +1 @@
+float64x-alias-fcts = yes
diff --git a/sysdeps/x86/bits/floatn.h b/sysdeps/x86/bits/floatn.h
index 5ca6bba672..9870bbc6e2 100644
--- a/sysdeps/x86/bits/floatn.h
+++ b/sysdeps/x86/bits/floatn.h
@@ -42,6 +42,17 @@
 # define __HAVE_DISTINCT_FLOAT128 0
 #endif
 
+/* Defined to 1 if the current compiler invocation provides a
+   floating-point type with the right format for _Float64x, and this
+   glibc includes corresponding *f64x interfaces for it.  */
+#define __HAVE_FLOAT64X 1
+
+/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
+   of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
+   the format of _Float128, which must be different from that of long
+   double.  */
+#define __HAVE_FLOAT64X_LONG_DOUBLE 1
+
 #ifndef __ASSEMBLER__
 
 /* Defined to concatenate the literal suffix to be used with _Float128
diff --git a/wcsmbs/Versions b/wcsmbs/Versions
index df6e7cd1af..e0f7a77b1e 100644
--- a/wcsmbs/Versions
+++ b/wcsmbs/Versions
@@ -41,4 +41,8 @@ libc {
     wcstof128_l;
   }
 %endif
+  GLIBC_2.27 {
+    wcstof64x;
+    wcstof64x_l;
+  }
 }