Bug#966173: libc6: __atan2_finite reference in dlopened module no longer found in executable linked to libm
On Fri, Jul 24, 2020 at 10:11:04AM +0100, Simon McVittie wrote:
> The bug (#966150) is that a version of uix86_64.so compiled with a slightly
> older (2020-02-18) toolchain fails to load on an up-to-date sid system, with:
> undefined symbol: __atan2_finite
Because the binary was not linked with -lm, the linker never saw the
real symbol __atan2_finite@GLIBC2_16, so the linke only emitted a reference
to __atan2_finite. At least dpkg-shlibdeps or so should warn about that.
> I've been trying to put together a standalone reproducer that only uses
> libdl and libm, but so far I have not been successful.
Something like that?
| % cat test.c
| void __atan2_finite(void);
| void test(void) {
| __atan2_finite();
| }
| % gcc --shared -o test.so test.c -Wall -W
| % objdump -x test.so | grep atan
| 0000000000000000 *UND* 0000000000000000 __atan2_finite
Regards,
Bastian
--
Men will always be men -- no matter where they are.
-- Harry Mudd, "Mudd's Women", stardate 1329.8
Reply to: