From: Adhemerval Zanella Date: Wed, 8 Oct 2025 13:55:20 +0000 (-0300) Subject: math: Remove the SVID error handling wrapper from y1/j1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8d4815e6d702691f6f1a0a475d69bb53995c7375;p=thirdparty%2Fglibc.git math: Remove the SVID error handling wrapper from y1/j1 Tested on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Wilco Dijkstra --- diff --git a/math/Versions b/math/Versions index c2139bcedd..fdd0c56328 100644 --- a/math/Versions +++ b/math/Versions @@ -694,7 +694,9 @@ libm { atanhf; coshf; j0f; + j1f; log10f; y0f; + y1f; } } diff --git a/math/w_j1f_compat.c b/math/w_j1f_compat.c index a226d2fcf0..496b466294 100644 --- a/math/w_j1f_compat.c +++ b/math/w_j1f_compat.c @@ -22,10 +22,10 @@ #include -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_43) /* wrapper j1f */ float -__j1f (float x) +__j1f_svid (float x) { if (__builtin_expect (isgreater (fabsf (x), AS_FLOAT_CONSTANT (X_TLOSS)), 0) @@ -35,12 +35,12 @@ __j1f (float x) return __ieee754_j1f (x); } -libm_alias_float (__j1, j1) +compat_symbol (libm, __j1f_svid, j1f, GLIBC_2_0); /* wrapper y1f */ float -__y1f (float x) +__y1f_svid (float x) { if (__builtin_expect (islessequal (x, 0.0f) || isgreater (x, AS_FLOAT_CONSTANT (X_TLOSS)), 0) @@ -65,5 +65,5 @@ __y1f (float x) return __ieee754_y1f (x); } -libm_alias_float (__y1, y1) +compat_symbol (libm, __y1f_svid, y1f, GLIBC_2_0); #endif diff --git a/sysdeps/ieee754/flt-32/e_j1f.c b/sysdeps/ieee754/flt-32/e_j1f.c index 52d5281495..191f7a1715 100644 --- a/sysdeps/ieee754/flt-32/e_j1f.c +++ b/sysdeps/ieee754/flt-32/e_j1f.c @@ -20,7 +20,10 @@ #include #include #include +#include +#include #include +#include "math_config.h" static float ponef(float), qonef(float); @@ -260,7 +263,7 @@ j1f_near_root (float x, float z) } float -__ieee754_j1f(float x) +__j1f(float x) { float z, s,c,ss,cc,r,u,v,y; int32_t hx,ix; @@ -317,6 +320,13 @@ __ieee754_j1f(float x) r *= x; return(x*(float)0.5+r/s); } +strong_alias (__j1f, __ieee754_j1f) +#if LIBM_SVID_COMPAT +versioned_symbol (libm, __j1f, j1f, GLIBC_2_43); +libm_alias_float_other (__j1, j1) +#else +libm_alias_float (__j1, j1) +#endif libm_alias_finite (__ieee754_j1f, __j1f) static const float U0[5] = { @@ -549,7 +559,7 @@ y1f_near_root (float x, float z) } float -__ieee754_y1f(float x) +__y1f(float x) { float z, s,c,ss,cc,u,v; int32_t hx,ix; @@ -557,10 +567,15 @@ __ieee754_y1f(float x) GET_FLOAT_WORD(hx,x); ix = 0x7fffffff&hx; /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */ - if(__builtin_expect(ix>=0x7f800000, 0)) return one/(x+x*x); - if(__builtin_expect(ix==0, 0)) - return -1/zero; /* -inf and divide by zero exception. */ - if(__builtin_expect(hx<0, 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 >= 0x3fe0dfbc) { /* |x| >= 0x1.c1bf78p+0 */ SET_RESTORE_ROUNDF (FE_TONEAREST); __sincosf (x, &s, &c); @@ -611,6 +626,13 @@ __ieee754_y1f(float x) v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x)); } +strong_alias (__y1f, __ieee754_y1f) +#if LIBM_SVID_COMPAT +versioned_symbol (libm, __y1f, y1f, GLIBC_2_43); +libm_alias_float_other (__y1, y1) +#else +libm_alias_float (__y1, y1) +#endif libm_alias_finite (__ieee754_y1f, __y1f) /* For x >= 8, the asymptotic expansion of pone is diff --git a/sysdeps/ieee754/flt-32/w_j1f.c b/sysdeps/ieee754/flt-32/w_j1f.c new file mode 100644 index 0000000000..db3355f598 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_j1f.c @@ -0,0 +1 @@ +/* Not needed */ diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index 0cfc73ddbb..683023b629 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1325,5 +1325,7 @@ GLIBC_2.43 coshf F GLIBC_2.43 fmod F GLIBC_2.43 fmodf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 20f36bdba5..add348eb5d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1291,5 +1291,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index f06fcbcd31..b427783842 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1450,5 +1450,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index 4a73703e1f..537baa378d 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index 4a73703e1f..537baa378d 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index f5012e94d7..4b9471b051 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index addf021352..ad7656d588 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1332,5 +1332,7 @@ GLIBC_2.43 coshf F GLIBC_2.43 fmod F GLIBC_2.43 fmodf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 4a73703e1f..537baa378d 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index dd11014dc7..1b51801164 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -990,4 +990,6 @@ GLIBC_2.43 acoshf F GLIBC_2.43 fmod F GLIBC_2.43 fmodf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index e58c9b0e31..7b720cb6e3 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index e58c9b0e31..7b720cb6e3 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 5a66542e76..658e4c93ae 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 476b7b54ad..20af08a6c2 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1291,5 +1291,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 0a2d29f2ea..403731b2fa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -1103,5 +1103,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 743040fdb6..3b41629a20 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -1102,5 +1102,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 9f05b8ba75..ab669c7e75 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -1096,5 +1096,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 2b293d118c..3ec3fc08fe 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1480,5 +1480,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index ca1ebaa99b..e5e3a5b27c 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1394,5 +1394,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index b8dced7581..af677b3ff5 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1394,5 +1394,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index 61f4e53e04..90e1b206a8 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index 61f4e53e04..90e1b206a8 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -956,5 +956,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 9b2b5f7499..e3648c5dda 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1401,5 +1401,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 02e2679394..11272f2ad8 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1291,5 +1291,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index cfb52777aa..980412a573 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1324,5 +1324,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index a0872e4bcd..58b935d7fd 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1324,5 +1324,7 @@ GLIBC_2.43 asinf F GLIBC_2.43 atanhf F GLIBC_2.43 coshf F GLIBC_2.43 j0f F +GLIBC_2.43 j1f F GLIBC_2.43 log10f F GLIBC_2.43 y0f F +GLIBC_2.43 y1f F