testsuite: fix is_amd64_regs_target

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.
This commit is contained in:
Markus Metzger 2018-09-26 15:28:28 +02:00
parent 15ec67475f
commit 224d30d393
2 changed files with 12 additions and 6 deletions

View 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.

View 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.