[PATCH 2/5] gdb.perf/: Add binary_link_with_shlibs setting to GenPerfTest

Ilya Leoshkevich iii@linux.ibm.com
Wed May 25 22:37:08 GMT 2022


Performance tests that dynamically load generated shared libraries do
not need to link with them.  Provide an option to avoid this.
---
 gdb/testsuite/lib/gen-perf-test.exp | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/gdb/testsuite/lib/gen-perf-test.exp b/gdb/testsuite/lib/gen-perf-test.exp
index 0a5607c2c9a..f0bfdc9317d 100644
--- a/gdb/testsuite/lib/gen-perf-test.exp
+++ b/gdb/testsuite/lib/gen-perf-test.exp
@@ -100,6 +100,9 @@ namespace eval GenPerfTest {
     # The number of compunits in each objfile.
     set DEFAULT_NR_COMPUNITS 1
 
+    # Link the binary with the generated shared libraries by default
+    set DEFAULT_BINARY_LINK_WITH_SHLIBS 1
+
     # The number of public globals in each compunit.
     set DEFAULT_NR_EXTERN_GLOBALS 1
 
@@ -254,6 +257,7 @@ namespace eval GenPerfTest {
 	set testcase(tail_shlib_headers) $GenPerfTest::DEFAULT_TAIL_SHLIB_HEADERS
 	set testcase(nr_gen_shlibs) $GenPerfTest::DEFAULT_NR_GEN_SHLIBS
 	set testcase(nr_compunits) $GenPerfTest::DEFAULT_NR_COMPUNITS
+	set testcase(binary_link_with_shlibs) $GenPerfTest::DEFAULT_BINARY_LINK_WITH_SHLIBS
 
 	set testcase(nr_extern_globals) $GenPerfTest::DEFAULT_NR_EXTERN_GLOBALS
 	set testcase(nr_static_globals) $GenPerfTest::DEFAULT_NR_STATIC_GLOBALS
@@ -281,7 +285,7 @@ namespace eval GenPerfTest {
 	    binary_extra_sources binary_extra_headers
 	    gen_shlib_extra_sources gen_shlib_extra_headers
 	    tail_shlib_sources tail_shlib_headers
-	    nr_gen_shlibs nr_compunits
+	    nr_gen_shlibs nr_compunits binary_link_with_shlibs
 	    nr_extern_globals nr_static_globals
 	    nr_extern_functions nr_static_functions
 	    class_specs
@@ -1298,14 +1302,16 @@ namespace eval GenPerfTest {
 
     proc _make_shlib_options { self_var static run_nr } {
 	upvar 1 $self_var self
-	set nr_gen_shlibs [_get_param $self(nr_gen_shlibs) $run_nr]
 	set result ""
-	for { set i 0 } { $i < $nr_gen_shlibs } { incr i } {
-	    lappend result "shlib=[_make_shlib_name self $static $run_nr $i]"
-	}
-	set tail_shlib_name [_make_tail_shlib_name self $static $run_nr]
-	if { "$tail_shlib_name" != "" } {
-	    lappend result "shlib=$tail_shlib_name"
+	if { [_get_param $self(binary_link_with_shlibs) $run_nr] } {
+	    set nr_gen_shlibs [_get_param $self(nr_gen_shlibs) $run_nr]
+	    for { set i 0 } { $i < $nr_gen_shlibs } { incr i } {
+	        lappend result "shlib=[_make_shlib_name self $static $run_nr $i]"
+	    }
+	    set tail_shlib_name [_make_tail_shlib_name self $static $run_nr]
+	    if { "$tail_shlib_name" != "" } {
+	        lappend result "shlib=$tail_shlib_name"
+	    }
 	}
 	return $result
     }
-- 
2.35.3



More information about the Gdb-patches mailing list