]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Remove the SVID error handling wrapper from sqrt
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 31 Oct 2025 16:08:56 +0000 (13:08 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 4 Nov 2025 07:14:01 +0000 (04:14 -0300)
i386 and m68k architectures should use math-use-builtins-sqrt.h rather
than relying on architecture-specific or inline assembly implementations.

The PowerPC optimization for PPC 601/603 (30 years old) is removed.

Tested on x86_64-linux-gnu and i686-linux-gnu.

Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
36 files changed:
include/math.h
math/Versions
math/w_sqrtf_compat.c
sysdeps/alpha/fpu/e_sqrtf.c
sysdeps/i386/fpu/e_sqrtf.S [deleted file]
sysdeps/i386/fpu/math-use-builtins-sqrt.h [new file with mode: 0644]
sysdeps/ieee754/flt-32/e_sqrtf.c
sysdeps/ieee754/flt-32/w_sqrtf.c [new file with mode: 0644]
sysdeps/m68k/fpu/math-use-builtins-sqrt.h [new file with mode: 0644]
sysdeps/m68k/m680x0/fpu/e_sqrtf.c [deleted file]
sysdeps/mach/hurd/i386/libm.abilist
sysdeps/powerpc/fpu/e_sqrtf.c [deleted file]
sysdeps/unix/sysv/linux/aarch64/libm.abilist
sysdeps/unix/sysv/linux/alpha/libm.abilist
sysdeps/unix/sysv/linux/arm/be/libm.abilist
sysdeps/unix/sysv/linux/arm/le/libm.abilist
sysdeps/unix/sysv/linux/hppa/libm.abilist
sysdeps/unix/sysv/linux/i386/libm.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
sysdeps/unix/sysv/linux/sh/be/libm.abilist
sysdeps/unix/sysv/linux/sh/le/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist

index 9ba4708801e7228655f37f2671cee8f847eaed91..123626880413043e3e9b07a68e1b454815269c4a 100644 (file)
@@ -164,7 +164,7 @@ fabsf128 (_Float128 x)
 #   define MATH_REDIRECT_UNARY_ARGS(TYPE) TYPE
 #   define MATH_REDIRECT_BINARY_ARGS(TYPE) TYPE, TYPE
 #   define MATH_REDIRECT_TERNARY_ARGS(TYPE) TYPE, TYPE, TYPE
-MATH_REDIRECT (sqrt, "__ieee754_", MATH_REDIRECT_UNARY_ARGS)
+MATH_REDIRECT (sqrt, "__", MATH_REDIRECT_UNARY_ARGS)
 MATH_REDIRECT (ceil, "__", MATH_REDIRECT_UNARY_ARGS)
 MATH_REDIRECT (floor, "__", MATH_REDIRECT_UNARY_ARGS)
 MATH_REDIRECT (roundeven, "__", MATH_REDIRECT_UNARY_ARGS)
index f81ff75a00d5fc160a02c7f6be8be091ac77e7ad..272f3f3a74a9079cdfec2d81e82f0e1757064ee0 100644 (file)
@@ -700,6 +700,7 @@ libm {
     remainder;
     remainderf;
     sinhf;
+    sqrtf;
     y0f;
     y1f;
     ynf;
index 7c89b458aaee4e5bfa4be8e4fd3254e8e2ba5ae9..5e893d1cac1c965aaf2058b2afcc04af0492bcfe 100644 (file)
 #include <libm-alias-float.h>
 
 
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_43)
 /* wrapper sqrtf */
 float
-__sqrtf (float x)
+__sqrtf_svid (float x)
 {
   if (__builtin_expect (isless (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
     return __kernel_standard_f (x, x, 126); /* sqrt(negative) */
 
-  return __ieee754_sqrtf (x);
+  return __sqrtf (x);
 }
-libm_alias_float (__sqrt, sqrt)
+compat_symbol (libm, __sqrtf_svid, sqrtf, GLIBC_2_0);
 #endif
index 38c41db53711ef25d86f478e7a22cb02906bb806..fbe9bb32659d86fc256c48627787350a57d588a9 100644 (file)
@@ -3,6 +3,6 @@
 #include <sysdeps/ieee754/flt-32/e_sqrtf.c>
 
 #if SHLIB_COMPAT (libm, GLIBC_2_18, GLIBC_2_31)
-strong_alias (__ieee754_sqrtf, __sqrtf_finite_2_18)
+strong_alias (__sqrtf, __sqrtf_finite_2_18)
 compat_symbol (libm, __sqrtf_finite_2_18, __sqrtf_finite, GLIBC_2_18);
 #endif
diff --git a/sysdeps/i386/fpu/e_sqrtf.S b/sysdeps/i386/fpu/e_sqrtf.S
deleted file mode 100644 (file)
index bf609b7..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Public domain.
- */
-
-#include <machine/asm.h>
-#include <libm-alias-finite.h>
-
-ENTRY(__ieee754_sqrtf)
-       flds    4(%esp)
-       fsqrt
-       ret
-END (__ieee754_sqrtf)
-libm_alias_finite (__ieee754_sqrtf, __sqrtf)
diff --git a/sysdeps/i386/fpu/math-use-builtins-sqrt.h b/sysdeps/i386/fpu/math-use-builtins-sqrt.h
new file mode 100644 (file)
index 0000000..e94c915
--- /dev/null
@@ -0,0 +1,4 @@
+#define USE_SQRT_BUILTIN 1
+#define USE_SQRTF_BUILTIN 1
+#define USE_SQRTL_BUILTIN 0
+#define USE_SQRTF128_BUILTIN 0
index 0e29375786cce3d4d7eaafbce90b5016c1ba2a9e..fe68d0bdaee4c4ae7ec335ce227929f2187c46c7 100644 (file)
  * ====================================================
  */
 
+/* The internal alias to avoid PLT calls interfere with the default
+   symbol alias for !LIBM_SVID_COMPAT.  */
+#define sqrtf __redirect_sqrtf
 #include <math.h>
-#include <math_private.h>
+#undef sqrtf
 #include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
 #include <math-use-builtins.h>
+#include "math_config.h"
 
 float
-__ieee754_sqrtf(float x)
+__sqrtf (float x)
 {
 #if USE_SQRTF_BUILTIN
-       return __builtin_sqrtf (x);
+  if (__glibc_unlikely (isless (x, 0.0f)))
+    return __math_invalidf (x);
+  return __builtin_sqrtf (x);
 #else
-       /* Use generic implementation.  */
-       float z;
-       int32_t sign = (int)0x80000000;
-       int32_t ix,s,q,m,t,i;
-       uint32_t r;
+  /* Use generic implementation.  */
+  float z;
+  int32_t sign = (int) 0x80000000;
+  int32_t ix, s, q, m, t, i;
+  uint32_t r;
 
-       GET_FLOAT_WORD(ix,x);
+  ix = asuint (x);
 
-    /* take care of Inf and NaN */
-       if((ix&0x7f800000)==0x7f800000) {
-           return x*x+x;               /* sqrt(NaN)=NaN, sqrt(+inf)=+inf
-                                          sqrt(-inf)=sNaN */
-       }
-    /* take care of zero */
-       if(ix<=0) {
-           if((ix&(~sign))==0) return x;/* sqrt(+-0) = +-0 */
-           else if(ix<0)
-               return (x-x)/(x-x);             /* sqrt(-ve) = sNaN */
-       }
-    /* normalize x */
-       m = (ix>>23);
-       if(m==0) {                              /* subnormal x */
-           for(i=0;(ix&0x00800000)==0;i++) ix<<=1;
-           m -= i-1;
-       }
-       m -= 127;       /* unbias exponent */
-       ix = (ix&0x007fffff)|0x00800000;
-       if(m&1) /* odd m, double x to make it even */
-           ix += ix;
-       m >>= 1;        /* m = [m/2] */
+  /* take care of Inf and NaN */
+  if ((ix & 0x7f800000) == 0x7f800000)
+    {
+      if (ix == 0xff800000)
+       return __math_invalidf (0.0f);
+      return x * x + x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf
+                          sqrt(-inf)=sNaN */
+    }
+  /* take care of zero */
+  if (ix <= 0)
+    {
+      if ((ix & (~sign)) == 0)
+       return x; /* sqrt(+-0) = +-0 */
+      else if (ix < 0)
+       return __math_invalidf (0.0f); /* sqrt(-ve) = sNaN */
+    }
+  /* normalize x */
+  m = (ix >> 23);
+  if (m == 0)
+    { /* subnormal x */
+      for (i = 0; (ix & 0x00800000) == 0; i++)
+       ix <<= 1;
+      m -= i - 1;
+    }
+  m -= 127; /* unbias exponent */
+  ix = (ix & 0x007fffff) | 0x00800000;
+  if (m & 1) /* odd m, double x to make it even */
+    ix += ix;
+  m >>= 1; /* m = [m/2] */
 
-    /* generate sqrt(x) bit by bit */
-       ix += ix;
-       q = s = 0;              /* q = sqrt(x) */
-       r = 0x01000000;         /* r = moving bit from right to left */
+  /* generate sqrt(x) bit by bit */
+  ix += ix;
+  q = s = 0;     /* q = sqrt(x) */
+  r = 0x01000000; /* r = moving bit from right to left */
 
-       while(r!=0) {
-           t = s+r;
-           if(t<=ix) {
-               s    = t+r;
-               ix  -= t;
-               q   += r;
-           }
-           ix += ix;
-           r>>=1;
+  while (r != 0)
+    {
+      t = s + r;
+      if (t <= ix)
+       {
+         s = t + r;
+         ix -= t;
+         q += r;
        }
+      ix += ix;
+      r >>= 1;
+    }
 
-    /* use floating add to find out rounding direction */
-       if(ix!=0) {
-           z = 0x1p0f - 0x1.4484cp-100f; /* trigger inexact flag.  */
-           if (z >= 0x1p0f) {  /* rounding to nearest or upward */
-               z = 0x1p0f + 0x1.4484cp-100f;
-               if (z > 0x1p0f) /* rounding upward */
-                   q += 2;
-               else
-                   q += (q&1);
-           }
+  /* use floating add to find out rounding direction */
+  if (ix != 0)
+    {
+      z = 0x1p0 - 0x1.4484cp-100; /* trigger inexact flag.  */
+      if (z >= 0x1p0)
+       {
+         z = 0x1p0 + 0x1.4484cp-100;
+         if (z > 0x1p0)
+           q += 2;
+         else
+           q += (q & 1);
        }
-       ix = (q>>1)+0x3f000000;
-       ix += (m <<23);
-       SET_FLOAT_WORD(z,ix);
-       return z;
+    }
+  ix = (q >> 1) + 0x3f000000;
+  ix += (m << 23);
+  return asfloat (ix);
 #endif /* ! USE_SQRTF_BUILTIN  */
 }
-#ifndef __ieee754_sqrtf
-libm_alias_finite (__ieee754_sqrtf, __sqrtf)
+libm_alias_finite (__sqrtf, __sqrtf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __sqrtf, sqrtf, GLIBC_2_43);
+libm_alias_float_other (__sqrt, sqrt)
+#else
+libm_alias_float (__sqrt, sqrt)
 #endif
diff --git a/sysdeps/ieee754/flt-32/w_sqrtf.c b/sysdeps/ieee754/flt-32/w_sqrtf.c
new file mode 100644 (file)
index 0000000..db3355f
--- /dev/null
@@ -0,0 +1 @@
+/* Not needed */
diff --git a/sysdeps/m68k/fpu/math-use-builtins-sqrt.h b/sysdeps/m68k/fpu/math-use-builtins-sqrt.h
new file mode 100644 (file)
index 0000000..e94c915
--- /dev/null
@@ -0,0 +1,4 @@
+#define USE_SQRT_BUILTIN 1
+#define USE_SQRTF_BUILTIN 1
+#define USE_SQRTL_BUILTIN 0
+#define USE_SQRTF128_BUILTIN 0
diff --git a/sysdeps/m68k/m680x0/fpu/e_sqrtf.c b/sysdeps/m68k/m680x0/fpu/e_sqrtf.c
deleted file mode 100644 (file)
index 8681e29..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#define FUNC __ieee754_sqrtf
-#define FUNC_FINITE __sqrtf
-#include <e_acosf.c>
index b9274b47c4681aae1d5f3ffa84adfdb295fe24d5..275b733d02d81b172180758a516e4574a3bc2179 100644 (file)
@@ -1331,6 +1331,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c
deleted file mode 100644 (file)
index 7c33904..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Single-precision floating point square root.
-   Copyright (C) 1997-2025 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
-   <https://www.gnu.org/licenses/>.  */
-
-#include <math.h>
-#include <math_private.h>
-#include <fenv_libc.h>
-#include <libm-alias-finite.h>
-#include <math-use-builtins.h>
-
-float
-__ieee754_sqrtf (float x)
-{
-#if USE_SQRTF_BUILTIN
-  return __builtin_sqrtf (x);
-#else
-/* The method is based on a description in
-   Computation of elementary functions on the IBM RISC System/6000 processor,
-   P. W. Markstein, IBM J. Res. Develop, 34(1) 1990.
-   Basically, it consists of two interleaved Newton-Raphson approximations,
-   one to find the actual square root, and one to find its reciprocal
-   without the expense of a division operation.   The tricky bit here
-   is the use of the POWER/PowerPC multiply-add operation to get the
-   required accuracy with high speed.
-
-   The argument reduction works by a combination of table lookup to
-   obtain the initial guesses, and some careful modification of the
-   generated guesses (which mostly runs on the integer unit, while the
-   Newton-Raphson is running on the FPU).  */
-
-  extern const float __t_sqrt[1024];
-
-  if (x > 0)
-    {
-      if (x != INFINITY)
-       {
-         /* Variables named starting with 's' exist in the
-            argument-reduced space, so that 2 > sx >= 0.5,
-            1.41... > sg >= 0.70.., 0.70.. >= sy > 0.35... .
-            Variables named ending with 'i' are integer versions of
-            floating-point values.  */
-         float sx;             /* The value of which we're trying to find the square
-                                  root.  */
-         float sg, g;          /* Guess of the square root of x.  */
-         float sd, d;          /* Difference between the square of the guess and x.  */
-         float sy;             /* Estimate of 1/2g (overestimated by 1ulp).  */
-         float sy2;            /* 2*sy */
-         float e;              /* Difference between y*g and 1/2 (note that e==se).  */
-         float shx;            /* == sx * fsg */
-         float fsg;            /* sg*fsg == g.  */
-         fenv_t fe;            /* Saved floating-point environment (stores rounding
-                                  mode and whether the inexact exception is
-                                  enabled).  */
-         uint32_t xi, sxi, fsgi;
-         const float *t_sqrt;
-
-         GET_FLOAT_WORD (xi, x);
-         fe = fegetenv_register ();
-         relax_fenv_state ();
-         sxi = (xi & 0x3fffffff) | 0x3f000000;
-         SET_FLOAT_WORD (sx, sxi);
-         t_sqrt = __t_sqrt + (xi >> (23 - 8 - 1) & 0x3fe);
-         sg = t_sqrt[0];
-         sy = t_sqrt[1];
-
-         /* Here we have three Newton-Raphson iterations each of a
-            division and a square root and the remainder of the
-            argument reduction, all interleaved.   */
-         sd = -__builtin_fmaf (sg, sg, -sx);
-         fsgi = (xi + 0x40000000) >> 1 & 0x7f800000;
-         sy2 = sy + sy;
-         sg = __builtin_fmaf (sy, sd, sg);     /* 16-bit approximation to
-                                                  sqrt(sx). */
-         e = -__builtin_fmaf (sy, sg, -0x1.0000020365653p-1);
-         SET_FLOAT_WORD (fsg, fsgi);
-         sd = -__builtin_fmaf (sg, sg, -sx);
-         sy = __builtin_fmaf (e, sy2, sy);
-         if ((xi & 0x7f800000) == 0)
-           goto denorm;
-         shx = sx * fsg;
-         sg = __builtin_fmaf (sy, sd, sg);     /* 32-bit approximation to
-                                                  sqrt(sx), but perhaps
-                                                  rounded incorrectly.  */
-         sy2 = sy + sy;
-         g = sg * fsg;
-         e = -__builtin_fmaf (sy, sg, -0x1.0000020365653p-1);
-         d = -__builtin_fmaf (g, sg, -shx);
-         sy = __builtin_fmaf (e, sy2, sy);
-         fesetenv_register (fe);
-         return __builtin_fmaf (sy, d, g);
-       denorm:
-         /* For denormalised numbers, we normalise, calculate the
-            square root, and return an adjusted result.  */
-         fesetenv_register (fe);
-         return __ieee754_sqrtf (x * 0x1p+48) * 0x1p-24;
-       }
-    }
-  else if (x < 0)
-    {
-      /* For some reason, some PowerPC32 processors don't implement
-        FE_INVALID_SQRT.  */
-# ifdef FE_INVALID_SQRT
-      feraiseexcept (FE_INVALID_SQRT);
-
-      fenv_union_t u = { .fenv = fegetenv_register () };
-      if ((u.l & FE_INVALID) == 0)
-# endif
-       feraiseexcept (FE_INVALID);
-      x = NAN;
-    }
-  return f_washf (x);
-#endif /* USE_SQRTF_BUILTIN  */
-}
-libm_alias_finite (__ieee754_sqrtf, __sqrtf)
index 79a327aae299c78daa151a561c0b32075684237f..d374f579238a47383b808b7db989cb18c252f6af 100644 (file)
@@ -1297,6 +1297,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 63bba07bbf0285bd87704d1206645f2e21cd89e9..dcc203d56d08a9f8a3ae215555175d7ac3af8bb3 100644 (file)
@@ -1456,6 +1456,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index d62946108a328d9eeb41a6b402afe4fafef701f0..0a31a7f35a3daf977745ee88548c9c1d6b73f7fb 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index d62946108a328d9eeb41a6b402afe4fafef701f0..0a31a7f35a3daf977745ee88548c9c1d6b73f7fb 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index e8083d0af5838f46db8c46eb15c0be335f74027c..5b1ad5c48463580a5b821135922135ba4b95077a 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 67a4cc555ef10610bdf59b44af9da1032cd09d01..da5e21bd0ac113509366bf370b778258f043c991 100644 (file)
@@ -1338,6 +1338,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index d62946108a328d9eeb41a6b402afe4fafef701f0..0a31a7f35a3daf977745ee88548c9c1d6b73f7fb 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 5875a5c80cd3214d3e915f1b4f616c35888d3852..968c41a8bdb9a7cd1b59b767a720734079fed023 100644 (file)
@@ -994,6 +994,7 @@ GLIBC_2.43 j1f F
 GLIBC_2.43 jnf F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 624eff1cafd7677a7aeb9f6a8e8914fce3b88a4a..c13265d57973cfabec2a7a59f271542cf6fe1edb 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 624eff1cafd7677a7aeb9f6a8e8914fce3b88a4a..c13265d57973cfabec2a7a59f271542cf6fe1edb 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 8502e66e3e73fd5c0f8e7007255ab88e9dfca7c5..b2bbf3438ca2bc3523754b131ab4e420fe01eb6e 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index fc20a8e42ea74ce3f9109e27fb0dfbf2d034ed11..ce012e3a2405efd13f83716c66d0de4a18562c78 100644 (file)
@@ -1297,6 +1297,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index f13ccd8a69934c953d05a24bd136b4617ee0f5e0..1815b3046155f070ae0d71aff0e824f8102050c9 100644 (file)
@@ -1109,6 +1109,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 254e25106a52b095f9061c43628e7b0add7d8b27..83c85cc5b4642ad5610cb9714d40539203b78b6f 100644 (file)
@@ -1108,6 +1108,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 8a8992d3243d6acd31b56b12d93e1413a47d916e..fff8c29909c6e2cb62b51bbac43a2788405217b7 100644 (file)
@@ -1102,6 +1102,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index cb4690018764b4ee2ac2790122a134293a9ce04e..89fb06eace938cd113db6726a49b9dc1b23eedb9 100644 (file)
@@ -1486,6 +1486,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 721e0c4bc51fe7361ba7ab436ff1aed8998e9e76..7f5d34298721e4e97419ca1b0e0fd68a0405a361 100644 (file)
@@ -1400,6 +1400,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index fedb41284a4a7ea5c06c5b93b9df0ffa6f453c94..7b9734458278b54b187dccb1040d93048cfe9153 100644 (file)
@@ -1400,6 +1400,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 312075b479c6c4df2b25ac3bca491f3bf8b305a5..9cea7f87a5e0afda6e3e1d9162256df6bb149d6f 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 312075b479c6c4df2b25ac3bca491f3bf8b305a5..9cea7f87a5e0afda6e3e1d9162256df6bb149d6f 100644 (file)
@@ -962,6 +962,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 192349cbf34abf949651f8b3eebec5a8c399f9d5..edd6cce2264ff7c4d5383054c1766a7753b5f23a 100644 (file)
@@ -1407,6 +1407,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 03f14432d612a2bf2b5072bdbfdd689a42c7ab71..201004c62cb9ae20b16b4e7552bb19ebada3062b 100644 (file)
@@ -1297,6 +1297,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index 8e08ac5e1821487f4445ff82b114244d182ceb70..4d9e27cb15aeaac637cb4256b5ee59418b8b2d5a 100644 (file)
@@ -1330,6 +1330,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F
index be5cd7c8a153c0220f2d9460800599eefb629cff..a411d376eae5f153c4679f3e217074d9640ac1d0 100644 (file)
@@ -1330,6 +1330,7 @@ GLIBC_2.43 log10f F
 GLIBC_2.43 remainder F
 GLIBC_2.43 remainderf F
 GLIBC_2.43 sinhf F
+GLIBC_2.43 sqrtf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
 GLIBC_2.43 ynf F