[gdb/testsuite] Handle early_flags in gdb_default_target_compile

Message ID 6100c6f4-dfc9-26d1-c053-a9bd2995c1be@suse.de
State New
Headers show
Series
  • [gdb/testsuite] Handle early_flags in gdb_default_target_compile
Related show

Commit Message

Tom de Vries June 29, 2020, 2:31 p.m.
[ was: Re: [PATCH][gdb/testsuite] Limit default_target_compile override ]
On 6/22/20 11:34 PM, Luis Machado wrote:
> Hi,

> 

> This commit seems to have caused a few regressions for aarch64-linux:

> 

> -# of expected passes        75098

> -# of unexpected failures    63

> -# of expected failures        114

> +# of expected passes        75036

> +# of unexpected failures    149

> +# of expected failures        111

> 

> They are distributed across a few different tests:

> 

> gdb.base/display.exp

> gdb.base/jit-reader-simple.exp

> gdb.base/shlib-call.exp

> gdb.base/solib-weak.exp

> gdb.base/step-test.exp

> gdb.base/store.exp

> gdb.base/type-opaque.exp

> gdb.cp/ovldbreak.exp

> gdb.multi/multi-target.exp

> gdb.reverse/step-precsave.exp

> gdb.reverse/step-reverse.exp

> 

> It seems mostly related to missing options in the compilation line. For

> example, display.exp is missing -fno-stack-protector, which leads to a

> different source stepping pattern than the test is actually expecting.

> 


Hi Luis,

thanks for reporting this.

This should be fixed by attached patch.

Any comments?

Thanks,
- Tom

Comments

Shahab Vahedi via Gdb-patches June 29, 2020, 3:24 p.m. | #1
On Monday, June 29, 2020 4:32 PM, Tom de Vries wrote:
> This should be fixed by attached patch.

> 

> Any comments?

> 

> Thanks,

> - Tom


Hi,

The patch fixed the regressions that I was seeing.

+        if { [regexp "^early_flags=" $i] } {

I think there is a tab vs. spaces issue for this line.

Thanks.
-Baris


Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Gary Kershaw
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

Patch

[gdb/testsuite] Handle early_flags in gdb_default_target_compile

In gdb_default_target_compile, we use dejagnu's default_target_compile, unless
we need support for languages that are not yet support in the used dejagnu
version, in which case we use a local default_target_compile:
gdb_default_target_compile_1.

However, there's another reason to use the local default_target_compile: when
early_flags is used, because there's no dejagnu release available yet
supporting this.

Fix this by detecting and handling early_flags in gdb_default_target_compile.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2020-06-29  Tom de Vries  <tdevries@suse.de>

	PR testsuite/26175
	* lib/future.exp (gdb_default_target_compile): Detect and handle
	early_flags.

---
 gdb/testsuite/lib/future.exp | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/gdb/testsuite/lib/future.exp b/gdb/testsuite/lib/future.exp
index ba00a31c19..1aabbe3233 100644
--- a/gdb/testsuite/lib/future.exp
+++ b/gdb/testsuite/lib/future.exp
@@ -634,25 +634,28 @@  proc gdb_default_target_compile_1 {source destfile type options} {
 proc gdb_default_target_compile {source destfile type options} {
     global use_gdb_compile
 
-    set need_local 0
+    set need_local_lang 0
+    set need_local_early_flags 0
     foreach i $options {
 
 	if { $i == "ada" || $i == "d" || $i == "go" || $i == "rust" } {
-	    set need_local [info exists use_gdb_compile($i)]
-	    break
+	    set need_local_lang [info exists use_gdb_compile($i)]
 	}
 
 	if { $i == "c++" } {
-	    break
+	    set need_local_lang 0
 	}
 
 	if { $i == "f77" || $i == "f90" } {
-	    set need_local [info exists use_gdb_compile(fortran)]
-	    break
+	    set need_local_lang [info exists use_gdb_compile(fortran)]
+	}
+
+        if { [regexp "^early_flags=" $i] } {
+	    set need_local_early_flags 1
 	}
     }
 
-    if { $need_local } {
+    if { $need_local_lang || $need_local_early_flags } {
 	return [gdb_default_target_compile_1 $source $destfile $type $options]
     }