testsuite: fix is_amd64_regs_target
authorMarkus Metzger <markus.t.metzger@intel.com>
Wed, 26 Sep 2018 13:28:28 +0000 (15:28 +0200)
committerMarkus Metzger <markus.t.metzger@intel.com>
Mon, 1 Oct 2018 08:06:56 +0000 (10:06 +0200)
Commit

    c221b2f Testsuite: Add gdb_can_simple_compile

changed the source file name extension of the test program from .s to .c
resulting in compile fails.  This, in turn, causes is_amd64_regs_target
checks to fail.  In gdb.btrace/tailcall.exp and others, this causes the
wrong source file to be picked and the test to fail on 64-bit targets.

Change the test source from an assembly program to a C program using
inline assembly.

testsuite/
* lib/gdb.exp (is_amd64_regs_target): Change assembly to C inline
assembly.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp

index f2fb6de..7f278ef 100644 (file)
@@ -1,3 +1,8 @@
+2018-10-01  Markus Metzger  <markus.t.metzger@intel.com>
+
+       * lib/gdb.exp (is_amd64_regs_target): Change assembly to C inline
+       assembly.
+
 2018-09-28  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * gdb.base/frame-selection.exp: New file.
index f32abfe..1eea922 100644 (file)
@@ -2467,13 +2467,14 @@ gdb_caching_proc is_amd64_regs_target {
        return 0
     }
 
-    set list {}
-    foreach reg \
-       {rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15} {
-           lappend list "\tincq %$reg"
-       }
+    return [gdb_can_simple_compile is_amd64_regs_target {
+       int main (void) {
+           asm ("incq %rax");
+           asm ("incq %r15");
 
-    return [gdb_can_simple_compile is_amd64_regs_target [join $list \n]]
+           return 0;
+       }
+    }]
 }
 
 # Return 1 if this target is an x86 or x86-64 with -m32.