aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2022-12-30 16:48:07 +0100
committerTom de Vries <tdevries@suse.de>2022-12-30 16:48:07 +0100
commitd6246a8730fad9edcb972c1f689a13bb16640483 (patch)
treef427572b5e45d7f7f92654419ec0bba96005d930
parentb1b0f69cb4a2ccd421419f9703edfcc5c3032dc0 (diff)
downloadgdb-d6246a8730fad9edcb972c1f689a13bb16640483.zip
gdb-d6246a8730fad9edcb972c1f689a13bb16640483.tar.gz
gdb-d6246a8730fad9edcb972c1f689a13bb16640483.tar.bz2
[gdb/testsuite] Fix gdb.reverse/step-indirect-call-thunk.exp with -fcf-protection
On Ubuntu 22.04.1 x86_64, I run into: ... gdb.reverse/step-indirect-call-thunk.c: In function 'inc':^M gdb.reverse/step-indirect-call-thunk.c:22:1: error: '-mindirect-branch' and \ '-fcf-protection' are not compatible^M 22 | { /* inc.1 */^M | ^^M ... Fix this by forcing -fcf-protection=none, if supported. Tested on x86_64-linux.
-rw-r--r--gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp15
1 files changed, 12 insertions, 3 deletions
diff --git a/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp b/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
index 3f1f538..1234a04 100644
--- a/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
+++ b/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
@@ -20,9 +20,18 @@ if { ![supports_reverse] } {
standard_testfile
-set cflags "-mindirect-branch=thunk -mfunction-return=thunk"
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
- [list debug "additional_flags=$cflags"]] } {
+set cflags {}
+lappend cflags debug
+lappend cflags additional_flags=-mindirect-branch=thunk
+lappend cflags additional_flags=-mfunction-return=thunk
+
+set fcf_protection_none additional_flags=-fcf-protection=none
+if { [gdb_can_simple_compile fcf-protection-none {int main () { return 0; }} \
+ executable $fcf_protection_none] } {
+ lappend cflags $fcf_protection_none
+}
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile $cflags] } {
return -1
}