]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Remove the SVID error handling wrapper from y0/j0
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 8 Oct 2025 13:55:19 +0000 (10:55 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 30 Oct 2025 18:41:31 +0000 (15:41 -0300)
Tested on x86_64-linux-gnu and i686-linux-gnu.

Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
29 files changed:
math/Versions
math/w_j0f_compat.c
sysdeps/ieee754/flt-32/e_j0f.c
sysdeps/ieee754/flt-32/w_j0f.c [new file with mode: 0644]
sysdeps/mach/hurd/i386/libm.abilist
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 642bb9242e24d6de6101ddfb6228580a12f5ed6d..c2139bcedd9b60679296206f69913e70c292b622 100644 (file)
@@ -693,6 +693,8 @@ libm {
     asinf;
     atanhf;
     coshf;
+    j0f;
     log10f;
+    y0f;
   }
 }
index d1e173f7c71c0561ec7b6ddb5150a51442ca9180..287ccb6c54262d84c1a8111d92e3a532c0b0404e 100644 (file)
 #include <math_private.h>
 #include <math-svid-compat.h>
 #include <libm-alias-float.h>
+#include <shlib-compat.h>
 
 
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_43)
 /* wrapper j0f */
 float
-__j0f (float x)
+__j0f_svid (float x)
 {
   if (__builtin_expect (isgreater (fabsf (x),
                                   AS_FLOAT_CONSTANT (X_TLOSS)), 0)
@@ -35,12 +36,12 @@ __j0f (float x)
 
   return __ieee754_j0f (x);
 }
-libm_alias_float (__j0, j0)
+compat_symbol (libm, __j0f_svid, j0f, GLIBC_2_0);
 
 
 /* wrapper y0f */
 float
-__y0f (float x)
+__y0f_svid (float x)
 {
   if (__builtin_expect (islessequal (x, 0.0f)
                         || isgreater (x, AS_FLOAT_CONSTANT (X_TLOSS)), 0)
@@ -65,5 +66,5 @@ __y0f (float x)
 
   return __ieee754_y0f (x);
 }
-libm_alias_float (__y0, y0)
+compat_symbol (libm, __y0f_svid, y0f, GLIBC_2_0);
 #endif
index c800acd3cb8a716712c6c9a4ce0c9af414310d7e..9fbc8d3cd26348027f123faecb3c7b550c56de5c 100644 (file)
 #include <math_private.h>
 #include <fenv_private.h>
 #include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
 #include <reduce_aux.h>
+#include "math_config.h"
 
 static float pzerof(float), qzerof(float);
 
@@ -251,7 +254,7 @@ j0f_near_root (float x, float z)
 }
 
 float
-__ieee754_j0f(float x)
+__j0f(float x)
 {
        float z, s,c,ss,cc,r,u,v;
        int32_t hx,ix;
@@ -306,8 +309,16 @@ __ieee754_j0f(float x)
            return((one+u)*(one-u)+z*(r/s));
        }
 }
+strong_alias (__j0f, __ieee754_j0f)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __j0f, j0f, GLIBC_2_43);
+libm_alias_float_other (__j0, j0)
+#else
+libm_alias_float (__j0, j0)
+#endif
 libm_alias_finite (__ieee754_j0f, __j0f)
 
+
 static const float
 u00  = -7.3804296553e-02, /* 0xbd9726b5 */
 u01  =  1.7666645348e-01, /* 0x3e34e80d */
@@ -535,7 +546,7 @@ y0f_near_root (float x, float z)
 }
 
 float
-__ieee754_y0f(float x)
+__y0f(float x)
 {
        float z, s,c,ss,cc,u,v;
        int32_t hx,ix;
@@ -543,9 +554,15 @@ __ieee754_y0f(float x)
        GET_FLOAT_WORD(hx,x);
        ix = 0x7fffffff&hx;
     /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0, y0(0) is -inf.  */
-       if(ix>=0x7f800000) return  one/(x+x*x);
-       if(ix==0) return -1/zero; /* -inf and divide by zero exception.  */
-       if(hx<0) return zero/(zero*x);
+       if(ix>=0x7f800000)
+         {
+           if (hx==0xFF800000)
+             return __math_invalidf (1);
+           else
+             return one/(x+x*x);
+         }
+       if(ix==0) return __math_divzerof (1); /* -inf and divide by zero exception.  */
+       if(hx<0) return __math_invalidf (x);
        if(ix >= 0x40000000 || (0x3f5340ed <= ix && ix <= 0x3f77b5e5)) {
           /* |x| >= 2.0 or
             0x1.a681dap-1 <= |x| <= 0x1.ef6bcap-1 (around 1st zero) */
@@ -597,6 +614,13 @@ __ieee754_y0f(float x)
        v = one+z*(v01+z*(v02+z*(v03+z*v04)));
        return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x)));
 }
