Prelink.exp troubles

Daniel Jacobowitz drow@false.org
Wed Mar 1 20:05:00 GMT 2006


Hi Alexandre, two problems for you.

First: you're using gdb_expect directly.  I'm sorry I didn't notice
this before.  Don't do that; use gdb_test_multiple instead.  This
will get you the fallback case which includes things like "time out
quickly if you see an unexpected GDB prompt", which in this case
I do; prelink.exp is taking five minutes to fail for me.

Second:

drow@caradoc:/space/fsf/x86-64/commit-gdb/gdb/testsuite/gdb.base% prelink -v -NR prelink.so
Laying out 4 libraries in virtual address space 0000003000000000-0000004000000000
Random base 0x0000003594d00000
Assigned virtual address space slots for libraries:
/lib64/ld-linux-x86-64.so.2 0000003594d00000-0000003594e179e8
/lib/libc.so.6 0000003594f00000-000000359513dc68
prelink.so 0000003595200000-0000003595300928
/lib/libm.so.6 0000003595400000-00000035955851c8
Prelinking /lib/ld-2.3.5.so
/usr/sbin/prelink.bin: Could not set /lib/ld-2.3.5.so owner or mode: Operation not permitted
/usr/sbin/prelink.bin: Could not prelink /lib/libc.so.6 because its dependency /lib64/ld-linux-x86-64.so.2 could not be prelinked
/usr/sbin/prelink.bin: Could not prelink /lib/libm.so.6 because its dependency /lib/libc.so.6 could not be prelinked
/usr/sbin/prelink.bin: Could not prelink prelink.so because its dependency /lib/libm.so.6 could not be prelinked
drow@caradoc:/space/fsf/x86-64/commit-gdb/gdb/testsuite/gdb.base% echo $?
0

So prelink can "succeed" without prelinking the library, and will if
the system you're running on is non-prelinked.  This results in no
warning from GDB, which results in the test timing out and eventually
failing.

We need to either copy the libraries around (complicated, fragile), or
punt if the system ld.so is not prelinked.

Could you take a look at these?  TIA!

-- 
Daniel Jacobowitz
CodeSourcery



More information about the Gdb-patches mailing list