]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Remove the SVID error handling wrapper from yn/jn
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 8 Oct 2025 13:55:21 +0000 (10:55 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 30 Oct 2025 18:41:35 +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_jnf_compat.c
sysdeps/ieee754/flt-32/e_jnf.c
sysdeps/ieee754/flt-32/w_jnf.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 fdd0c56328075e23c155b2df441ecd317b35c66f..d7466238733ab3679312e9e516c471dee88b2215 100644 (file)
@@ -695,8 +695,10 @@ libm {
     coshf;
     j0f;
     j1f;
+    jnf;
     log10f;
     y0f;
     y1f;
+    ynf;
   }
 }
index 4732d96bd5aa096f0548e6d226021528f3f93a98..685d8128e726f54877e18c2eda22630a91a097c8 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 jnf */
 float
-__jnf (int n, float x)
+__jnf_svid (int n, float x)
 {
   if (__builtin_expect (isgreater (fabsf (x),
                                   AS_FLOAT_CONSTANT (X_TLOSS)), 0)
@@ -35,12 +35,12 @@ __jnf (int n, float x)
 
   return __ieee754_jnf (n, x);
 }
-libm_alias_float (__jn, jn)
+compat_symbol (libm, __jnf_svid, jnf, GLIBC_2_0);
 
 
 /* wrapper ynf */
 float
-__ynf (int n, float x)
+__ynf_svid (int n, float x)
 {
   if (__builtin_expect (islessequal (x, 0.0f)
                        || isgreater (x, AS_FLOAT_CONSTANT (X_TLOSS)), 0)
@@ -65,5 +65,5 @@ __ynf (int n, float x)
 
   return __ieee754_ynf (n, x);
 }
-libm_alias_float (__yn, yn)
+compat_symbol (libm, __ynf_svid, ynf, GLIBC_2_0);
 #endif
index 9d3e0aaaa3be3d25bcfc6fcfb168fc5d440c605c..7a6ad96356ae542b6b2ea2560b32ca62c71bb3b0 100644 (file)
@@ -20,6 +20,9 @@
 #include <fenv_private.h>
 #include <math-underflow.h>
 #include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
+#include "math_config.h"
 
 static const float
 two   =  2.0000000000e+00, /* 0x40000000 */
@@ -28,7 +31,7 @@ one   =  1.0000000000e+00; /* 0x3F800000 */
 static const float zero  =  0.0000000000e+00;
 
 float
-__ieee754_jnf(int n, float x)
+__jnf(int n, float x)
 {
     float ret;
     {
@@ -182,10 +185,17 @@ __ieee754_jnf(int n, float x)
        math_check_force_underflow (ret);
     return ret;
 }
+strong_alias (__jnf, __ieee754_jnf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __jnf, jnf, GLIBC_2_43);
+libm_alias_float_other (__jn, jn)
+#else
+libm_alias_float (__jn, jn)
+#endif
 libm_alias_finite (__ieee754_jnf, __jnf)
 
 float
-__ieee754_ynf(int n, float x)
+__ynf(int n, float x)
 {
     float ret;
     {
@@ -197,16 +207,21 @@ __ieee754_ynf(int n, float x)
        GET_FLOAT_WORD(hx,x);
        ix = 0x7fffffff&hx;
     /* if Y(n,NaN) is NaN */
-       if(__builtin_expect(ix>0x7f800000, 0)) return x+x;
+       if(ix>=0x7f800000)
+         {
+           if (hx==0xFF800000)
+             return __math_invalidf (1);
+           return one/(x+x*x);
+         }
        sign = 1;
        if(n<0){
                n = -n;
                sign = 1 - ((n&1)<<1);
        }
        if(n==0) return(__ieee754_y0f(x));
-       if(__builtin_expect(ix==0, 0))
-               return -sign/zero;
-       if(__builtin_expect(hx<0, 0)) return zero/(zero*x);
+       if(ix==0)
+               return __math_divzerof (sign == 1 ? 1 : 0);
+       if(hx<0) return __math_invalidf (x);
        SET_RESTORE_ROUNDF (FE_TONEAREST);
        if(n==1) {
            ret = sign*__ieee754_y1f(x);
@@ -235,4 +250,11 @@ __ieee754_ynf(int n, float x)
        ret = copysignf (FLT_MAX, ret) * FLT_MAX;
     return ret;
 }
+strong_alias (__ynf, __ieee754_ynf)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __ynf, ynf, GLIBC_2_43);
+libm_alias_float_other (__yn, yn)
+#else
+libm_alias_float (__yn, yn)
+#endif
 libm_alias_finite (__ieee754_ynf, __ynf)
diff --git a/sysdeps/ieee754/flt-32/w_jnf.c b/sysdeps/ieee754/flt-32/w_jnf.c
new file mode 100644 (file)
index 0000000..db3355f
--- /dev/null
@@ -0,0 +1 @@
+/* Not needed */
index 683023b6292d644f6784aa9cd37f81161dfe81aa..d365787eee69c1be025051ae3a91858edcc7a282 100644 (file)
@@ -1326,6 +1326,8 @@ GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index add348eb5d053e87b499cb2b70dc69398586e2b6..2feed09372974c2cab85a4edd780101a80903286 100644 (file)
@@ -1292,6 +1292,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index b4277838420fb3de291718166fa6dffd1a7d7715..d5aef83b05ca1d0973c2ca79288c58ea330a22c7 100644 (file)
@@ -1451,6 +1451,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 537baa378dece47f56e1bfb9208306999cc756a4..31705bf7274936dec909225e5ab0dca7f335991a 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 537baa378dece47f56e1bfb9208306999cc756a4..31705bf7274936dec909225e5ab0dca7f335991a 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 4b9471b051355d19caaae4aee44179c7c1a21a64..5dd8edb546155fc7e8853bb5c80f470cd6f59582 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index ad7656d58849713fe727bfeda6dfb41a0addc15f..e7559f7c592a7f467c806bf67acf4d1a67a27ee8 100644 (file)
@@ -1333,6 +1333,8 @@ GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 537baa378dece47f56e1bfb9208306999cc756a4..31705bf7274936dec909225e5ab0dca7f335991a 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 1b518011641e97c7b76160d338470b81d2f72769..e12aa8f541a09519568ed8536910d24cf76196a1 100644 (file)
@@ -991,5 +991,7 @@ GLIBC_2.43 fmod F
 GLIBC_2.43 fmodf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 7b720cb6e35775bcd4b9094a874b5836d373e95b..a950051f651d90417fe7f61c0c2bf75ff41ffea1 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 7b720cb6e35775bcd4b9094a874b5836d373e95b..a950051f651d90417fe7f61c0c2bf75ff41ffea1 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 658e4c93aeec1c72faffd7dd82fd1be57faeab4d..9430555eef08e5d7a029c52dbe1a52c5fee06e1d 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 20af08a6c249240ad154113167ca14d03a755f53..7a53aeb36dafc581bca143350e609f05d35ec895 100644 (file)
@@ -1292,6 +1292,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 403731b2fa04d2397f99b342179b0f5cc1977a0b..133e240209b090180ef11bae754781d5f7c98739 100644 (file)
@@ -1104,6 +1104,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 3b41629a2076e097b305f7ff6c234a4517bc6c55..7395a4b2e6fbdc96edd2e793d602b473a2d4ae3b 100644 (file)
@@ -1103,6 +1103,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index ab669c7e758b5795319c7f5ead2ad2f076705b14..c2762fe9782f3a216acaa3e79220a490e14ee6ea 100644 (file)
@@ -1097,6 +1097,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 3ec3fc08fe2c92432e93f72a7723ed0d207f6260..8acbad450ed8619bfac1b60033afd112880d4bf8 100644 (file)
@@ -1481,6 +1481,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index e5e3a5b27c45b5e6cf00ccc66edeba823f499af3..e3c406590bb29f47f4a478fdc8b94d88dc9ec606 100644 (file)
@@ -1395,6 +1395,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index af677b3ff51ff0b109ce163804e8c13552ec4375..5f61a937bf2900debcaee2d006c1aeb6f2ed7247 100644 (file)
@@ -1395,6 +1395,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 90e1b206a829c8a0aeafbc85bcc585ec2a8fd7fe..afaf39be67ac3968758154dfd2e6c401369bae8c 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 90e1b206a829c8a0aeafbc85bcc585ec2a8fd7fe..afaf39be67ac3968758154dfd2e6c401369bae8c 100644 (file)
@@ -957,6 +957,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index e3648c5ddaba4f699b2c5eeb6a2817f323052150..b2db446b82702427d55283e1971f7163ee673a65 100644 (file)
@@ -1402,6 +1402,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 11272f2ad8d740899f131bf8cc8a81d06eda76ca..c8db2148fb62dcd78b9d8aa0c067480c2cebf99f 100644 (file)
@@ -1292,6 +1292,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 980412a573dfe7ba5ea33afbd98bc86c221ec71e..1e4663f8304ef17dc2d878e831f87d896923c087 100644 (file)
@@ -1325,6 +1325,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F
index 58b935d7fd4aeda8e07496efdc0c287589f411dc..f818987242604477f11c9bdde990580f41f5d587 100644 (file)
@@ -1325,6 +1325,8 @@ GLIBC_2.43 atanhf F
 GLIBC_2.43 coshf F
 GLIBC_2.43 j0f F
 GLIBC_2.43 j1f F
+GLIBC_2.43 jnf F
 GLIBC_2.43 log10f F
 GLIBC_2.43 y0f F
 GLIBC_2.43 y1f F
+GLIBC_2.43 ynf F