1 #source: gc-plt1.s 2 #source: gc-plt-main.s 3 #source: gc-plt-hidden.s 4 #source: gc-plt2.s 5 #ld: --gc-sections -T aarch64.ld --shared 6 #objdump: -dT 7 8 # Shared object with plt related relocs against global symbol 9 # and local functions gced. After gc-section removal we are 10 # checking that the function does not exist. 11 12 .*: file format elf64-(little|big)aarch64 13 14 DYNAMIC SYMBOL TABLE: 15 0+8000 l d \.text 0+ \.text 16 0+8000 g DF \.text 0+4 _start 17 0+0000 D \*UND\* 0+ foo 18 0+8008 g DF \.text 0+ bar 19 20 Disassembly of section .text: 21 22 0+8000 \<_start\>: 23 8000: 9400000c bl 8030 \<foo\+0x24\> 24 25 0+8004 \<hidfn\>: 26 8004: 8a000000 and x0, x0, x0 27 28 0+8008 \<bar\>: 29 8008: 14000001 b 800c \<foo\> 30 31 0+800c \<foo\>: 32 800c: 97fffffe bl 8004 \<hidfn\> 33 34 Disassembly of section .plt: 35 36 0+8010 \<\.plt\>: 37 8010: a9bf7bf0 stp x16, x30, \[sp,#-16\]! 38 8014: b0000010 adrp x16, 9000 .* 39 8018: f9400e11 ldr x17, \[x16,#24\] 40 801c: 91006210 add x16, x16, #0x18 41 8020: d61f0220 br x17 42 8024: d503201f nop 43 8028: d503201f nop 44 802c: d503201f nop 45 8030: b0000010 adrp x16, 9000 .* 46 8034: f9401211 ldr x17, \[x16,#32\] 47 8038: 91008210 add x16, x16, #0x20 48 803c: d61f0220 br x17 49