[committed,gdb/testsuite] Be quiet about missing prelink in solib-overlap.exp

Message ID 20200219072603.GA2019@delia
State New, archived
Headers

Commit Message

Tom de Vries Feb. 19, 2020, 7:26 a.m. UTC
  Hi,

When running gdb.base/solib-overlap.exp, I get:
...
Running src/gdb/testsuite/gdb.base/solib-overlap.exp ...
sh: prelink: command not found

                === gdb Summary ===

nr of untested testcases         1
...

The verbose output on stdout/stderr is due to using system to execute
prelink, which also means that the output is not captured in gdb.log and
gdb.sum.

Fix this by using exec instead of system.

Tested on x86_64-linux, with:
- no prelink installed, and
- a fake prelink installed, using "cp /usr/bin/echo ~/bin/prelink".


Committed to trunk.

Thanks,
- Tom

[gdb/testsuite] Be quiet about missing prelink in solib-overlap.exp

gdb/testsuite/ChangeLog:

2020-02-19  Tom de Vries  <tdevries@suse.de>

	* gdb.base/solib-overlap.exp: Use exec instead of system to execute
	prelink.

---
 gdb/testsuite/gdb.base/solib-overlap.exp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
  

Patch

diff --git a/gdb/testsuite/gdb.base/solib-overlap.exp b/gdb/testsuite/gdb.base/solib-overlap.exp
index 661d6cfa73..a7064a1316 100644
--- a/gdb/testsuite/gdb.base/solib-overlap.exp
+++ b/gdb/testsuite/gdb.base/solib-overlap.exp
@@ -74,9 +74,10 @@  foreach prelink_lib1 {0x40000000 0x50000000} { with_test_prefix "$prelink_lib1"
 	return -1
     }
 
-    if {[catch "system \"prelink -N -r ${prelink_lib1} ${binfile_lib1}\""] != 0
-	|| [catch "system \"prelink -N -r ${prelink_lib2} ${binfile_lib2}\""] != 0} {
+    if {[catch "exec prelink -N -r ${prelink_lib1} ${binfile_lib1}" output] != 0
+	|| [catch "exec prelink -N -r ${prelink_lib2} ${binfile_lib2}" output] != 0} {
 	# Maybe we don't have prelink.
+	verbose -log "prelink failed: $output"
 	untested "could not prelink ${binfile_lib1_test_msg} or ${binfile_lib2_test_msg}."
 	return -1
     }