File gdb-fix-multidictionary.exp-for-gdb-8.2.patch of Package gdb

[gdb] Fix multidictionary.exp for gdb 8.2

---
 gdb/testsuite/gdb.dwarf2/multidictionary.exp |  2 +-
 gdb/testsuite/lib/gdb.exp                    | 25 ++++++++++++++++++++-----
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/gdb/testsuite/gdb.dwarf2/multidictionary.exp b/gdb/testsuite/gdb.dwarf2/multidictionary.exp
index 5588ef2144..9b44035aeb 100644
--- a/gdb/testsuite/gdb.dwarf2/multidictionary.exp
+++ b/gdb/testsuite/gdb.dwarf2/multidictionary.exp
@@ -148,7 +148,7 @@ if {[build_executable $testfile.exp $testfile [list $asm_file $srcfile] {}] \
 
 # We force the DIEs above to be read in via "-readnow".
 gdb_spawn_with_cmdline_opts "-readnow"
-gdb_load $binfile
+gdb_load_no_done $binfile
 
 # All we need to do is check whether GDB is alive.  Without
 # multidictionaries, it will either crash, assert, or throw an
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index aef580b04d..f061af3b6c 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -1485,7 +1485,7 @@ proc default_gdb_exit {} {
 # TODO: gdb.base/sepdebug.exp and gdb.stabs/weird.exp might be able to use
 # this if they can get more information set.
 
-proc gdb_file_cmd { arg } {
+proc gdb_file_cmd_1 { arg done } {
     global gdb_prompt
     global verbose
     global GDB
@@ -1523,17 +1523,17 @@ proc gdb_file_cmd { arg } {
 
     send_gdb "file $arg\n"
     gdb_expect 120 {
-	-re "Reading symbols from.*LZMA support was disabled.*done.*$gdb_prompt $" {
+	-re "Reading symbols from.*LZMA support was disabled.*$done.*$gdb_prompt $" {
 	    verbose "\t\tLoaded $arg into $GDB; .gnu_debugdata found but no LZMA available"
 	    set gdb_file_cmd_debug_info "lzma"
 	    return 0
 	}
-	-re "Reading symbols from.*no debugging symbols found.*done.*$gdb_prompt $" {
+	-re "Reading symbols from.*no debugging symbols found.*$done.*$gdb_prompt $" {
 	    verbose "\t\tLoaded $arg into $GDB with no debugging symbols"
 	    set gdb_file_cmd_debug_info "nodebug"
 	    return 0
 	}
-        -re "Reading symbols from.*done.*$gdb_prompt $" {
+        -re "Reading symbols from.*$done.*$gdb_prompt $" {
             verbose "\t\tLoaded $arg into $GDB"
 	    set gdb_file_cmd_debug_info "debug"
 	    return 0
@@ -1541,7 +1541,7 @@ proc gdb_file_cmd { arg } {
         -re "Load new symbol table from \".*\".*y or n. $" {
             send_gdb "y\n"
             gdb_expect 120 {
-                -re "Reading symbols from.*done.*$gdb_prompt $" {
+                -re "Reading symbols from.*$done.*$gdb_prompt $" {
                     verbose "\t\tLoaded $arg with new symbol table into $GDB"
 		    set gdb_file_cmd_debug_info "debug"
 		    return 0
@@ -1583,6 +1583,14 @@ proc gdb_file_cmd { arg } {
     }
 }
 
+proc gdb_file_cmd { arg } {
+    gdb_file_cmd_1 $arg "done"
+}
+
+proc gdb_file_cmd_no_done { arg } {
+    gdb_file_cmd_1 $arg ""
+}
+
 # Default gdb_spawn procedure.
 
 proc default_gdb_spawn { } {
@@ -4511,6 +4519,13 @@ proc gdb_load { arg } {
     return 0
 }
 
+proc gdb_load_no_done { arg } {
+    if { $arg != "" } {
+	return [gdb_file_cmd_no_done $arg]
+    }
+    return 0
+}
+
 # gdb_reload -- load a file into the target.  Called before "running",
 # either the first time or after already starting the program once,
 # for remote targets.  Most files that override gdb_load should now
openSUSE Build Service is sponsored by