This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
testroot.pristine creation falls over copying dynamic linker
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Mon, 29 Jul 2019 21:22:43 +0000
- Subject: testroot.pristine creation falls over copying dynamic linker
My attempts to test MIPS for glibc 2.30 have fallen over, for most ABIs,
with errors of the form:
for dso in
`/scratch/jmyers/glibc/src/glibc-mainline/scripts/cross-test-ssh.sh --ssh
/scratch/jmyers/glibc/mbs/q/qemu-ssh qemu env LD_TRACE_LOADED_OBJECTS=1 \
/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/elf/ld.so.1
--library-path
/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/math:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/elf:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/dlfcn:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/nss:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/nis:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/rt:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/resolv:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/mathvec:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/support:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/crypt:/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/nptl
\
/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/testroot.pristine/bin/sh
\
| grep / | sed 's/^[^/]*//' | sed 's/ .*//'` ;\
do \
test -d `dirname
/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/testroot.pristine$dso`
|| \
mkdir -p `dirname
/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/testroot.pristine$dso`
;\
/scratch/jmyers/glibc/src/glibc-mainline/scripts/cross-test-ssh.sh
--ssh /scratch/jmyers/glibc/mbs/q/qemu-ssh qemu cp $dso
/scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/testroot.pristine$dso
;\
done
cp: cannot stat `/lib32/ld.so.1': No such file or directory
The LD_TRACE_LOADED_OBJECTS=1 command in question produces output of the
form:
libc.so.6 => /scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/libc.so.6 (0x772dd000)
/lib32/ld.so.1 => /scratch/jmyers/glibc/mbs/obj/glibc-8-0-mips64-linux-gnu-x86_64-linux-gnu/default/elf/ld.so.1 (0x7747b000)
where indeed /lib32/ld.so.1 does not exist - the root filesystem only has
libraries for one ABI, and this is testing glibc for another ABI.
If the LD_TRACE_LOADED_OBJECTS=1 output is indeed meant to include a full
canonical path to the dynamic linker like that, the testroot.pristine
creation must not then try to copy that path, which may not actually exist
- it must only copy the path on the right hand side of =>.
--
Joseph S. Myers
joseph@codesourcery.com