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

Tom de Vries tdevries@suse.de
Wed Feb 19 07:26:00 GMT 2020


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(-)

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
     }



More information about the Gdb-patches mailing list