[Bug 2036283] Re: i386 glibc is missing fmod in libm.a
Ariel Machado
2036283 at bugs.launchpad.net
Mon Feb 3 22:39:28 UTC 2025
@schopin sorry to contact you directly, but since you removed the ubuntu-sponsors some time ago and the issue has not had any recent activity since that, I wanted to know if there is any progress in including this fix in the affected Noble version.
Currently this bug is preventing static compilation for i386 in the current LTS version 24.04 (noble) forcing distro downgrades in CI/CD that cross-compile projects for that target.
I would appreciate it if you could give some feedback to let me know that the issue is not staled. Thank you
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to zsh in Ubuntu.
https://bugs.launchpad.net/bugs/2036283
Title:
i386 glibc is missing fmod in libm.a
Status in glibc package in Ubuntu:
Confirmed
Status in zsh package in Ubuntu:
Confirmed
Status in glibc source package in Noble:
Confirmed
Status in zsh source package in Noble:
Confirmed
Bug description:
[Description]
The `libm.a` static library on i386 architecture lacks the math function `fmod`:
(mantic-i386)$ readelf --syms --wide /usr/lib/i386-linux-gnu/libm.a | grep fmod
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodl_compat.o)
File: /usr/lib/i386-linux-gnu/libm.a(w_fmod_compat.o)
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodf_compat.o)
File: /usr/lib/i386-linux-gnu/libm.a(e_fmodl.o)
2: 00000000 23 FUNC GLOBAL DEFAULT 1 __ieee754_fmodl
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodl.o)
4: 00000000 148 FUNC GLOBAL DEFAULT 2 __fmodl
7: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodl
9: 00000000 148 FUNC WEAK DEFAULT 2 fmodf64x
10: 00000000 148 FUNC WEAK DEFAULT 2 fmodl
File: /usr/lib/i386-linux-gnu/libm.a(e_fmod.o)
2: 00000000 23 FUNC GLOBAL DEFAULT 1 __ieee754_fmod
File: /usr/lib/i386-linux-gnu/libm.a(w_fmod.o)
File: /usr/lib/i386-linux-gnu/libm.a(e_fmodf.o)
2: 00000000 23 FUNC GLOBAL DEFAULT 1 __ieee754_fmodf
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodf.o)
File: /usr/lib/i386-linux-gnu/libm.a(e_fmodf128.o)
7: 00000000 3227 FUNC GLOBAL DEFAULT 2 __ieee754_fmodf128
13: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodf128
14: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodf128
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodf128.o)
6: 00000000 578 FUNC GLOBAL DEFAULT 2 __fmodf128
10: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodf128
12: 00000000 578 FUNC WEAK DEFAULT 2 fmodf128
[Test Case]
On a noble host install libc6-dev:i386 package and
$ readelf --syms --wide /usr/lib/i386-linux-gnu/libm.a | grep fmod
Without the fix fmod function is not present (see readelf output of
Description).
With the fix fmod fuctions are present:
readelf --syms --wide /usr/lib/i386-linux-gnu/libm.a | grep fmod
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodl_compat.o)
File: /usr/lib/i386-linux-gnu/libm.a(w_fmod_compat.o)
4: 00000000 122 FUNC GLOBAL DEFAULT 2 __fmod
7: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmod
9: 00000000 122 FUNC WEAK DEFAULT 2 fmodf32x
10: 00000000 122 FUNC WEAK DEFAULT 2 fmodf64
11: 00000000 122 FUNC WEAK DEFAULT 2 fmod
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodf_compat.o)
4: 00000000 114 FUNC GLOBAL DEFAULT 2 __fmodf
7: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodf
9: 00000000 114 FUNC WEAK DEFAULT 2 fmodf32
10: 00000000 114 FUNC WEAK DEFAULT 2 fmodf
File: /usr/lib/i386-linux-gnu/libm.a(e_fmodl.o)
2: 00000000 23 FUNC GLOBAL DEFAULT 1 __ieee754_fmodl
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodl.o)
4: 00000000 148 FUNC GLOBAL DEFAULT 2 __fmodl
7: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodl
9: 00000000 148 FUNC WEAK DEFAULT 2 fmodf64x
10: 00000000 148 FUNC WEAK DEFAULT 2 fmodl
File: /usr/lib/i386-linux-gnu/libm.a(e_fmod.o)
2: 00000000 19 FUNC GLOBAL DEFAULT 1 __ieee754_fmod
File: /usr/lib/i386-linux-gnu/libm.a(w_fmod.o)
File: /usr/lib/i386-linux-gnu/libm.a(e_fmodf.o)
2: 00000000 19 FUNC GLOBAL DEFAULT 1 __ieee754_fmodf
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodf.o)
File: /usr/lib/i386-linux-gnu/libm.a(e_fmodf128.o)
7: 00000000 3227 FUNC GLOBAL DEFAULT 2 __ieee754_fmodf128
13: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodf128
14: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodf128
File: /usr/lib/i386-linux-gnu/libm.a(w_fmodf128.o)
6: 00000000 578 FUNC GLOBAL DEFAULT 2 __fmodf128
10: 00000000 0 NOTYPE GLOBAL DEFAULT UND __ieee754_fmodf128
12: 00000000 578 FUNC WEAK DEFAULT 2 fmodf128
[Regression Potential]
The patch adds the symbols fmod/fmodf for static builds for i386 and m68k.
The changes are arch specific, so any regression would affect i386 and m68k for the static libm.a.
[Other]
Fix : https://sourceware.org/git/?p=glibc.git;a=commit;h=0b716305dfb48c2d13ed4f7d06c082b90c1d226f
Affected Ubuntu releases : Noble
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/2036283/+subscriptions
More information about the foundations-bugs
mailing list