[pushed,gdb/testsuite] Add and use is_x86_64_m64_target
Commit Message
On 1/25/23 22:25, Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
>
> Tom> Add new proc is_x86_64_m64_target and use it by running:
>
> Tom> +proc is_x86_64_m64_target {} {
>
> Probably should have an intro comment... it's kind of pedantic though
> since IMO the name is pretty clear.
>
Done.
> Tom> + return [istarget x86_64-*-* ] && [is_lp64_target]
>
> Should wrap this in [expr {...}], since otherwise calling this will
> return a string like "1 && 0" or something. Maybe we have a double-eval
> somewhere if this is actually working.
Done.
I've also rewritten the requires, as you suggested in the other reply,
so we're now left with just these matches:
...
$ ( cd gdb/testsuite; find -type f -name "*.exp*" \
| xargs grep 'x86_64.*lp64' )
./gdb.dwarf2/entry-value-typedef.exp:
if { [istarget "x86_64-*-linux*"] && [is_lp64_target] } {
./gdb.base/jit-reader.exp:
require {is_any_target "i?86-*-*" "x86_64-*-*"} is_lp64_target
./gdb.arch/amd64-i386-address.exp:
require {is_any_target "x86_64-*-*" "i?86-*-*"} is_lp64_target
./lib/gdb.exp:
return [expr [istarget x86_64-*-* ] && [is_lp64_target]]
...
Committed as attached.
[ FWIW, I did wonder for a bit about using the name is_amd64_m64_target
instead, but didn't manage to convince myself one way or the other, so I
just stuck with what I started with. ]
Thanks,
- Tom
Comments
On 1/26/23 10:17, Tom de Vries wrote:
> ./gdb.base/jit-reader.exp:
> require {is_any_target "i?86-*-*" "x86_64-*-*"} is_lp64_target
>
> ./gdb.arch/amd64-i386-address.exp:
> require {is_any_target "x86_64-*-*" "i?86-*-*"} is_lp64_target
And, doesn't is_lp64_target imply that we're not on an "i?86-*-*" ?
Am I missing something here?
Otherwise, we can just use is_x86_64_m64_target here as well.
Thanks,
- Tom
>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
Tom> On 1/26/23 10:17, Tom de Vries wrote:
>> ./gdb.base/jit-reader.exp:
>> require {is_any_target "i?86-*-*" "x86_64-*-*"} is_lp64_target
>> ./gdb.arch/amd64-i386-address.exp:
>> require {is_any_target "x86_64-*-*" "i?86-*-*"} is_lp64_target
Tom> And, doesn't is_lp64_target imply that we're not on an "i?86-*-*" ?
Tom> Am I missing something here?
I am not sure. Can you use 'gcc -m64' on an x86? Or could you have a
64-bit machine that advertises as i386 if userspace is mostly 32-bit?
Tom
On 1/26/23 17:10, Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
>
> Tom> On 1/26/23 10:17, Tom de Vries wrote:
>>> ./gdb.base/jit-reader.exp:
>>> require {is_any_target "i?86-*-*" "x86_64-*-*"} is_lp64_target
>>> ./gdb.arch/amd64-i386-address.exp:
>>> require {is_any_target "x86_64-*-*" "i?86-*-*"} is_lp64_target
>
> Tom> And, doesn't is_lp64_target imply that we're not on an "i?86-*-*" ?
>
> Tom> Am I missing something here?
>
> I am not sure. Can you use 'gcc -m64' on an x86?
AFAIK, no.
> Or could you have a
> 64-bit machine that advertises as i386 if userspace is mostly 32-bit?
I think that could be, but AFAIU, is_lp64_target would be false for such
a setup.
Thanks,
- Tom
On 2023-01-26 4:10 p.m., Tom Tromey wrote:
>>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
>
> Tom> On 1/26/23 10:17, Tom de Vries wrote:
>>> ./gdb.base/jit-reader.exp:
>>> require {is_any_target "i?86-*-*" "x86_64-*-*"} is_lp64_target
>>> ./gdb.arch/amd64-i386-address.exp:
>>> require {is_any_target "x86_64-*-*" "i?86-*-*"} is_lp64_target
>
> Tom> And, doesn't is_lp64_target imply that we're not on an "i?86-*-*" ?
>
> Tom> Am I missing something here?
>
> I am not sure. Can you use 'gcc -m64' on an x86?
Yeah, you can. CodeSourcery toolchains used to be like that back in the day -- 32-bit
hosted, so the target triplet indicated 32-bit, but you could use -m64 for 64-bit.
No clue what they do nowadays.
Pedro Alves
> Or could you have a
> 64-bit machine that advertises as i386 if userspace is mostly 32-bit?
On 1/26/23 17:38, Pedro Alves wrote:
> On 2023-01-26 4:10 p.m., Tom Tromey wrote:
>>>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
>>
>> Tom> On 1/26/23 10:17, Tom de Vries wrote:
>>>> ./gdb.base/jit-reader.exp:
>>>> require {is_any_target "i?86-*-*" "x86_64-*-*"} is_lp64_target
>>>> ./gdb.arch/amd64-i386-address.exp:
>>>> require {is_any_target "x86_64-*-*" "i?86-*-*"} is_lp64_target
>>
>> Tom> And, doesn't is_lp64_target imply that we're not on an "i?86-*-*" ?
>>
>> Tom> Am I missing something here?
>>
>> I am not sure. Can you use 'gcc -m64' on an x86?
>
> Yeah, you can. CodeSourcery toolchains used to be like that back in the day -- 32-bit
> hosted, so the target triplet indicated 32-bit, but you could use -m64 for 64-bit.
> No clue what they do nowadays.
Ah, that's interesting, thanks.
So, perhaps then you could indeed end up with is_lp64_target == true on
an i?86 (by using target board unix/-m64).
But assuming you would end up with a complete 64-bit executable, you
still wouldn't been able to run it on the 32-bit target, so I think it's
a corner-case that doesn't prevent us from dropping the i?86 test here.
Thanks,
- Tom
>
> Pedro Alves
>
>> Or could you have a
>> 64-bit machine that advertises as i386 if userspace is mostly 32-bit?
>
>
>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
Tom> But assuming you would end up with a complete 64-bit executable, you
Tom> still wouldn't been able to run it on the 32-bit target, so I think
Tom> it's a corner-case that doesn't prevent us from dropping the i?86 test
Tom> here.
I wonder how many tests are never run. I imagine some of those gdb.arch
tests haven't been run in years. It seems possible that we could even
have some that can't be run -- like, rely on some target we've deleted.
Tom
On 2023-01-26 5:08 p.m., Tom de Vries via Gdb-patches wrote:
> On 1/26/23 17:38, Pedro Alves wrote:
>> On 2023-01-26 4:10 p.m., Tom Tromey wrote:
>>>>>>>> "Tom" == Tom de Vries via Gdb-patches <gdb-patches@sourceware.org> writes:
>>>
>>> Tom> On 1/26/23 10:17, Tom de Vries wrote:
>>>>> ./gdb.base/jit-reader.exp:
>>>>> require {is_any_target "i?86-*-*" "x86_64-*-*"} is_lp64_target
>>>>> ./gdb.arch/amd64-i386-address.exp:
>>>>> require {is_any_target "x86_64-*-*" "i?86-*-*"} is_lp64_target
>>>
>>> Tom> And, doesn't is_lp64_target imply that we're not on an "i?86-*-*" ?
>>>
>>> Tom> Am I missing something here?
>>>
>>> I am not sure. Can you use 'gcc -m64' on an x86?
>>
>> Yeah, you can. CodeSourcery toolchains used to be like that back in the day -- 32-bit
>> hosted, so the target triplet indicated 32-bit, but you could use -m64 for 64-bit.
>> No clue what they do nowadays.
>
> Ah, that's interesting, thanks.
>
> So, perhaps then you could indeed end up with is_lp64_target == true on an i?86 (by using target board unix/-m64).
Right.
>
> But assuming you would end up with a complete 64-bit executable, you still wouldn't been able to run it on the 32-bit target, so I think it's a corner-case that doesn't prevent us from dropping the i?86 test here.
Don't know whether that's true on all operating systems.
I may be misremembering -- it may be that gdb was actually built as 64-bit,
but with the toolchain configured to target 32-bit by default (and thus with 32-bit triplet).
In that case, then debugging would work.
See:
https://sourceware.org/pipermail/gdb-patches/2009-April/064685.html
"x86 -m64" is also why is_amd64_regs_target also runs the test for [istarget "i?86-*"]:
# Return 1 if target has x86_64 registers - either amd64 or x32.
# x32 target identifies as x86_64-*-linux*, therefore it cannot be determined
# just from the target string.
gdb_caching_proc is_amd64_regs_target {
if {![istarget "x86_64-*-*"] && ![istarget "i?86-*"]} {
return 0
}
Pedro Alves
>
> Thanks,
> - Tom
>
>>
>> Pedro Alves
>>
>>> Or could you have a
>>> 64-bit machine that advertises as i386 if userspace is mostly 32-bit?
>>
>>
From 67c1a16139fba98d1013901ef053c60c97e134d0 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Wed, 25 Jan 2023 20:31:23 +0100
Subject: [pushed] [gdb/testsuite] Add and use is_x86_64_m64_target
Add new proc is_x86_64_m64_target and use it where appropriate.
Tested on x86_64-linux.
---
gdb/testsuite/gdb.arch/amd64-break-on-asm-line.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-byte.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-disp-step.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-dword.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp | 2 +-
.../gdb.arch/amd64-entry-value-param-dwarf5.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-entry-value-param.exp | 5 ++---
.../gdb.arch/amd64-entry-value-paramref.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-entry-value.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-eval.exp | 2 +-
.../gdb.arch/amd64-invalid-stack-middle.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-prologue-skip.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-stap-expressions.exp | 2 +-
.../gdb.arch/amd64-stap-optional-prefix.exp | 5 +----
.../gdb.arch/amd64-stap-special-operands.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp | 5 ++---
gdb/testsuite/gdb.arch/amd64-tailcall-self.exp | 2 +-
gdb/testsuite/gdb.arch/amd64-word.exp | 2 +-
gdb/testsuite/gdb.base/coredump-filter-build-id.exp | 5 +----
gdb/testsuite/gdb.compile/compile-cplus.exp | 2 +-
gdb/testsuite/gdb.compile/compile.exp | 2 +-
gdb/testsuite/gdb.cp/namelessclass.exp | 4 +---
gdb/testsuite/gdb.dwarf2/clztest.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-common-block.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-error.exp | 5 +----
gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-restore.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-restrict.exp | 4 +---
.../gdb.dwarf2/dw2-single-line-discriminators.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp | 4 +---
gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp | 4 +---
gdb/testsuite/gdb.dwarf2/fission-base.exp | 4 +---
gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp | 4 +---
gdb/testsuite/gdb.dwarf2/fission-loclists.exp | 4 +---
gdb/testsuite/gdb.dwarf2/trace-crash.exp | 4 +---
gdb/testsuite/gdb.dwarf2/typeddwarf.exp | 2 +-
gdb/testsuite/gdb.mi/mi-reg-undefined.exp | 4 +---
gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp | 5 ++---
.../gdb.python/py-framefilter-invalidarg.exp | 5 +----
gdb/testsuite/gdb.python/py-linetable.exp | 5 ++---
gdb/testsuite/gdb.python/py-unwind.exp | 2 +-
gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp | 5 ++---
gdb/testsuite/gdb.reverse/singlejmp-reverse.exp | 12 ++++++------
gdb/testsuite/lib/gdb.exp | 5 +++++
54 files changed, 68 insertions(+), 114 deletions(-)
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
standard_testfile .S
@@ -18,7 +18,7 @@
# This file is part of the gdb testsuite.
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
standard_testfile amd64-pseudo.c
@@ -18,7 +18,7 @@
# Test displaced stepping over VEX-encoded RIP-relative AVX
# instructions.
-require {istarget x86_64-*-*} is_lp64_target have_avx
+require is_x86_64_m64_target have_avx
standard_testfile .S
@@ -18,7 +18,7 @@
# Test amd64 displaced stepping.
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
set newline "\[\r\n\]*"
@@ -18,7 +18,7 @@
# This file is part of the gdb testsuite.
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
standard_testfile amd64-pseudo.c
@@ -21,7 +21,7 @@ if [info exists COMPILE] {
standard_testfile
lappend opts debug optimize=-O2
} else {
- require {istarget x86_64-*-*} is_lp64_target
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
@@ -21,7 +21,7 @@ if [info exists COMPILE] {
set srcfile ${srcfile2}
lappend opts optimize=-O2 additional_flags=-gdwarf-5
} else {
- require {istarget x86_64-*-*} is_lp64_target
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
@@ -20,9 +20,8 @@ if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.arch/amd64-entry-value-param.exp COMPILE=1"
set srcfile ${srcfile2}
lappend opts debug optimize=-O2
-} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
- verbose "Skipping amd64-entry-value-param."
- return
+} else {
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
@@ -15,7 +15,7 @@
standard_testfile .S .cc
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
if { [prepare_for_testing_full "failed to prepare" \
[list $testfile "c++" $srcfile {}]] } {
@@ -21,7 +21,7 @@ if [info exists COMPILE] {
set srcfile ${testfile}.cc
lappend opts debug optimize=-O2
} else {
- require {istarget x86_64-*-*} is_lp64_target
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
@@ -17,7 +17,7 @@
# This testcase exercises evaluation with amd64 calling conventions.
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
standard_testfile .cc
@@ -29,7 +29,7 @@
standard_testfile .S
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {nopie}] } {
return -1
@@ -30,7 +30,7 @@
set opts {}
standard_testfile .c
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
return -1
@@ -21,7 +21,7 @@ if [info exists COMPILE] {
set srcfile ${srcfile2}
lappend opts debug optimize=-O2
} else {
- require {istarget x86_64-*-*} is_lp64_target
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
@@ -16,7 +16,7 @@
standard_testfile .S
set binfile ${binfile}.o
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {debug}] != "" } {
untested "failed to compile"
@@ -25,7 +25,7 @@ if [info exists COMPILE] {
set srcfile ${csrcfile}
lappend opts debug optimize=-O0
} else {
- require {istarget x86_64-*-*} is_lp64_target
+ require is_x86_64_m64_target
}
if {[prepare_for_testing "failed to prepare" ${binfile} $srcfile $opts]} {
@@ -15,7 +15,7 @@
standard_testfile ".S"
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return -1
@@ -17,10 +17,7 @@
standard_testfile ".S"
-if { ![istarget "x86_64-*-*"] || ![is_lp64_target] } {
- verbose "Skipping $testfile.exp"
- return
-}
+require is_x86_64_m64_target
if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return -1
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
proc test_probe { probe_name } {
with_test_prefix "probe: ${probe_name}" {
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
standard_testfile amd64-stap-wrong-subexp.S
@@ -21,7 +21,7 @@ if [info exists COMPILE] {
standard_testfile amd64-tailcall-cxx1.cc amd64-tailcall-cxx2.cc
lappend opts debug optimize=-O2
} else {
- require {istarget x86_64-*-*} is_lp64_target
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} "${srcfile} ${srcfile2}" $opts] } {
@@ -21,7 +21,7 @@ if [info exists COMPILE] {
standard_testfile
lappend opts debug optimize=-O2
} else {
- require {istarget x86_64-*-*} is_lp64_target
+ require is_x86_64_m64_target
}
lappend opts nopie
@@ -20,9 +20,8 @@ if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.arch/amd64-tailcall-ret.exp COMPILE=1"
standard_testfile
lappend opts debug optimize=-O2
-} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
- verbose "Skipping ${testfile}."
- return
+} else {
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
@@ -15,7 +15,7 @@
standard_testfile .S
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {}] } {
return -1
@@ -18,7 +18,7 @@
# This file is part of the gdb testsuite.
-require {istarget x86_64-*-*} is_lp64_target
+require is_x86_64_m64_target
standard_testfile amd64-pseudo.c
@@ -28,10 +28,7 @@ if { ![istarget *-*-linux*] } {
untested "$testfile.exp"
return -1
}
-if { ![istarget "x86_64-*-*"] || ![is_lp64_target] } {
- untested "$testfile.exp"
- return -1
-}
+require is_x86_64_m64_target
if { [prepare_for_testing "failed to prepare" $testfile $srcfile debug] } {
return -1
@@ -24,7 +24,7 @@ if { [test_compiler_info gcc*] || [test_compiler_info clang*] } {
lappend options c++
}
-if { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
+if { ![is_x86_64_m64_target] } {
verbose "Skipping x86_64 LOC_CONST test."
set srcfile3 ""
}
@@ -22,7 +22,7 @@ if [test_compiler_info gcc*] {
lappend options additional_flags=-g3
}
-if { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
+if { ![is_x86_64_m64_target] } {
verbose "Skipping x86_64 LOC_CONST test."
set srcfile3 ""
}
@@ -22,9 +22,7 @@ load_lib dwarf.exp
# This test can only be run on x86-like targets which support DWARF.
require dwarf2_support allow_cplus_tests
-if {![istarget "x86_64-*-*"] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
set csrcfile "${testfile}.cc"
@@ -22,9 +22,7 @@ set test "clztest"
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
if { [prepare_for_testing "failed to prepare" "${test}" ${test}.S \
{nodebug nopie additional_flags=-nostdlib}] } {
@@ -19,9 +19,7 @@ load_lib dwarf.exp
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
# It requires fortran.
require allow_fortran_tests
@@ -18,9 +18,7 @@ load_lib dwarf.exp
require dwarf2_support
# This test can only be run on x86_64 targets.
-if {![istarget "x86_64-*-*"] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
@@ -20,10 +20,7 @@ require dwarf2_support
standard_testfile .S
-if { ![istarget "x86_64-*-*"] || ![is_lp64_target] } {
- verbose "Skipping $gdb_test_file_name."
- return
-}
+require is_x86_64_m64_target
# We can't use prepare_for_testing here because we need to check the
# 'file' command's output.
@@ -22,9 +22,7 @@ load_lib dwarf.exp
require dwarf2_support
# This test can only be run on x86_64 targets.
-if {![istarget "x86_64-*-*"] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
set basename "inline-break"
@@ -21,9 +21,7 @@ set test "dw2-op-out-param"
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
if { [prepare_for_testing "failed to prepare" "${test}" ${test}.S {nodebug}] } {
return -1
@@ -18,9 +18,7 @@ load_lib dwarf.exp
require dwarf2_support
# This test can only be run on x86_64 targets.
-if {![istarget "x86_64-*-*"] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
@@ -16,9 +16,7 @@
# Test handling of DW_CFA_restore_state.
# This test can only be run on x86_64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
set opts [list {additional_flags=-nostdlib}]
@@ -19,9 +19,7 @@ load_lib dwarf.exp
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
@@ -22,9 +22,7 @@ load_lib dwarf.exp
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
set csrcfile ${testfile}.c
@@ -20,9 +20,7 @@ standard_testfile .S
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
if {[prepare_for_testing "failed to prepare" "$testfile" $srcfile {nodebug nopie}]} {
return -1
@@ -18,9 +18,7 @@ load_lib dwarf.exp
# This test can only be run on x86-64 targets. It checks for a bug
# that existed in amd64-tdep.c, and depends on an error being produced
# from within that file.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
# This test can only be run on targets which support DWARF-2 and use gas.
require dwarf2_support
@@ -22,9 +22,7 @@ require {!is_remote host}
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
@@ -27,9 +27,7 @@ require {!is_remote host}
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
@@ -22,9 +22,7 @@ require {!is_remote host}
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
@@ -20,9 +20,7 @@ load_lib trace-support.exp
require dwarf2_support
# This test can only be run on x86-64 targets.
-if {![istarget x86_64-*] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
standard_testfile .S
@@ -23,7 +23,7 @@ require dwarf2_support
# This test can only be run on x86 and amd64 targets (and not x32).
if { [is_x86_like_target] } {
set sfile ${test}.S
-} elseif {[istarget "x86_64-*-*"] && [is_lp64_target]} {
+} elseif { [is_x86_64_m64_target] } {
set sfile ${test}-amd64.S
} else {
return 0
@@ -20,9 +20,7 @@ set MIFLAGS "-i=mi"
require dwarf2_support
# This test can only be run on x86_64 targets.
-if {![istarget "x86_64-*-*"] || ![is_lp64_target]} {
- return 0
-}
+require is_x86_64_m64_target
gdb_exit
if [mi_gdb_start] {
@@ -28,9 +28,8 @@ if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.mi/mi2-amd64-entry-value.exp COMPILE=1"
set srcfile ${testfile}.c
lappend opts debug optimize=-O2
-} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
- verbose "Skipping mi2-amd64-entry-value."
- return
+} else {
+ require is_x86_64_m64_target
}
set executable ${testfile}
@@ -19,10 +19,7 @@ require allow_python_tests
standard_testfile amd64-py-framefilter-invalidarg.S
-if { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
- verbose "Skipping py-framefilter-invalidarg."
- return
-}
+require is_x86_64_m64_target
# We cannot use prepare_for_testing as we have to set the safe-patch
# to check objfile and progspace printers.
@@ -22,9 +22,8 @@ if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.python/py-linetable.exp COMPILE=1"
standard_testfile
lappend opts debug optimize=-O2
-} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
- verbose "Skipping ${testfile}."
- return
+} else {
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
@@ -32,7 +32,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} "debug $fla
}
# This test runs on a specific platform.
-if { ![istarget x86_64-*-* ] || ![is_lp64_target] } { continue }
+require is_x86_64_m64_target
# The following tests require execution.
@@ -22,9 +22,8 @@ if [info exists COMPILE] {
# make check RUNTESTFLAGS="gdb.reverse/amd64-tailcall-reverse.exp COMPILE=1"
standard_testfile
lappend opts debug optimize=-O2
-} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
- verbose "Skipping ${testfile}."
- return
+} else {
+ require is_x86_64_m64_target
}
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
@@ -26,12 +26,12 @@ if [info exists COMPILE] {
] == -1 } {
return -1
}
-} elseif { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
- verbose "Skipping ${testfile}."
- return
-} elseif { [build_executable ${testfile}.exp ${testfile} \
- [list ${srcfile} ${srcfile2}] {}] == -1 } {
- return -1
+} else {
+ require is_x86_64_m64_target
+ if { [build_executable ${testfile}.exp ${testfile} \
+ [list ${srcfile} ${srcfile2}] {}] == -1 } {
+ return -1
+ }
}
clean_restart $executable
@@ -3414,6 +3414,11 @@ proc is_x86_like_target {} {
return [expr [is_ilp32_target] && ![is_amd64_regs_target]]
}
+# Return 1 if this target is an x86_64 with -m64.
+proc is_x86_64_m64_target {} {
+ return [expr [istarget x86_64-*-* ] && [is_lp64_target]]
+}
+
# Return 1 if this target is an arm or aarch32 on aarch64.
gdb_caching_proc is_aarch32_target {
base-commit: f212f7feec305bb61407fff312f681add8c1b164
--
2.35.3