diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index f434ad422ce..806f58a83af 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,8 @@
 Thu Feb 20 13:57:01 1997  Bob Manson  <manson@charmed.cygnus.com>
 
+	* gdb.base/setvar.exp(test_set): Don't bother printing a PASS/FAIL
+ 	for each individual variable set.
+
 	* gdb.base/exprs.exp(test_expr): Make sure each test gets a unique
 	name.
 
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 5b903495ceb..8ca073567b8 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -164,13 +164,26 @@ proc gdb_run_cmd {args} {
     set spawn_id $gdb_spawn_id
 
     if [target_info exists use_gdb_stub] {
-	send_gdb  "jump *start\n"
+	if [target_info exists gdb,start_symbol] {
+	    set start [target_info gdb,start_symbol];
+	} else {
+	    set start "start";
+	}
+	send_gdb  "jump *$start\n"
 	expect {
 	    -re "Continuing at \[^\r\n\]*\[\r\n\]" {
 		if ![target_info exists gdb_stub] {
 		    return;
 		}
 	    }
+	    -re "No symbol \"start\" in current.*$gdb_prompt $" {
+		send_gdb "jump *_start\n";
+		exp_continue;
+	    }
+	    -re "No symbol \"_start\" in current.*$gdb_prompt $" {
+		perror "Can't find start symbol to run in gdb_run";
+		return;
+	    }
 	    -re "Line.* Jump anyway.*y or n. $" {
 		send_gdb "y\n"
 		exp_continue;
@@ -848,6 +861,16 @@ proc gdb_continue { function } {
     return [gdb_test "continue" ".*Breakpoint $decimal, $function .*" "continue to $function"];
 }
 
+proc gdb_init { args } {
+    if { [llength $args] > 0 } {
+	global pf_prefix
+
+	set file [lindex $args 0];
+
+	set pf_prefix "[file tail [file dirname $file]]/[file tail $file]:";
+    }
+}
+
 proc gdb_finish { } {
     gdb_exit;
 }