diff --git a/math/Versions b/math/Versions index fef7a08c3b..759b5fac7f 100644 --- a/math/Versions +++ b/math/Versions @@ -631,4 +631,8 @@ libm { # No SVID compatible error handling. hypotf; hypot; } + GLIBC_2.38 { + # No SVID compatible error handling. + fmod; fmodf; + } } diff --git a/math/w_fmod_compat.c b/math/w_fmod_compat.c index c6947f3042..aef98885a3 100644 --- a/math/w_fmod_compat.c +++ b/math/w_fmod_compat.c @@ -20,10 +20,10 @@ #include #include -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_38) /* wrapper fmod */ double -__fmod (double x, double y) +__fmod_compat (double x, double y) { if (__builtin_expect (isinf (x) || y == 0.0, 0) && _LIB_VERSION != _IEEE_ && !isnan (y) && !isnan (x)) @@ -32,5 +32,12 @@ __fmod (double x, double y) return __ieee754_fmod (x, y); } -libm_alias_double (__fmod, fmod) +compat_symbol (libm, __fmod_compat, fmod, GLIBC_2_0); +# ifdef NO_LONG_DOUBLE +weak_alias (__fmod_compat, fmodl) +# endif +# ifdef LONG_DOUBLE_COMPAT +LONG_DOUBLE_COMPAT_CHOOSE_libm_fmodl ( + compat_symbol (libm, __fmod_compat, fmodl, FIRST_VERSION_libm_fmodl), ); +# endif #endif diff --git a/math/w_fmodf_compat.c b/math/w_fmodf_compat.c index 5025b06684..55823961f4 100644 --- a/math/w_fmodf_compat.c +++ b/math/w_fmodf_compat.c @@ -20,10 +20,10 @@ #include #include -#if LIBM_SVID_COMPAT +#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_38) /* wrapper fmodf */ float -__fmodf (float x, float y) +__fmod_compatf (float x, float y) { if (__builtin_expect (isinf (x) || y == 0.0f, 0) && _LIB_VERSION != _IEEE_ && !isnan (y) && !isnan (x)) @@ -32,5 +32,5 @@ __fmodf (float x, float y) return __ieee754_fmodf (x, y); } -libm_alias_float (__fmod, fmod) +compat_symbol (libm, __fmod_compatf, fmodf, GLIBC_2_0); #endif diff --git a/sysdeps/i386/fpu/w_fmod_compat.c b/sysdeps/i386/fpu/w_fmod_compat.c new file mode 100644 index 0000000000..5ac9995ffd --- /dev/null +++ b/sysdeps/i386/fpu/w_fmod_compat.c @@ -0,0 +1,14 @@ +/* i386 provides an optimized __ieee752_fmod. */ +#include +#ifdef SHARED +# undef SHLIB_COMPAT +# define SHLIB_COMPAT(a, b, c) 1 +# undef LIBM_SVID_COMPAT +# define LIBM_SVID_COMPAT 1 +# undef compat_symbol +# define compat_symbol(a, b, c, d) +#endif +#include +#ifdef SHARED +libm_alias_double (__fmod_compat, fmod) +#endif diff --git a/sysdeps/i386/fpu/w_fmodf_compat.c b/sysdeps/i386/fpu/w_fmodf_compat.c new file mode 100644 index 0000000000..cc417e07d3 --- /dev/null +++ b/sysdeps/i386/fpu/w_fmodf_compat.c @@ -0,0 +1,14 @@ +/* i386 provides an optimized __ieee752_fmodf. */ +#include +#ifdef SHARED +# undef SHLIB_COMPAT +# define SHLIB_COMPAT(a, b, c) 1 +# undef LIBM_SVID_COMPAT +# define LIBM_SVID_COMPAT 1 +# undef compat_symbol +# define compat_symbol(a, b, c, d) +#endif +#include +#ifdef SHARED +libm_alias_float (__fmod_compat, fmod) +#endif diff --git a/sysdeps/ieee754/dbl-64/e_fmod.c b/sysdeps/ieee754/dbl-64/e_fmod.c index e661ca1ff8..caae4e47e2 100644 --- a/sysdeps/ieee754/dbl-64/e_fmod.c +++ b/sysdeps/ieee754/dbl-64/e_fmod.c @@ -16,7 +16,9 @@ License along with the GNU C Library; if not, see . */ +#include #include +#include #include #include "math_config.h" @@ -55,7 +57,7 @@ } */ double -__ieee754_fmod (double x, double y) +__fmod (double x, double y) { uint64_t hx = asuint64 (x); uint64_t hy = asuint64 (y); @@ -67,11 +69,16 @@ __ieee754_fmod (double x, double y) /* Special cases: - If x or y is a Nan, NaN is returned. - - If x is an inifinity, a NaN is returned. + - If x is an inifinity, a NaN is returned and EDOM is set. - If y is zero, Nan is returned. - If x is +0/-0, and y is not zero, +0/-0 is returned. */ - if (__glibc_unlikely (hy == 0 || hx >= EXPONENT_MASK || hy > EXPONENT_MASK)) - return (x * y) / (x * y); + if (__glibc_unlikely (hy == 0 + || hx >= EXPONENT_MASK || hy > EXPONENT_MASK)) + { + if (is_nan (hx) || is_nan (hy)) + return (x * y) / (x * y); + return __math_edom ((x * y) / (x * y)); + } if (__glibc_unlikely (hx <= hy)) { @@ -153,4 +160,11 @@ __ieee754_fmod (double x, double y) return make_double (mx, ey, sx); } +strong_alias (__fmod, __ieee754_fmod) libm_alias_finite (__ieee754_fmod, __fmod) +#if LIBM_SVID_COMPAT +versioned_symbol (libm, __fmod, fmod, GLIBC_2_38); +libm_alias_double_other (__fmod, fmod) +#else +libm_alias_double (__fmod, fmod) +#endif diff --git a/sysdeps/ieee754/dbl-64/math_config.h b/sysdeps/ieee754/dbl-64/math_config.h index 2049cea3f7..499ca7591b 100644 --- a/sysdeps/ieee754/dbl-64/math_config.h +++ b/sysdeps/ieee754/dbl-64/math_config.h @@ -170,6 +170,9 @@ attribute_hidden double __math_invalid (double); /* Error handling using output checking, only for errno setting. */ +/* Check if the result generated a demain error. */ +attribute_hidden double __math_edom (double x); + /* Check if the result overflowed to infinity. */ attribute_hidden double __math_check_oflow (double); /* Check if the result underflowed to 0. */ diff --git a/sysdeps/ieee754/dbl-64/math_err.c b/sysdeps/ieee754/dbl-64/math_err.c index 5f5f965d3e..377a4caad2 100644 --- a/sysdeps/ieee754/dbl-64/math_err.c +++ b/sysdeps/ieee754/dbl-64/math_err.c @@ -33,6 +33,12 @@ with_errno (double y, int e) #define with_errno(x, e) (x) #endif +attribute_hidden double +__math_edom (double y) +{ + return with_errno (y, EDOM); +} + /* NOINLINE reduces code size. */ NOINLINE static double xflow (uint32_t sign, double y) diff --git a/sysdeps/ieee754/dbl-64/w_fmod.c b/sysdeps/ieee754/dbl-64/w_fmod.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/dbl-64/w_fmod.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/ieee754/flt-32/e_fmodf.c b/sysdeps/ieee754/flt-32/e_fmodf.c index 4482b8c0ac..763900efda 100644 --- a/sysdeps/ieee754/flt-32/e_fmodf.c +++ b/sysdeps/ieee754/flt-32/e_fmodf.c @@ -17,6 +17,8 @@ . */ #include +#include +#include #include #include "math_config.h" @@ -55,7 +57,7 @@ } */ float -__ieee754_fmodf (float x, float y) +__fmodf (float x, float y) { uint32_t hx = asuint (x); uint32_t hy = asuint (y); @@ -70,8 +72,13 @@ __ieee754_fmodf (float x, float y) - If x is an inifinity, a NaN is returned. - If y is zero, Nan is returned. - If x is +0/-0, and y is not zero, +0/-0 is returned. */ - if (__glibc_unlikely (hy == 0 || hx >= EXPONENT_MASK || hy > EXPONENT_MASK)) - return (x * y) / (x * y); + if (__glibc_unlikely (hy == 0 + || hx >= EXPONENT_MASK || hy > EXPONENT_MASK)) + { + if (is_nan (hx) || is_nan (hy)) + return (x * y) / (x * y); + return __math_edomf ((x * y) / (x * y)); + } if (__glibc_unlikely (hx <= hy)) { @@ -152,4 +159,11 @@ __ieee754_fmodf (float x, float y) return make_float (mx, ey, sx); } +strong_alias (__fmodf, __ieee754_fmodf) +#if LIBM_SVID_COMPAT +versioned_symbol (libm, __fmodf, fmodf, GLIBC_2_38); +libm_alias_float_other (__fmod, fmod) +#else +libm_alias_float (__fmod, fmod) +#endif libm_alias_finite (__ieee754_fmodf, __fmodf) diff --git a/sysdeps/ieee754/flt-32/math_config.h b/sysdeps/ieee754/flt-32/math_config.h index 829430ea28..a7fb332767 100644 --- a/sysdeps/ieee754/flt-32/math_config.h +++ b/sysdeps/ieee754/flt-32/math_config.h @@ -158,6 +158,7 @@ attribute_hidden float __math_uflowf (uint32_t); attribute_hidden float __math_may_uflowf (uint32_t); attribute_hidden float __math_divzerof (uint32_t); attribute_hidden float __math_invalidf (float); +attribute_hidden float __math_edomf (float x); /* Shared between expf, exp2f, exp10f, and powf. */ #define EXP2F_TABLE_BITS 5 diff --git a/sysdeps/ieee754/flt-32/math_errf.c b/sysdeps/ieee754/flt-32/math_errf.c index 0389ce0a81..7245ab8d96 100644 --- a/sysdeps/ieee754/flt-32/math_errf.c +++ b/sysdeps/ieee754/flt-32/math_errf.c @@ -31,6 +31,12 @@ with_errnof (float y, int e) # define with_errnof(x, e) (x) #endif +attribute_hidden float +__math_edomf (float y) +{ + return with_errnof (y, EDOM); +} + /* NOINLINE prevents fenv semantics breaking optimizations. */ NOINLINE static float xflowf (uint32_t sign, float y) diff --git a/sysdeps/ieee754/flt-32/w_fmodf.c b/sysdeps/ieee754/flt-32/w_fmodf.c new file mode 100644 index 0000000000..1cc8931700 --- /dev/null +++ b/sysdeps/ieee754/flt-32/w_fmodf.c @@ -0,0 +1 @@ +/* Not needed. */ diff --git a/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c b/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c new file mode 100644 index 0000000000..527d4fbed2 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_fmod_compat.c @@ -0,0 +1,14 @@ +/* m68k provides an optimized __ieee752_fmod. */ +#include +#ifdef SHARED +# undef SHLIB_COMPAT +# define SHLIB_COMPAT(a, b, c) 1 +# undef LIBM_SVID_COMPAT +# define LIBM_SVID_COMPAT 1 +# undef compat_symbol +# define compat_symbol(a, b, c, d) +#endif +#include +#ifdef SHARED +libm_alias_double (__fmod_compat, fmod) +#endif diff --git a/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c b/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c new file mode 100644 index 0000000000..5043586b91 --- /dev/null +++ b/sysdeps/m68k/m680x0/fpu/w_fmodf_compat.c @@ -0,0 +1,14 @@ +/* m68k provides an optimized __ieee752_fmodf. */ +#include +#ifdef SHARED +# undef SHLIB_COMPAT +# define SHLIB_COMPAT(a, b, c) 1 +# undef LIBM_SVID_COMPAT +# define LIBM_SVID_COMPAT 1 +# undef compat_symbol +# define compat_symbol(a, b, c, d) +#endif +#include +#ifdef SHARED +libm_alias_float (__fmod_compat, fmod) +#endif diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index c2e3c6453e..e3924c3499 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1146,3 +1146,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 4f85b6180f..066dd1a6b3 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1203,6 +1203,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index 36190add84..4adfed072b 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -533,6 +533,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index 36190add84..4adfed072b 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -533,6 +533,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index b5dd4e851f..5c3f47caef 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -844,4 +844,6 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 36190add84..4adfed072b 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -533,6 +533,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index 274ecff630..ea0dbd4b72 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -845,3 +845,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index 274ecff630..ea0dbd4b72 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -845,3 +845,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 08b902118d..7c94a8db70 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -844,4 +844,6 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 09bb3bd75b..0d08245adf 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1146,3 +1146,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 11abbb5668..a3b776fece 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -845,3 +845,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 1688809c36..c696215739 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -890,6 +890,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index e880cebd78..a5ce9b1997 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -889,6 +889,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 033385dfc1..8e41056d0d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -883,6 +883,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 7923d428bc..939f29a0f2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1318,3 +1318,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 9a84163089..4baefb1217 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1147,6 +1147,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 174bde4fa0..debb767575 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1147,6 +1147,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index 1e1324d667..fb94386fff 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -844,4 +844,6 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index 1e1324d667..fb94386fff 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -844,4 +844,6 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F 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 217e6eff7f..2fdb5ff145 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1154,6 +1154,8 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 6b53b0c59f..02d4c3a754 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1146,3 +1146,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index dbefbc3a1a..cc8be5b510 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1179,3 +1179,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 8001d0f219..fda4df2653 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1179,3 +1179,5 @@ GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.35 hypot F GLIBC_2.35 hypotf F +GLIBC_2.38 fmod F +GLIBC_2.38 fmodf F