From d8742dd82f6a00601155c69bad3012e905591e1f Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sat, 10 Feb 2018 02:08:43 +0000 Subject: Add narrowing add functions. This patch adds the narrowing add functions from TS 18661-1 to glibc's libm: fadd, faddl, daddl, f32addf64, f32addf32x, f32xaddf64 for all configurations; f32addf64x, f32addf128, f64addf64x, f64addf128, f32xaddf64x, f32xaddf128, f64xaddf128 for configurations with _Float64x and _Float128; __nldbl_daddl for ldbl-opt. As discussed for the build infrastructure patch, tgmath.h support is deliberately deferred, and FP_FAST_* macros are not applicable without optimized function implementations. Function implementations are added for all relevant pairs of formats (including certain cases of a format and itself where more than one type has that format). The main implementations use round-to-odd, or a trivial computation in the case where both formats are the same or where the wider format is IBM long double (in which case we don't attempt to be correctly rounding). The sysdeps/ieee754/soft-fp implementations use soft-fp, and are used automatically for configurations without exceptions and rounding modes by virtue of existing Implies files. As previously discussed, optimized versions for particular architectures are possible, but not included. i386 gets a special version of f32xaddf64 to avoid problems with double rounding (similar to the existing fdim version), since this function must round just once without an intermediate rounding to long double. (No such special version is needed for any other function, because the nontrivial functions use round-to-odd, which does the intermediate computation with the rounding mode set to round-to-zero, and double rounding is OK except in round-to-nearest mode, so is OK for that intermediate round-to-zero computation.) mul and div will need slightly different special versions for i386 (using round-to-odd on long double instead of precision control) because of the possibility of inexact intermediate results in the subnormal range for double. To reduce duplication among the different function implementations, math-narrow.h gets macros CHECK_NARROW_ADD, NARROW_ADD_ROUND_TO_ODD and NARROW_ADD_TRIVIAL. In the trivial cases and for any architecture-specific optimized implementations, the overhead of the errno setting might be significant, but I think that's best handled through compiler built-in functions rather than providing separate no-errno versions in glibc (and likewise there are no __*_finite entry points for these function provided, __*_finite effectively being no-errno versions at present in most cases). Tested for x86_64 and x86, with both GCC 6 and GCC 7. Tested for mips64 (all three ABIs, both hard and soft float) and powerpc with GCC 7. Tested with build-many-glibcs.py with both GCC 6 and GCC 7. * math/Makefile (libm-narrow-fns): Add add. (libm-test-funcs-narrow): Likewise. * math/Versions (GLIBC_2.28): Add narrowing add functions. * math/bits/mathcalls-narrow.h (add): Use __MATHCALL_NARROW . * math/gen-auto-libm-tests.c (test_functions): Add add. * math/math-narrow.h (CHECK_NARROW_ADD): New macro. (NARROW_ADD_ROUND_TO_ODD): Likewise. (NARROW_ADD_TRIVIAL): Likewise. * sysdeps/ieee754/float128/float128_private.h (__faddl): New macro. (__daddl): Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fadd and dadd. (CFLAGS-nldbl-dadd.c): New variable. (CFLAGS-nldbl-fadd.c): Likewise. * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add __nldbl_daddl. * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_daddl): New prototype. * manual/arith.texi (Misc FP Arithmetic): Document fadd, faddl, daddl, fMaddfN, fMaddfNx, fMxaddfN and fMxaddfNx. * math/auto-libm-test-in: Add tests of add. * math/auto-libm-test-out-narrow-add: New generated file. * math/libm-test-narrow-add.inc: New file. * sysdeps/i386/fpu/s_f32xaddf64.c: Likewise. * sysdeps/ieee754/dbl-64/s_f32xaddf64.c: Likewise. * sysdeps/ieee754/dbl-64/s_fadd.c: Likewise. * sysdeps/ieee754/float128/s_f32addf128.c: Likewise. * sysdeps/ieee754/float128/s_f64addf128.c: Likewise. * sysdeps/ieee754/float128/s_f64xaddf128.c: Likewise. * sysdeps/ieee754/ldbl-128/s_daddl.c: Likewise. * sysdeps/ieee754/ldbl-128/s_f64xaddf128.c: Likewise. * sysdeps/ieee754/ldbl-128/s_faddl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_daddl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_faddl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_daddl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_faddl.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-dadd.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-fadd.c: Likewise. * sysdeps/ieee754/soft-fp/s_daddl.c: Likewise. * sysdeps/ieee754/soft-fp/s_fadd.c: Likewise. * sysdeps/ieee754/soft-fp/s_faddl.c: Likewise. * sysdeps/powerpc/fpu/libm-test-ulps: Update. * sysdeps/mach/hurd/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. --- sysdeps/unix/sysv/linux/aarch64/libm.abilist | 14 ++++++++++++++ sysdeps/unix/sysv/linux/alpha/libm.abilist | 15 +++++++++++++++ sysdeps/unix/sysv/linux/arm/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/hppa/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/i386/libm.abilist | 14 ++++++++++++++ sysdeps/unix/sysv/linux/ia64/libm.abilist | 14 ++++++++++++++ sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/microblaze/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 14 ++++++++++++++ sysdeps/unix/sysv/linux/nios2/libm.abilist | 7 +++++++ .../unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 8 ++++++++ .../unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist | 8 ++++++++ sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist | 15 +++++++++++++++ sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist | 8 ++++++++ sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist | 14 ++++++++++++++ sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 15 +++++++++++++++ sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 15 +++++++++++++++ sysdeps/unix/sysv/linux/sh/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 15 +++++++++++++++ sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 14 ++++++++++++++ sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist | 7 +++++++ sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 14 ++++++++++++++ sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 14 ++++++++++++++ 26 files changed, 281 insertions(+) (limited to 'sysdeps/unix/sysv') diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 7caff9b034..dbb53260c1 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -986,3 +986,17 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 19305d9e23..00a7b8d426 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -996,6 +996,21 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl 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/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist index 613df712c4..67ed6562d5 100644 --- a/sysdeps/unix/sysv/linux/arm/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/libm.abilist @@ -435,6 +435,13 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 8496fa617a..4cd41e3cf0 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -747,5 +747,12 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 9ef6fc6777..b9aa407783 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1033,4 +1033,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index 9de432536c..a7981b8ff2 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -962,4 +962,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 613df712c4..67ed6562d5 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -435,6 +435,13 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index b72723a5a7..e833cdb130 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -789,4 +789,11 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index 8c04695a0b..3d779cb9b9 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -746,3 +746,10 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index b15ddf8831..6b86a2dfcb 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -748,6 +748,13 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F _gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 3ab51cb61d..137e5f1723 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -988,4 +988,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 2c47b2b82e..736c70f8eb 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -746,3 +746,10 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index d3baaf7e66..ea84f1e028 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -791,6 +791,14 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl 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/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 7c6467c71e..ee2593c5a4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -790,6 +790,14 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl 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/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index 9b6fffb5e4..075f026668 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -1027,3 +1027,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist index 9443bd90c3..9e6c7d3b16 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -466,6 +466,14 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _LIB_VERSION D 0x4 GLIBC_2.3 __clog10 F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist index 971af52586..9a6bcb18e0 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist @@ -968,3 +968,17 @@ GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.27 ynl F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index af68d0cf1b..7b1854d1ab 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -986,6 +986,21 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl 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/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 430c5ae084..24b4c21a64 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -984,6 +984,21 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl 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/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist index 7e48be9c66..011c2dfc94 100644 --- a/sysdeps/unix/sysv/linux/sh/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/libm.abilist @@ -747,5 +747,12 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 9d25c07c50..fdc125afa9 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -993,6 +993,21 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 __nldbl_daddl F +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl 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/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 1311767193..1fc848a59d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -987,4 +987,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist index 6b375f5152..a7c37e2bef 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libm.abilist @@ -747,3 +747,10 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist index 6b375f5152..a7c37e2bef 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist @@ -747,3 +747,10 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index fc1c6019c7..0d8c44848e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1022,4 +1022,18 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 75ef25f07b..e7f368eaf4 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1021,3 +1021,17 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F +GLIBC_2.28 GLIBC_2.28 A +GLIBC_2.28 daddl F +GLIBC_2.28 f32addf128 F +GLIBC_2.28 f32addf32x F +GLIBC_2.28 f32addf64 F +GLIBC_2.28 f32addf64x F +GLIBC_2.28 f32xaddf128 F +GLIBC_2.28 f32xaddf64 F +GLIBC_2.28 f32xaddf64x F +GLIBC_2.28 f64addf128 F +GLIBC_2.28 f64addf64x F +GLIBC_2.28 f64xaddf128 F +GLIBC_2.28 fadd F +GLIBC_2.28 faddl F -- cgit 1.4.1