[pushed,5/6,gdb/testsuite] Fix gdb.server/sysroot.exp for remote host

Message ID 20230328154855.32238-6-tdevries@suse.de
State Committed
Headers
Series Fix gdb.server for remote host |

Commit Message

Tom de Vries March 28, 2023, 3:48 p.m. UTC
  Fix test-case gdb.server/sysroot.exp for remote host, by:
- using gdb_remote_download, and
- disabling the "local" scenario for remote host/target, unless
  remote host == remote target.

Tested on x86_64-linux.
---
 gdb/testsuite/gdb.server/sysroot.exp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
  

Patch

diff --git a/gdb/testsuite/gdb.server/sysroot.exp b/gdb/testsuite/gdb.server/sysroot.exp
index ac2a03d0c8f..35f15d6c60e 100644
--- a/gdb/testsuite/gdb.server/sysroot.exp
+++ b/gdb/testsuite/gdb.server/sysroot.exp
@@ -28,11 +28,16 @@  if {[build_executable "failed to prepare" $testfile $srcfile "additional_flags=-
 }
 
 set target_binfile [gdb_remote_download target $binfile]
+set host_binfile [gdb_remote_download host $binfile]
 
 # Run once with sysroot set to the local filesystem and once set to the remote
 # target.
 set modes {}
-if { ![is_remote target] } {
+if { ( ![is_remote host] && ![is_remote target ] )
+     || [board_info host name] == [board_info target name] } {
+    # Local means that gdb and gdbserver look at the same file system.  That's
+    # not the case for remote host or remote target, unless
+    # remote host == remote target.
     lappend modes "local"
 }
 lappend modes "remote"
@@ -44,7 +49,7 @@  foreach_with_prefix sysroot $modes {
 
     if { $sysroot == "local" } {
 	set sysroot_command "/"
-	set reading_symbols "Reading symbols from $binfile..."
+	set reading_symbols "Reading symbols from $host_binfile..."
 	set timeout_factor 1
     } else {
 	set sysroot_command "target:"