]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/ELF/arm-execute-only.s
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / ELF / arm-execute-only.s
1 // REQUIRES: arm
2
3 // RUN: llvm-mc -filetype=obj -triple=armv7-pc-linux %s -o %t.o
4 // RUN: ld.lld %t.o -o %t.so -shared
5 // RUN: llvm-readelf -l %t.so | FileCheck %s
6
7 // RUN: ld.lld %t.o %t.o -o %t.so -shared
8 // RUN: llvm-readelf -l %t.so | FileCheck %s
9
10 // RUN: echo ".section .foo,\"ax\"; \
11 // RUN:       bx lr" > %t.s
12 // RUN: llvm-mc -filetype=obj -triple=armv7-pc-linux %t.s -o %t2.o
13 // RUN: ld.lld %t.o %t2.o -o %t.so -shared
14 // RUN: llvm-readelf -l %t.so | FileCheck --check-prefix=DIFF %s
15
16 // CHECK-NOT:  LOAD
17 // CHECK:      LOAD           0x000000 0x00000000 0x00000000 0x0016d 0x0016d  R 0x1000
18 // CHECK:      LOAD           0x001000 0x00001000 0x00001000 0x{{.*}} 0x{{.*}} R E 0x1000
19 // CHECK:      LOAD           0x002000 0x00002000 0x00002000 0x{{.*}} 0x{{.*}}   E 0x1000
20 // CHECK:      LOAD           0x003000 0x00003000 0x00003000 0x00038  0x00038  RW  0x1000
21 // CHECK-NOT:  LOAD
22
23 // CHECK: 01     .dynsym .gnu.hash .hash .dynstr
24 // CHECK: 02     .text
25 // CHECK: 03     .foo
26 // CHECK: 04     .dynamic
27
28 // DIFF-NOT:  LOAD
29 // DIFF:      LOAD           0x000000 0x00000000 0x00000000 0x0014d 0x0014d R   0x1000
30 // DIFF:      LOAD           0x001000 0x00001000 0x00001000 0x0000c 0x0000c R E 0x1000
31 // DIFF:      LOAD           0x002000 0x00002000 0x00002000 0x00038 0x00038 RW  0x1000
32 // DIFF-NOT:  LOAD
33
34 // DIFF: 01     .dynsym .gnu.hash .hash .dynstr
35 // DIFF: 02     .text .foo
36 // DIFF: 03     .dynamic
37
38         bx lr
39         .section .foo,"axy"
40         bx lr