On Mon, 29 Jul 2019, DJ Delorie wrote:
Joseph Myers <joseph@codesourcery.com> writes:
/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)
- it must only copy the path on the right hand side of =>.
There isn't always a path on the RHS of =>
$ ldd hello.x86-64
linux-vdso.so.1 => (0x00007ffc94dc8000)
libc.so.6 => /lib64/libc.so.6 (0x00007f0ce3675000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0ce3a42000)
The Makefile would need to be smart enough to say "if there's a path
after =>, use that" but... do we copy the RHS to RHS inside the
testroot, or the expected LHS once it's inside the testroot?
Maybe we need a filter like this? It just prefers the RHS path if there
is on, else uses the first path available:
- | grep / | sed 's/^[^/]*//' | sed 's/ .*//'` ;\
+ | grep / | sed 's@.*=> /@/@' | sed 's/^[^/]*//' | sed 's/ .*//'` ;\
I can confirm that doing that (for both Makefile lines with such a sed
command) allows the MIPS tests to run in cases where they previously fell
over because the path on the LHS does not exist in the root filesystem.