[glibc/release/2.44/master] m68k: Fix fmod/fmodf infinite recursion (BZ 34508)
Adhemerval Zanella via Glibc-cvs <[email protected]>
| Newsgroups | gmane.comp.lib.glibc.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=afd131806b25715a7617ab757db43f0bb610acbf commit afd131806b25715a7617ab757db43f0bb610acbf Author: Adhemerval Zanella <[email protected]> Date: Wed Aug 12 09:03:17 2026 -0300 m68k: Fix fmod/fmodf infinite recursion (BZ 34508) Commits 6deadd4eb6a and ade9f30ce27 changed m68k fmod to call __m81_u(fmod), instead of the mathimpl.h inline __m81_u(__ieee754_fmod) (that wraps the m68k fmod instruction). This leads to infinite recursion. Tested-by: John Paul Adrian Glaubitz <[email protected]> (cherry picked from commit bb213471bedc177b8efd3178584137fb81cc976a) Diff: --- NEWS | 2 ++ sysdeps/m68k/m680x0/fpu/e_fmod.c | 2 +- sysdeps/m68k/m680x0/fpu/e_fmodf.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index d0ef2d3e9a..697049efd1 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,8 @@ The following bugs are resolved with this release: [34441] math: math: sinh() returns wrong results for some inputs with |x| > 36.736801 [34465] math: math: x86_64 tanh ifunc selection wrong + [34509] libc: [m68k] Regression: Perl locks up after upgrading glibc + to 2.43 Version 2.44 diff --git a/sysdeps/m68k/m680x0/fpu/e_fmod.c b/sysdeps/m68k/m680x0/fpu/e_fmod.c index 9ad6924422..faac7c79e3 100644 --- a/sysdeps/m68k/m680x0/fpu/e_fmod.c +++ b/sysdeps/m68k/m680x0/fpu/e_fmod.c @@ -33,7 +33,7 @@ __fmod (double x, double y) && !is_nan (hx))) return __math_invalid (x); - return __m81_u(fmod)(x, y); + return __m81_u(__ieee754_fmod)(x, y); } strong_alias (__fmod, __ieee754_fmod) libm_alias_finite (__ieee754_fmod, __fmod) diff --git a/sysdeps/m68k/m680x0/fpu/e_fmodf.c b/sysdeps/m68k/m680x0/fpu/e_fmodf.c index a3bd24b71f..98797e0887 100644 --- a/sysdeps/m68k/m680x0/fpu/e_fmodf.c +++ b/sysdeps/m68k/m680x0/fpu/e_fmodf.c @@ -34,7 +34,7 @@ __fmodf (float x, float y) && !is_nan (hx))) return __math_invalidf (x); - return __m81_u(fmodf)(x, y); + return __m81_u(__ieee754_fmodf)(x, y); } strong_alias (__fmodf, __ieee754_fmodf) versioned_symbol (libm, __fmodf, fmodf, GLIBC_2_43);