Try a couple PAuth compilation flags for gdb.arch/aarch64-pauth.exp
The -msign-return-address switch has been dropped from GCC, but some older compiler may still support it. Make sure we try both -msign-return-address and -mbranch-protection before bailing out when running gdb.arch/aarch64-pauth.exp.
This commit is contained in:
parent
4cbe4ca5da
commit
f58d9432cd
1 changed files with 17 additions and 2 deletions
|
@ -25,9 +25,24 @@ if {![is_aarch64_target]} {
|
|||
# Build program with address signing forced on.
|
||||
standard_testfile
|
||||
set compile_flags {debug}
|
||||
lappend compile_flags "additional_flags=-msign-return-address=all"
|
||||
lappend compile_flags "additional_flags=-fno-inline"
|
||||
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} ${compile_flags}] } {
|
||||
|
||||
# Records whether the compilation was successful or not.
|
||||
set compilation_ok 0
|
||||
|
||||
# We need to try a couple compilation flags here because -msign-return-address
|
||||
# was dropped at some point, but could still be supported.
|
||||
foreach pauth_flag "-mbranch-protection=pac-ret+leaf -msign-return-address=all" {
|
||||
set flags $compile_flags
|
||||
lappend flags "additional_flags=$pauth_flag"
|
||||
|
||||
if {!$compilation_ok && ![prepare_for_testing "failed to prepare" ${testfile} ${srcfile} ${flags}] } {
|
||||
set compilation_ok 1
|
||||
}
|
||||
}
|
||||
|
||||
# If we couldn't compile, just bail out.
|
||||
if {!$compilation_ok} {
|
||||
return -1
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue