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:
Luis Machado 2022-06-30 15:23:56 +01:00
parent 4cbe4ca5da
commit f58d9432cd

View file

@ -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
}