+2016-04-08 Simon Marchi <simon.marchi@ericsson.com>
+
+ * gdb.server/solib-list.exp: Remove is_remote check.
+ Pass shlib= to gdb_compile. Don't link shared library with
+ -soname. Call gdb_remote_download instead of gdb_load_shlibs.
+ Run binary filename through "readlink -f" on the target.
+
2016-04-08 Pedro Alves <palves@redhat.com>
* gdb.server/solib-list.exp: Don't use gdb_load. Instead pass the
return
}
-# This test case (currently) does not support remote targets, since it
-# assumes the ELF interpreter can be found on the host system
-if [is_remote target] then {
- return
-}
-
standard_testfile solib-list-main.c
set srclibfile ${testfile}-lib.c
set binlibfile [standard_output_file ${testfile}.so]
-set executable ${testfile}
-set objfile ${binfile}.o
if { [get_compiler_info]
- || [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" "${binlibfile}" [list debug ldflags=-Wl,-soname,${binlibfile}]] != ""
- || [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}] != ""
- || [gdb_compile "${objfile} ${binlibfile}" "${binfile}" executable {}] != "" } {
+ || [gdb_compile_shlib "${srcdir}/${subdir}/${srclibfile}" "${binlibfile}" {debug}] != ""
+ || [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "shlib=${binlibfile}"] != "" } {
untested "could not compile sources"
return -1
}
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
- gdb_load_shlibs ${binfile}
gdb_load_shlibs ${binlibfile}
+ set remote_binfile [gdb_remote_download target $binfile]
+
+ # When testing remote, the file path we receive may be only the file name,
+ # "solib-list". ld-linux doesn't seem to be able to find the file when
+ # passing just the file name, it wants either the absolute path or a
+ # relative path with at least one directory component. Calling readlink on
+ # the target to get the full path will make it happy.
+ set remote_binfile [lindex [remote_exec target "readlink -f $remote_binfile"] 1]
+
# Make sure we're disconnected, in case we're testing with an
# extended-remote board, therefore already connected.
gdb_test "disconnect" ".*"
# argument here, instead of using gdb_load, because we don't want
# to download the interpreter to the target (it's already there)
# or to the test output directory.
- set res [gdbserver_spawn "${interp_system} ${binfile}"]
+ set res [gdbserver_spawn "${interp_system} ${remote_binfile}"]
set gdbserver_protocol [lindex $res 0]
set gdbserver_gdbport [lindex $res 1]