This is a clone of https://bugs.gentoo.org/762682 - see more details there. From a build log of one of our users, who is building glibc-2.32 on a system with glibc-2.27 installed: i686-pc-linux-gnu-gcc -march=athlon -pipe -O2 -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--as-needed -shared -s tatic-libgcc -Wl,-O1 -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld-linux.so.2 -B/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/csu/ -Wl,-soname=libmemusage.so -Wl,-z,combreloc -Wl,-z,relro -Wl,-z,now -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl -L/var/t mp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/math -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/elf -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/dlfcn -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux- gnu-nptl/nss -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/nis -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/rt -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/resolv -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/buil d-x86-i686-pc-linux-gnu-nptl/mathvec -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/support -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/crypt -L/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/nptl -Wl,-rpath-link=/var/t mp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/math:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/elf:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/dlf cn:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/nss:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/nis:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/rt:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-g nu-nptl/resolv:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/mathvec:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/support:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/crypt:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/bu ild-x86-i686-pc-linux-gnu-nptl/nptl -o /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/malloc/libmemusage.so -T /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/shlib.lds /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/csu/abi-no te.o -Wl,--whole-archive /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/malloc/libmemusage_pic.a -Wl,--no-whole-archive /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/dlfcn/libdl.so.2 -Wl,--start-group /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x 86-i686-pc-linux-gnu-nptl/libc.so /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/libc_nonshared.a -Wl,--as-needed /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/elf/ld.so -Wl,--no-as-needed -Wl,--end-group /usr/lib/gcc/i686-pc-linux-gnu/8.2.0/../../../../i686-pc-linux-gnu/bin/ld: /lib/librt.so.1: undefined reference to `__clock_settime@GLIBC_PRIVATE' /usr/lib/gcc/i686-pc-linux-gnu/8.2.0/../../../../i686-pc-linux-gnu/bin/ld: /lib/librt.so.1: undefined reference to `__clock_getcpuclockid@GLIBC_PRIVATE' /usr/lib/gcc/i686-pc-linux-gnu/8.2.0/../../../../i686-pc-linux-gnu/bin/ld: /lib/librt.so.1: undefined reference to `__clock_nanosleep@GLIBC_PRIVATE' /usr/lib/gcc/i686-pc-linux-gnu/8.2.0/../../../../i686-pc-linux-gnu/bin/ld: /lib/librt.so.1: undefined reference to `__clock_getres@GLIBC_PRIVATE' collect2: error: ld returned 1 exit status make[2]: *** [../Rules:215: /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/ malloc/memusagestat] Error 1 It looks like the build tries to link libmemusage.so using the *installed* librt.so, not the just built one.
libmemusage is not linked against librt at all.
(In reply to Andreas Schwab from comment #1) > libmemusage is not linked against librt at all. Sorry, my bad for not doublechecking (the fun of parallel build). The error is from linking memusagestat (that's two lines up in the build log): i686-pc-linux-gnu-gcc -march=athlon -pipe -O2 -Wl,-O1 -Wl,--as-needed -Wl,-rpath-link=/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl:/var/tmp/portage/sys-libs/gl ibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/math:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/elf:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i 686-pc-linux-gnu-nptl/dlfcn:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/nss:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/nis:/ var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/rt:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/resolv:/var/tmp/portage/sys-libs/gl ibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/mathvec:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/support:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/buil d-x86-i686-pc-linux-gnu-nptl/crypt:/var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/nptl -pie -Wl,-O1 -nostdlib -nostartfiles -o /var/tmp/portage/sys-libs/glibc-2.3 2-r3/work/build-x86-i686-pc-linux-gnu-nptl/malloc/memusagestat -Wl,-O1 -Wl,--as-needed -Wl,-z,combreloc -Wl,-z,relro /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu- nptl/csu/Scrt1.o /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/csu/crti.o `i686-pc-linux-gnu-gcc -march=athlon -pipe -O2 -Wl,-O1 -Wl,--as-needed --print-file-n ame=crtbeginS.o` /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/malloc/memusagestat.o -lgd -lpng -lz -lm -Wl,-dynamic-linker=/lib/ld-linux.so.2 -Wl,-z,now /var/t mp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/libc.so.6 /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/libc_nonshared.a -Wl,--as-needed /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/elf/ld.so -Wl,--no-as-needed -lgcc `i686-pc-linux-gnu-gcc -march=athlon -pipe -O2 -Wl,-O1 -Wl,--as-needed --prin t-file-name=crtendS.o` /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/csu/crtn.o cd /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/malloc && /usr/lib/gcc/i686-pc-linux-gnu/8.2.0/../../../../i686-pc-linux-gnu/bin/ar cruv libmemusage_pic.a memus age.os
memusagestat isn't linked against librt either.
make[2]: *** [../Rules:215: /var/tmp/portage/sys-libs/glibc-2.32-r3/work/build-x86-i686-pc-linux-gnu-nptl/malloc/memusagestat] Error 1 So why does the memusagestat target fail then?
memusagestat is linked with -lgd -lpng -lz, which are non-glibc libraries; maybe the way ld looks for libraries mentioned in DT_NEEDED in shared libraries it links with (a questionable feature of ld) is resulting in some other system shared library being found. Really it would be better for memusagestat to be a separate package rather than included in the main glibc distribution at all (it could still be released along with glibc if desired), to avoid build complications related to such dependencies.
Does adding the line rt to malloc/Depend fix this issue?
(In reply to Florian Weimer from comment #6) > Does adding the line > > rt > > to malloc/Depend fix this issue? yes it does (I had the same issue on my laptop, under Ubuntu 18.04, with glibc-2.27 as system library, while trying to compile glibc-2.33 or the current git version).
Thanks. Patch posted: https://sourceware.org/pipermail/libc-alpha/2021-February/122934.html
patch applied (commit 9019737).
fixed in commit 9019737.