about summary refs log tree commit diff
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
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.
-rw-r--r--ChangeLog30
-rw-r--r--NEWS6
-rw-r--r--manual/math.texi3
-rw-r--r--sysdeps/generic/libm-alias-ldouble.h9
-rw-r--r--sysdeps/ieee754/ldbl-128/Makeconfig3
-rw-r--r--sysdeps/ieee754/ldbl-128/bits/floatn.h80
-rw-r--r--sysdeps/ieee754/ldbl-128/float128-abi.h2
-rw-r--r--sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h8
-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/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/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
23 files changed, 906 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index eae1159cf3..1bd3f73ac4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2017-10-18  Joseph Myers  <joseph@codesourcery.com>
+
+	* 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.
+
 2017-10-18  Renlin Li  <renlin.li@arm.com>
 
 	* sysdeps/aarch64/dl-machine.h (elf_machine_load_address): Use
diff --git a/NEWS b/NEWS
index 464d1ce9b3..ad680db874 100644
--- a/NEWS
+++ b/NEWS
@@ -29,6 +29,12 @@ Major new features:
   in deadlocks and further data corruption.  This change also affects
   process aborts as the result of assertion failures.
 
+* On platforms where long double has the IEEE binary128 format (aarch64,
+  alpha, mips64, s390 and sparc), the math library now implements _Float128
+  interfaces for that type, as defined by ISO/IEC TS 18661-3:2015.  These
+  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.
+
 Deprecated and removed features, and other changes affecting compatibility:
 
 * On GNU/Linux, the obsolete Linux constant PTRACE_SEIZE_DEVEL is no longer
diff --git a/manual/math.texi b/manual/math.texi
index f5602c9be3..e6aa342076 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -67,7 +67,8 @@ these functions are described along with the @code{double},
 
 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 and ia64.
+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/sysdeps/generic/libm-alias-ldouble.h b/sysdeps/generic/libm-alias-ldouble.h
index 82dafd513e..7b9bf9a0e3 100644
--- a/sysdeps/generic/libm-alias-ldouble.h
+++ b/sysdeps/generic/libm-alias-ldouble.h
@@ -19,11 +19,18 @@
 #ifndef _LIBM_ALIAS_LDOUBLE_H
 #define _LIBM_ALIAS_LDOUBLE_H
 
+#include <bits/floatn.h>
+
 /* Define _FloatN / _FloatNx aliases for a long double libm function
    that has internal name FROM ## l ## R and public names TO ## suffix
    ## R for each suffix of a supported _FloatN / _FloatNx
    floating-point type with the same format as long double.  */
