debcrafters-packages team mailing list archive
-
debcrafters-packages team
-
Mailing list archive
-
Message #05761
[Bug 2036283] Re: i386 glibc is missing fmod in libm.a
I am reviewing this upload in noble unapproved, and I am skeptical that
the impact here is severe enough to justify an SRU of glibc, especially
in an LTS.
1. It does not appear this is affecting any packages in Ubuntu
2. i386 is a partial architecture on Ubuntu. Where *exactly* is this happening? A CI/CD system was mentioned in comment #8, but I see no further reference
3. Static linking against libma.a on i386 sounds like a very specific or niche thing to do
Hence, the impact here does not seem severe or widespread enough to
justify this SRU. Am I missing something? If so, please elaborate on the
impact and why an SRU is necessary.
Beyond that (in case this *does* move forward), the test plan does not
actually test any static compilation. While checking for these symbols
does make sense as a test, if the *impact* here is about static
compilation, that should also be exercised in the test plan.
** Changed in: glibc (Ubuntu Noble)
Status: In Progress => Incomplete
--
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to glibc in Ubuntu.
https://bugs.launchpad.net/bugs/2036283
Title:
i386 glibc is missing fmod in libm.a
Status in glibc package in Ubuntu:
Fix Released
Status in zsh package in Ubuntu:
Invalid
Status in glibc source package in Noble:
Incomplete
Status in zsh source package in Noble:
Invalid
Bug description:
[Impact]
The `libm.a` static library on i386 architecture lacks the math function `fmod`. This will break static compilation in scenarios where programs expect the function to exist.
(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