diff options
Diffstat (limited to 'ld/testsuite/ld-aarch64/gc-plt-relocs.d')
-rw-r--r-- | ld/testsuite/ld-aarch64/gc-plt-relocs.d | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/ld/testsuite/ld-aarch64/gc-plt-relocs.d b/ld/testsuite/ld-aarch64/gc-plt-relocs.d new file mode 100644 index 0000000..6c4d3ca --- /dev/null +++ b/ld/testsuite/ld-aarch64/gc-plt-relocs.d @@ -0,0 +1,48 @@ +#source: gc-plt1.s +#source: gc-plt-main.s +#source: gc-plt-hidden.s +#source: gc-plt2.s +#ld: --gc-sections -T aarch64.ld --shared +#objdump: -dT + +# Shared object with plt related relocs against global symbol +# and local functions gced. After gc-section removal we are +# checking that the function does not exist. + +.*: file format elf64-(little|big)aarch64 + +DYNAMIC SYMBOL TABLE: +0+8000 l d \.text 0+ \.text +0+8000 g DF \.text 0+4 _start +0+0000 D \*UND\* 0+ foo +0+8008 g DF \.text 0+ bar + +Disassembly of section .text: + +0+8000 \<_start\>: + 8000: 9400000c bl 8030 \<foo\+0x24\> + +0+8004 \<hidfn\>: + 8004: 8a000000 and x0, x0, x0 + +0+8008 \<bar\>: + 8008: 14000001 b 800c \<foo\> + +0+800c \<foo\>: + 800c: 97fffffe bl 8004 \<hidfn\> + +Disassembly of section .plt: + +0+8010 \<\.plt\>: + 8010: a9bf7bf0 stp x16, x30, \[sp,#-16\]! + 8014: b0000010 adrp x16, 9000 .* + 8018: f9400a11 ldr x17, \[x16,#16\] + 801c: 91004210 add x16, x16, #0x10 + 8020: d61f0220 br x17 + 8024: d503201f nop + 8028: d503201f nop + 802c: d503201f nop + 8030: b0000010 adrp x16, 9000 .* + 8034: f9400e11 ldr x17, \[x16,#24\] + 8038: 91006210 add x16, x16, #0x18 + 803c: d61f0220 br x17 |