]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/ELF/linkerscript/at.s
Vendor import of lld trunk r290819:
[FreeBSD/FreeBSD.git] / test / ELF / linkerscript / at.s
1 # REQUIRES: x86
2 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
3 # RUN: echo "SECTIONS { \
4 # RUN:  . = 0x1000; \
5 # RUN:  .aaa : AT(0x2000) \
6 # RUN:  { \
7 # RUN:   *(.aaa) \
8 # RUN:  } \
9 # RUN:  .bbb : \
10 # RUN:  { \
11 # RUN:   *(.bbb) \
12 # RUN:  } \
13 # RUN:  .ccc : AT(0x3000) \
14 # RUN:  { \
15 # RUN:   *(.ccc) \
16 # RUN:  } \
17 # RUN:  .ddd : AT(0x4000) \
18 # RUN:  { \
19 # RUN:   *(.ddd) \
20 # RUN:  } \
21 # RUN: }" > %t.script
22 # RUN: ld.lld %t --script %t.script -o %t2
23 # RUN: llvm-readobj -program-headers %t2 | FileCheck %s
24
25 # CHECK:      ProgramHeaders [
26 # CHECK-NEXT:   ProgramHeader {
27 # CHECK-NEXT:     Type: PT_PHDR
28 # CHECK-NEXT:     Offset: 0x40
29 # CHECK-NEXT:     VirtualAddress: 0x40
30 # CHECK-NEXT:     PhysicalAddress: 0x40
31 # CHECK-NEXT:     FileSize:
32 # CHECK-NEXT:     MemSize:
33 # CHECK-NEXT:     Flags [
34 # CHECK-NEXT:       PF_R
35 # CHECK-NEXT:     ]
36 # CHECK-NEXT:     Alignment: 8
37 # CHECK-NEXT:   }
38 # CHECK-NEXT:   ProgramHeader {
39 # CHECK-NEXT:     Type: PT_LOAD
40 # CHECK-NEXT:     Offset: 0x0
41 # CHECK-NEXT:     VirtualAddress: 0x0
42 # CHECK-NEXT:     PhysicalAddress: 0x0
43 # CHECK-NEXT:     FileSize:
44 # CHECK-NEXT:     MemSize:
45 # CHECK-NEXT:     Flags [
46 # CHECK-NEXT:       PF_R
47 # CHECK-NEXT:       PF_X
48 # CHECK-NEXT:     ]
49 # CHECK-NEXT:     Alignment:
50 # CHECK-NEXT:   }
51 # CHECK-NEXT:   ProgramHeader {
52 # CHECK-NEXT:     Type: PT_LOAD
53 # CHECK-NEXT:     Offset: 0x1000
54 # CHECK-NEXT:     VirtualAddress: 0x1000
55 # CHECK-NEXT:     PhysicalAddress: 0x2000
56 # CHECK-NEXT:     FileSize: 16
57 # CHECK-NEXT:     MemSize: 16
58 # CHECK-NEXT:     Flags [
59 # CHECK-NEXT:       PF_R
60 # CHECK-NEXT:       PF_X
61 # CHECK-NEXT:     ]
62 # CHECK-NEXT:     Alignment:
63 # CHECK-NEXT:   }
64 # CHECK-NEXT:   ProgramHeader {
65 # CHECK-NEXT:     Type: PT_LOAD
66 # CHECK-NEXT:     Offset: 0x1010
67 # CHECK-NEXT:     VirtualAddress: 0x1010
68 # CHECK-NEXT:     PhysicalAddress: 0x3000
69 # CHECK-NEXT:     FileSize: 8
70 # CHECK-NEXT:     MemSize: 8
71 # CHECK-NEXT:     Flags [
72 # CHECK-NEXT:       PF_R
73 # CHECK-NEXT:       PF_X
74 # CHECK-NEXT:     ]
75 # CHECK-NEXT:     Alignment: 4096
76 # CHECK-NEXT:   }
77 # CHECK-NEXT:   ProgramHeader {
78 # CHECK-NEXT:     Type: PT_LOAD
79 # CHECK-NEXT:     Offset: 0x1018
80 # CHECK-NEXT:     VirtualAddress: 0x1018
81 # CHECK-NEXT:     PhysicalAddress: 0x4000
82 # CHECK-NEXT:     FileSize: 9
83 # CHECK-NEXT:     MemSize: 9
84 # CHECK-NEXT:     Flags [
85 # CHECK-NEXT:       PF_R
86 # CHECK-NEXT:       PF_X
87 # CHECK-NEXT:     ]
88 # CHECK-NEXT:     Alignment: 4096
89 # CHECK-NEXT:   }
90 # CHECK-NEXT:   ProgramHeader {
91 # CHECK-NEXT:     Type: PT_GNU_STACK
92 # CHECK-NEXT:     Offset:
93 # CHECK-NEXT:     VirtualAddress: 0x0
94 # CHECK-NEXT:     PhysicalAddress: 0x0
95 # CHECK-NEXT:     FileSize:
96 # CHECK-NEXT:     MemSize:
97 # CHECK-NEXT:     Flags [
98 # CHECK-NEXT:       PF_R
99 # CHECK-NEXT:       PF_W
100 # CHECK-NEXT:     ]
101 # CHECK-NEXT:     Alignment: 0
102 # CHECK-NEXT:   }
103 # CHECK-NEXT: ]
104
105 .global _start
106 _start:
107  nop
108
109 .section .aaa, "a"
110 .quad 0
111
112 .section .bbb, "a"
113 .quad 0
114
115 .section .ccc, "a"
116 .quad 0
117
118 .section .ddd, "a"
119 .quad 0