Fix gdb.base/step-indirect-call-thunk.exp
authorCarl Love <cel@us.ibm.com>
Wed, 13 Jul 2022 15:09:33 +0000 (15:09 +0000)
committerCarl Love <cel@us.ibm.com>
Wed, 13 Jul 2022 15:13:05 +0000 (15:13 +0000)
Due to recent changes in the default value of -fcf-protection for gcc, the
test gdb.base/step-indirect-call-thunk.exp fails on Intel X86-64 with the
error:

Executing on host: gcc  -fno-stack-protector  -fdiagnostics-color=never
-mindirect-branch=thunk -mfunction-return=thunk -c -g
-o /.../gdb/testsuite/outputs/gdb.base/step-indirect-call-thunk/step-indirect-call-thunk0.o
/.../gdb/testsuite/gdb.base/step-indirect-call-thunk.c
(timeout = 300) builtin_spawn -ignore SIGHUP gcc -fno-stack-protector
-fdiagnostics-color=never -mindirect-branch=thunk -mfunction-return=thunk -c
-g -o /.../gdb/testsuite/outputs/gdb.base/step-indirect-call-thunk/step-indirect-call-thunk0.o
/.../binutils-gdb-current/gdb/testsuite/gdb.base/step-indirect-call-thunk.c
/.../gdb/testsuite/gdb.base/step-indirect-call-thunk.c:
 In function 'inc': /.../gdb/testsuite/gdb.base/step-indirect-call-thunk.c:
22:1: error: '-mindirect-branch' and '-fcf-protection' are not compatible
   22 | {                /* inc.1 */

As stated in the error message the default "-fcf-protection" and
"-mindirect-branch' are in compatible.  The fcf-protection argument needs
to be "-fcf-protection=none" for the test to compile on Intel.

The gcc command line "-mindirect-branch' is an Intel specific and will give
an error on other platforms.  A check for X86 is added so the test will
only run on X86 platforms.

The patch has been tested and verified on Power 10 and Intel X86-64 systems
with no regressions.

gdb/testsuite/gdb.base/step-indirect-call-thunk.exp

index 761e1d9a28077804e12e924764fd98fdbfa6a83c..7c1b53c99bee7010cdc87499d1ed9305d635c2a7 100644 (file)
 
 standard_testfile
 
-set cflags "-mindirect-branch=thunk -mfunction-return=thunk"
+if { ![istarget "x86*"] } {
+    return
+}
+
+set cflags "-mindirect-branch=thunk -mfunction-return=thunk -fcf-protection=none"
 if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
         [list debug "additional_flags=$cflags"]] } {
     return -1