2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>

* ld-aarch64/gc-plt1.s: New file.
        * ld-aarch64/gc-plt2.s: Likewise.
        * ld-aarch64/gc-plt-hidden.s: Likewise.
        * ld-aarch64/gc-plt-main.s: Likewise.
        * ld-aarch64/gc-relocs-257.s: Likewise.
        * ld-aarch64/gc-plt-relocs.d: Update expected objdump.
        * ld-aarch64/gc-relocs-257.d: Likewise.
        * ld-aarch64/gc-relocs-257-dyn.d: Likewise.
        * ld-aarch64/aarch64-elf.exp: Add test.
This commit is contained in:
Marcus Shawcroft 2013-04-10 12:00:14 +00:00
parent 393fd4c376
commit edb2fa9a96
10 changed files with 138 additions and 0 deletions

View file

@ -1,3 +1,15 @@
2013-04-10 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
* ld-aarch64/gc-plt1.s: New file.
* ld-aarch64/gc-plt2.s: Likewise.
* ld-aarch64/gc-plt-hidden.s: Likewise.
* ld-aarch64/gc-plt-main.s: Likewise.
* ld-aarch64/gc-relocs-257.s: Likewise.
* ld-aarch64/gc-plt-relocs.d: Update expected objdump.
* ld-aarch64/gc-relocs-257.d: Likewise.
* ld-aarch64/gc-relocs-257-dyn.d: Likewise.
* ld-aarch64/aarch64-elf.exp: Add test.
2013-04-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* ld-aarch64/gc-tls-relocs.d: Handle big endian format.

View file

@ -111,3 +111,6 @@ run_dump_test "tls-relax-ie-le-3"
run_dump_test "tlsle-symbol-offset"
run_dump_test "gc-got-relocs"
run_dump_test "gc-tls-relocs"
run_dump_test "gc-plt-relocs"
run_dump_test "gc-relocs-257-dyn"
run_dump_test "gc-relocs-257"

View file

@ -0,0 +1,7 @@
.text
.globl hidfn
.hidden hidfn
.type hidfn, %function
hidfn:
and x0, x0, x0
.size hidfn, . - hidfn

View file

@ -0,0 +1,8 @@
.data
.global var
.text
.globl _start
.type _start, %function
_start:
bl foo
.size _start, . - _start

View file

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

View file

@ -0,0 +1,9 @@
plt_relocs:
adrp x0, :pg_hi21:var
ldr x0, [x0, :lo12:var]
adrp x1, :pg_hi21_nc:var
ldr x1, [x1, :lo12:var]
b bar
bl foo

View file

@ -0,0 +1,11 @@
.text
.align 2
.global bar
.type bar, %function
bar:
b foo
.align 2
.type foo, %function
foo:
bl hidfn

View file

@ -0,0 +1,16 @@
#source: gc-start.s
#source: gc-relocs-257.s
#ld: --defsym tempy=0x11012 --defsym tempy2=0x45034 --defsym tempy3=0x1234 -T aarch64.ld -shared --gc-sections
#objdump: -R -d
# This tests if the linker is able to remove dynamic relocs created
# for R_AARCH64_ABS64 while removing a gc section. The section is
# also removed. So after gc, we should be left with the startup code.
.*: file format elf64-(little|big)aarch64
Disassembly of section .text:
0+8000 \<_start\>:
8000: d503201f nop

View file

@ -0,0 +1,16 @@
#source: gc-start.s
#source: gc-relocs-257.s
#ld: --defsym tempy=0x11012 --defsym tempy2=0x45034 --defsym tempy3=0x1234 -T aarch64.ld --gc-sections
#objdump: -d
# This tests if linker is able to remove gc section containing
# R_AARCH64_ABS64 relocs. So after gc, we should be left with
# only the startup code.
.*: file format elf64-(little|big)aarch64
Disassembly of section .text:
0+8000 \<_start\>:
8000: d503201f nop

View file

@ -0,0 +1,8 @@
.text
.word tempy
.xword tempy2
.hword tempy3
.hword tempy3+8
and x0, x0, x0
and x0, x0, #0x1