+strong_alias (__y0f, __ieee754_y0f)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __y0f, y0f, GLIBC_2_43);
+libm_alias_float_other (__y0, y0)
+#else
+libm_alias_float (__y0, y0)
+#endif
 libm_alias_finite (__ieee754_y0f, __y0f)
 
 /* The asymptotic expansion of pzero is
diff --git a/sysdeps/ieee754/flt-32/w_j0f.c b/sysdeps/ieee754/flt-32/w_j0f.c
new file mode 100644 (file)
index 0000000..db3355f
--- /dev/null
@@ -0,0 +1 @@
+/* Not needed */
index 83f26be8681e01b56e24c7a5547bb7cc12330711..0cfc73ddbba8db7ef2368ecfd6f1ce1fb2958f0e 100644 (file)
@@ -1324,4 +1324,6 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 70849920aed05fce4bfe2bcb1d132eaa5389e38d..20f36bdba56f0157a92a4e2de0c2f3bb73d5c859 100644 (file)
@@ -1290,4 +1290,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index b247478dfc25580c4f434f00a54e4d8d085df453..f06fcbcd3190e3690c2b42a63b739737f0190917 100644 (file)
@@ -1449,4 +1449,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index b643a93fa66fae4295b26f8aae9e0e2c3ab89681..4a73703e1fe7052b50630ae3436d7d55a27b379c 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index b643a93fa66fae4295b26f8aae9e0e2c3ab89681..4a73703e1fe7052b50630ae3436d7d55a27b379c 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 8a76be6b578418147545c0cc8ceb4ee73bc78951..f5012e94d720a51802a8878035b8f8c402b075ce 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index b4f7e7055e59224caae8cbe1fd6e56cae1cdd8b9..addf0213528ac9946f8c80dea67ad8be80743f52 100644 (file)
@@ -1331,4 +1331,6 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index b643a93fa66fae4295b26f8aae9e0e2c3ab89681..4a73703e1fe7052b50630ae3436d7d55a27b379c 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index e6ad98649cea106b2bcac8e23a69515159b7e947..dd11014dc70b8451a7f292e6793ce0d60d5610a7 100644 (file)
@@ -989,3 +989,5 @@ GLIBC_2.42 rsqrtl F
 GLIBC_2.43 acoshf F
 GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
+GLIBC_2.43 j0f F
+GLIBC_2.43 y0f F
index 12e5a9c34f6902712e105bdff25ed1eb59c8e7e1..e58c9b0e3184ead6838862a4dbe161c6edbbdcde 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 12e5a9c34f6902712e105bdff25ed1eb59c8e7e1..e58c9b0e3184ead6838862a4dbe161c6edbbdcde 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index cfa5b5eed0c173d14ea9493e7a684c9bd5300272..5a66542e76695a3e83a31c7a9f7c704506d2f113 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index ec96f01fea091ff5e90309d992103eaaefff580d..476b7b54ad41b793b71196ab8f8e877cb5bc37b8 100644 (file)
@@ -1290,4 +1290,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 73d406afcbf8b1a78711e553dda55953dc94c090..0a2d29f2ead0b364fcf938ddf143ed1ff17d3457 100644 (file)
@@ -1102,4 +1102,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 89797c73883cae5998f8ab0ca0ffbb158e366f78..743040fdb691c6eaef2f9d8c0bf8d91d4e8735dc 100644 (file)
@@ -1101,4 +1101,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 8e807f26033fd2b10eb67fba6aadee5c2a6718a3..9f05b8ba75769427d4b42ab2f1ca2d52cc3fe4f5 100644 (file)
@@ -1095,4 +1095,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index ecc90e4f71e3565e096ca3e052d6228b95aa9cd9..2b293d118ce4af2c1b354cd4789af4e9f7cdac57 100644 (file)
@@ -1479,4 +1479,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 7b12a6acb2c36fc8411a550aa6cc23026def63e3..ca1ebaa99b0c54064e261ca78023c6ab50a2aa58 100644 (file)
@@ -1393,4 +1393,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index ecaaf1068a2d46c33c796d38c3422cb7d715e313..b8dced75810ece5cfb51a7a29df5f9400f95d6dc 100644 (file)
@@ -1393,4 +1393,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 7500060e07122566439597397e058ff07e73ab1f..61f4e53e040c980d4419ba66baa87e242c4a746e 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 7500060e07122566439597397e058ff07e73ab1f..61f4e53e040c980d4419ba66baa87e242c4a746e 100644 (file)
@@ -955,4 +955,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 441120c8b650dd04a306946ce7f5f40c7881c21f..9b2b5f7499c87032052315b3d5070a493c40fb09 100644 (file)
@@ -1400,4 +1400,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index d27f2727cc27fbd6a8f10e1cfed9befd6820ac81..02e2679394e0311171989aa012e6f35e8de0ddfe 100644 (file)
@@ -1290,4 +1290,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 29224112dafbf288b12cf4eea0cb6cbadf81c173..cfb52777aa1f1d7bedc73a40c08dffcdafe2c19e 100644 (file)
@@ -1323,4 +1323,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F
index 16912793408aaa99a6463dafc44862de765198db..a0872e4bcdc68d14df44f1bc21b2d5db4e377fda 100644 (file)
@@ -1323,4 +1323,6 @@ GLIBC_2.43 acoshf F
 GLIBC_2.43 asinf F
 GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
+GLIBC_2.43 j0f F
 GLIBC_2.43 log10f F
+GLIBC_2.43 y0f F