-#define libm_alias_ldouble_other_r(from, to, r)
+#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128
+# define libm_alias_ldouble_other_r(from, to, r)	\
+  weak_alias (from ## l ## r, to ## f128 ## r)
+#else
+# define libm_alias_ldouble_other_r(from, to, r)
+#endif
 
 /* Likewise, but without the R suffix.  */
 #define libm_alias_ldouble_other(from, to)	\
diff --git a/sysdeps/ieee754/ldbl-128/Makeconfig b/sysdeps/ieee754/ldbl-128/Makeconfig
new file mode 100644
index 0000000000..1f8e2562f0
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/Makeconfig
@@ -0,0 +1,3 @@
+# Include this earlier so it can be used earlier in Makefiles,
+# and sysdep/ makefiles.
+float128-alias-fcts = yes
diff --git a/sysdeps/ieee754/ldbl-128/bits/floatn.h b/sysdeps/ieee754/ldbl-128/bits/floatn.h
new file mode 100644
index 0000000000..5c87366aef
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/bits/floatn.h
@@ -0,0 +1,80 @@
+/* Macros to control TS 18661-3 glibc features on ldbl-128 platforms.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_FLOATN_H
+#define _BITS_FLOATN_H
+
+#include <features.h>
+#include <bits/long-double.h>
+
+/* Defined to 1 if the current compiler invocation provides a
+   floating-point type with the IEEE 754 binary128 format, and this
+   glibc includes corresponding *f128 interfaces for it.  */
+#ifndef __NO_LONG_DOUBLE_MATH
+# define __HAVE_FLOAT128 1
+#else
+/* glibc does not support _Float128 for platforms where long double is
+   normally binary128 when building with long double as binary64.
+   GCC's default for supported scalar modes does not support it either
+   in that case.  */
+# define __HAVE_FLOAT128 0
+#endif
+
+/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
+   from the default float, double and long double types in this glibc.  */
+#define __HAVE_DISTINCT_FLOAT128 0
+
+/* Defined to concatenate the literal suffix to be used with _Float128
+   types, if __HAVE_FLOAT128 is 1. */
+#if __HAVE_FLOAT128
+# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
+/* The literal suffix f128 exists only since GCC 7.0.  */
+#  define __f128(x) x##l
+# else
+#  define __f128(x) x##f128
+# endif
+#endif
+
+/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.  */
+#if __HAVE_FLOAT128
+# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
+#  define __CFLOAT128 _Complex long double
+# else
+#  define __CFLOAT128 _Complex _Float128
+# endif
+#endif
+
+/* The remaining of this file provides support for older compilers.  */
+#if __HAVE_FLOAT128
+
+/* The type _Float128 exists only since GCC 7.0.  */
+# if !__GNUC_PREREQ (7, 0) || defined __cplusplus
+typedef long double _Float128;
+# endif
+
+/* Various built-in functions do not exist before GCC 7.0.  */
+# if !__GNUC_PREREQ (7, 0)
+#  define __builtin_huge_valf128() (__builtin_huge_vall ())
+#  define __builtin_inff128() (__builtin_infl ())
+#  define __builtin_nanf128(x) (__builtin_nanl (x))
+#  define __builtin_nansf128(x) (__builtin_nansl (x))
+# endif
+
+#endif
+
+#endif /* _BITS_FLOATN_H */
diff --git a/sysdeps/ieee754/ldbl-128/float128-abi.h b/sysdeps/ieee754/ldbl-128/float128-abi.h
new file mode 100644
index 0000000000..3077ffc7fe
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-128/float128-abi.h
@@ -0,0 +1,2 @@
+/* ABI version for _Float128 ABI introduction.  */
+#define FLOAT128_VERSION GLIBC_2.27
diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
index 291a5f56cb..ad31f69f1a 100644
--- a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
+++ b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h
@@ -19,6 +19,7 @@
 #ifndef _LIBM_ALIAS_LDOUBLE_H
 #define _LIBM_ALIAS_LDOUBLE_H
 
+#include <bits/floatn.h>
 #include <math_ldbl_opt.h>
 #include <ldbl-compat-choose.h>
 
@@ -26,7 +27,12 @@
    that has internal name FROM ## l ## R and public names TO ## suffix
    ## R for each suffix of a supported _FloatN / _FloatNx
    floating-point type with the same format as long double.  */
-#define libm_alias_ldouble_other_r(from, to, r)
+#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128
+# define libm_alias_ldouble_other_r(from, to, r)	\
+  weak_alias (from ## l ## r, to ## f128 ## r)
+#else
+# define libm_alias_ldouble_other_r(from, to, r)
+#endif
 
 /* Likewise, but without the R suffix.  */
 #define libm_alias_ldouble_other(from, to)	\
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index e7438c5c1d..ed598aedac 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2106,3 +2106,8 @@ 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
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 3f0190ae03..b21d136e9d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -461,8 +461,112 @@ 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
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
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index f33ba0576b..92a46b6b30 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -463,9 +463,113 @@ 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.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 e119842b47..ade654dbea 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -1956,6 +1956,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/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 67f10f5641..56032c3f82 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -1951,6 +1951,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/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 271eccc853..dbd411ceb1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -1989,6 +1989,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/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 2b758e80fd..f3c4f77264 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -461,11 +461,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.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 8b96e16916..5617784ca0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -1890,6 +1890,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/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 62c9bb57a8..eb113fd37c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -459,11 +459,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.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 a62463be3d..bb7e1042c7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -1982,6 +1982,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/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 92de6edab9..152a83a869 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -468,11 +468,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.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 a50485efd8..4053b0a51c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -1919,6 +1919,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/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index b5412c9b48..ff6962d7e7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -462,9 +462,113 @@ 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.4 GLIBC_2.4 A