From: Matthieu Longo Date: Fri, 29 Nov 2024 14:59:50 +0000 (+0000) Subject: aarch64: adapt tests for PAC PLT to use selectable GNU properties X-Git-Tag: gdb-16-branchpoint~245 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a32bc164a6b74dcb3138c89226554eceec1b6555;p=thirdparty%2Fbinutils-gdb.git aarch64: adapt tests for PAC PLT to use selectable GNU properties --- diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-1.d b/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d similarity index 87% rename from ld/testsuite/ld-aarch64/protections/pac-plt-1.d rename to ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d index ac9467035c8..fc10ec7070b 100644 --- a/ld/testsuite/ld-aarch64/protections/pac-plt-1.d +++ b/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d @@ -1,6 +1,7 @@ -#source: bti-plt-1.s +#name: Specifying '-z pac-plt' forces the generation of a PAC PLT (shared) +#source: bti-pac-plt.s #target: [check_shared_lib_support] -#as: -mabi=lp64 --defsym __guard_property_bti__=1 +#as: -mabi=lp64 #ld: -shared -z pac-plt -T bti-plt.ld #objdump: -dr -j .plt diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d new file mode 100644 index 00000000000..7a0fd59718d --- /dev/null +++ b/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d @@ -0,0 +1,36 @@ +#name: No '-z pac-plt' with feature properties (PAC) does not force the generation of PAC PLT (shared) +## Note: Use of PAC in PLT sequences is a contract between the dynamic loader +## and the static linker, it is independent of whether the relocatable objects +## use PAC. So it means that the PAC flag in the GNU property can be completely +## ignored contrarily to BTI which is all or nothing property for a link unit. +#source: bti-pac-plt.s +#target: [check_shared_lib_support] +#as: -mabi=lp64 +#ld: -shared -T bti-plt.ld +#objdump: -dr -j .plt + +[^:]*: *file format elf64-.*aarch64 + +Disassembly of section \.plt: + +[0-9a-f]+ <\.plt>: +.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]! +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9400e11 ldr x17, \[x16, #24\] +.*: 91006210 add x16, x16, #0x18 +.*: d61f0220 br x17 +.*: d503201f nop +.*: d503201f nop +.*: d503201f nop + +[0-9a-f]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401211 ldr x17, \[x16, #32\] +.*: 91008210 add x16, x16, #0x20 +.*: d61f0220 br x17 + +[0-9a-f]+ <.*>: +.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_> +.*: f9401611 ldr x17, \[x16, #40\] +.*: 9100a210 add x16, x16, #0x28 +.*: d61f0220 br x17 diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-2.d b/ld/testsuite/ld-aarch64/protections/pac-plt-2.d index f0d2710e82b..1c3d7f4b131 100644 --- a/ld/testsuite/ld-aarch64/protections/pac-plt-2.d +++ b/ld/testsuite/ld-aarch64/protections/pac-plt-2.d @@ -2,8 +2,10 @@ #target: [check_shared_lib_support] #ld: -shared -z pac-plt -T bti-plt.ld #objdump: -dr -j .plt -#... -Disassembly of section .plt: + +[^:]*: *file format elf64-.*aarch64 + +Disassembly of section \.plt: .* \<.plt\>: .*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!