[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / tools / obj2yaml / ELF / dynamic-section.yaml
blobed413dc4eff12c400e63f4fcbb2f2233dad76a3e
1 ## Check we can use obj2yaml to yamalize the object containing .dynamic
2 ## section. Check that resulting section has the proper attributes and
3 ## dynamic tags and that we do not dump the default sh_entsize.
5 # RUN: yaml2obj -DENTSIZE=0x10 %s -o %t1
6 # RUN: obj2yaml %t1 | FileCheck %s
8 # CHECK:       Sections:
9 # CHECK-NEXT:  - Name:            .dynamic
10 # CHECK-NEXT:    Type:            SHT_DYNAMIC
11 # CHECK-NEXT:    Address:         0x1000
12 # CHECK-NEXT:    AddressAlign:    0x2000
13 # CHECK-NEXT:    Entries:
14 # CHECK-NEXT:      - Tag:             DT_NULL
15 # CHECK-NEXT:        Value:           0x0
16 # CHECK-NEXT:      - Tag:             DT_NEEDED
17 # CHECK-NEXT:        Value:           0x1
18 # CHECK-NEXT:      - Tag:             DT_PLTRELSZ
19 # CHECK-NEXT:        Value:           0x2
20 # CHECK-NEXT:      - Tag:             DT_PLTGOT
21 # CHECK-NEXT:        Value:           0x3
22 # CHECK-NEXT:      - Tag:             DT_HASH
23 # CHECK-NEXT:        Value:           0x4
24 # CHECK-NEXT:      - Tag:             DT_STRTAB
25 # CHECK-NEXT:        Value:           0x5
26 # CHECK-NEXT:      - Tag:             DT_SYMTAB
27 # CHECK-NEXT:        Value:           0x6
28 # CHECK-NEXT:      - Tag:             DT_RELA
29 # CHECK-NEXT:        Value:           0x7
30 # CHECK-NEXT:      - Tag:             DT_RELASZ
31 # CHECK-NEXT:        Value:           0x8
32 # CHECK-NEXT:      - Tag:             DT_RELAENT
33 # CHECK-NEXT:        Value:           0x9
34 # CHECK-NEXT:      - Tag:             DT_STRSZ
35 # CHECK-NEXT:        Value:           0xA
36 # CHECK-NEXT:      - Tag:             DT_SYMENT
37 # CHECK-NEXT:        Value:           0xB
38 # CHECK-NEXT:      - Tag:             DT_INIT
39 # CHECK-NEXT:        Value:           0xC
40 # CHECK-NEXT:      - Tag:             DT_FINI
41 # CHECK-NEXT:        Value:           0xD
42 # CHECK-NEXT:      - Tag:             DT_SONAME
43 # CHECK-NEXT:        Value:           0xE
44 # CHECK-NEXT:      - Tag:             DT_RPATH
45 # CHECK-NEXT:        Value:           0xF
46 # CHECK-NEXT:      - Tag:             DT_SYMBOLIC
47 # CHECK-NEXT:        Value:           0x10
48 # CHECK-NEXT:      - Tag:             DT_REL
49 # CHECK-NEXT:        Value:           0x11
50 # CHECK-NEXT:      - Tag:             DT_RELSZ
51 # CHECK-NEXT:        Value:           0x12
52 # CHECK-NEXT:      - Tag:             DT_RELENT
53 # CHECK-NEXT:        Value:           0x13
54 # CHECK-NEXT:      - Tag:             DT_PLTREL
55 # CHECK-NEXT:        Value:           0x14
56 # CHECK-NEXT:      - Tag:             DT_DEBUG
57 # CHECK-NEXT:        Value:           0x15
58 # CHECK-NEXT:      - Tag:             DT_TEXTREL
59 # CHECK-NEXT:        Value:           0x16
60 # CHECK-NEXT:      - Tag:             DT_JMPREL
61 # CHECK-NEXT:        Value:           0x17
62 # CHECK-NEXT:      - Tag:             DT_BIND_NOW
63 # CHECK-NEXT:        Value:           0x18
64 # CHECK-NEXT:      - Tag:             DT_INIT_ARRAY
65 # CHECK-NEXT:        Value:           0x19
66 # CHECK-NEXT:      - Tag:             DT_FINI_ARRAY
67 # CHECK-NEXT:        Value:           0x1A
68 # CHECK-NEXT:      - Tag:             DT_INIT_ARRAYSZ
69 # CHECK-NEXT:        Value:           0x1B
70 # CHECK-NEXT:      - Tag:             DT_FINI_ARRAYSZ
71 # CHECK-NEXT:        Value:           0x1C
72 # CHECK-NEXT:      - Tag:             DT_RUNPATH
73 # CHECK-NEXT:        Value:           0x1D
74 # CHECK-NEXT:      - Tag:             DT_FLAGS
75 # CHECK-NEXT:        Value:           0x1E
76 # CHECK-NEXT:      - Tag:             DT_PREINIT_ARRAY
77 # CHECK-NEXT:        Value:           0x1F
78 # CHECK-NEXT:      - Tag:             DT_PREINIT_ARRAYSZ
79 # CHECK-NEXT:        Value:           0x20
80 # CHECK-NEXT:      - Tag:             DT_SYMTAB_SHNDX
81 # CHECK-NEXT:        Value:           0x21
82 # CHECK-NEXT:      - Tag:             DT_RELRSZ
83 # CHECK-NEXT:        Value:           0x22
84 # CHECK-NEXT:      - Tag:             DT_RELR
85 # CHECK-NEXT:        Value:           0x23
86 # CHECK-NEXT:      - Tag:             DT_RELRENT
87 # CHECK-NEXT:        Value:           0x24
88 # CHECK-NEXT:      - Tag:             DT_ANDROID_REL
89 # CHECK-NEXT:        Value:           0x25
90 # CHECK-NEXT:      - Tag:             DT_ANDROID_RELSZ
91 # CHECK-NEXT:        Value:           0x26
92 # CHECK-NEXT:      - Tag:             DT_ANDROID_RELA
93 # CHECK-NEXT:        Value:           0x27
94 # CHECK-NEXT:      - Tag:             DT_ANDROID_RELASZ
95 # CHECK-NEXT:        Value:           0x28
96 # CHECK-NEXT:      - Tag:             DT_ANDROID_RELR
97 # CHECK-NEXT:        Value:           0x29
98 # CHECK-NEXT:      - Tag:             DT_ANDROID_RELRSZ
99 # CHECK-NEXT:        Value:           0x2A
100 # CHECK-NEXT:      - Tag:             DT_ANDROID_RELRENT
101 # CHECK-NEXT:        Value:           0x2B
102 # CHECK-NEXT:      - Tag:             DT_GNU_HASH
103 # CHECK-NEXT:        Value:           0x2C
104 # CHECK-NEXT:      - Tag:             DT_TLSDESC_PLT
105 # CHECK-NEXT:        Value:           0x2D
106 # CHECK-NEXT:      - Tag:             DT_TLSDESC_GOT
107 # CHECK-NEXT:        Value:           0x2E
108 # CHECK-NEXT:      - Tag:             DT_RELACOUNT
109 # CHECK-NEXT:        Value:           0x2F
110 # CHECK-NEXT:      - Tag:             DT_RELCOUNT
111 # CHECK-NEXT:        Value:           0x30
112 # CHECK-NEXT:      - Tag:             DT_FLAGS_1
113 # CHECK-NEXT:        Value:           0x31
114 # CHECK-NEXT:      - Tag:             DT_VERSYM
115 # CHECK-NEXT:        Value:           0x32
116 # CHECK-NEXT:      - Tag:             DT_VERDEF
117 # CHECK-NEXT:        Value:           0x33
118 # CHECK-NEXT:      - Tag:             DT_VERDEFNUM
119 # CHECK-NEXT:        Value:           0x34
120 # CHECK-NEXT:      - Tag:             DT_VERNEED
121 # CHECK-NEXT:        Value:           0x35
122 # CHECK-NEXT:      - Tag:             DT_VERNEEDNUM
123 # CHECK-NEXT:        Value:           0x36
124 # CHECK-NEXT:      - Tag:             DT_USED
125 # CHECK-NEXT:        Value:           0x1
127 !ELF
128 FileHeader:
129   Class: ELFCLASS64
130   Data:  ELFDATA2LSB
131   Type:  ET_DYN
132 Sections:
133   - Name:            .dynamic
134     Type:            SHT_DYNAMIC
135     Address:         0x0000000000001000
136     AddressAlign:    0x0000000000002000
137     EntSize:         [[ENTSIZE]]
138     Entries:
139       - Tag:             DT_NULL
140         Value:           0x0000000000000000
141       - Tag:             DT_NEEDED
142         Value:           0x0000000000000001
143       - Tag:             DT_PLTRELSZ
144         Value:           0x0000000000000002
145       - Tag:             DT_PLTGOT
146         Value:           0x0000000000000003
147       - Tag:             DT_HASH
148         Value:           0x0000000000000004
149       - Tag:             DT_STRTAB
150         Value:           0x0000000000000005
151       - Tag:             DT_SYMTAB
152         Value:           0x0000000000000006
153       - Tag:             DT_RELA
154         Value:           0x0000000000000007
155       - Tag:             DT_RELASZ
156         Value:           0x0000000000000008
157       - Tag:             DT_RELAENT
158         Value:           0x0000000000000009
159       - Tag:             DT_STRSZ
160         Value:           0x000000000000000A
161       - Tag:             DT_SYMENT
162         Value:           0x000000000000000B
163       - Tag:             DT_INIT
164         Value:           0x000000000000000C
165       - Tag:             DT_FINI
166         Value:           0x000000000000000D
167       - Tag:             DT_SONAME
168         Value:           0x000000000000000E
169       - Tag:             DT_RPATH
170         Value:           0x000000000000000F
171       - Tag:             DT_SYMBOLIC
172         Value:           0x0000000000000010
173       - Tag:             DT_REL
174         Value:           0x0000000000000011
175       - Tag:             DT_RELSZ
176         Value:           0x0000000000000012
177       - Tag:             DT_RELENT
178         Value:           0x0000000000000013
179       - Tag:             DT_PLTREL
180         Value:           0x0000000000000014
181       - Tag:             DT_DEBUG
182         Value:           0x0000000000000015
183       - Tag:             DT_TEXTREL
184         Value:           0x0000000000000016
185       - Tag:             DT_JMPREL
186         Value:           0x0000000000000017
187       - Tag:             DT_BIND_NOW
188         Value:           0x0000000000000018
189       - Tag:             DT_INIT_ARRAY
190         Value:           0x0000000000000019
191       - Tag:             DT_FINI_ARRAY
192         Value:           0x000000000000001A
193       - Tag:             DT_INIT_ARRAYSZ
194         Value:           0x000000000000001B
195       - Tag:             DT_FINI_ARRAYSZ
196         Value:           0x000000000000001C
197       - Tag:             DT_RUNPATH
198         Value:           0x000000000000001D
199       - Tag:             DT_FLAGS
200         Value:           0x000000000000001E
201       - Tag:             DT_PREINIT_ARRAY
202         Value:           0x000000000000001F
203       - Tag:             DT_PREINIT_ARRAYSZ
204         Value:           0x0000000000000020
205       - Tag:             DT_SYMTAB_SHNDX
206         Value:           0x0000000000000021
207       - Tag:             DT_RELRSZ
208         Value:           0x0000000000000022
209       - Tag:             DT_RELR
210         Value:           0x0000000000000023
211       - Tag:             DT_RELRENT
212         Value:           0x0000000000000024
213       - Tag:             DT_ANDROID_REL
214         Value:           0x0000000000000025
215       - Tag:             DT_ANDROID_RELSZ
216         Value:           0x0000000000000026
217       - Tag:             DT_ANDROID_RELA
218         Value:           0x0000000000000027
219       - Tag:             DT_ANDROID_RELASZ
220         Value:           0x0000000000000028
221       - Tag:             DT_ANDROID_RELR
222         Value:           0x0000000000000029
223       - Tag:             DT_ANDROID_RELRSZ
224         Value:           0x000000000000002A
225       - Tag:             DT_ANDROID_RELRENT
226         Value:           0x000000000000002B
227       - Tag:             DT_GNU_HASH
228         Value:           0x000000000000002C
229       - Tag:             DT_TLSDESC_PLT
230         Value:           0x000000000000002D
231       - Tag:             DT_TLSDESC_GOT
232         Value:           0x000000000000002E
233       - Tag:             DT_RELACOUNT
234         Value:           0x000000000000002F
235       - Tag:             DT_RELCOUNT
236         Value:           0x0000000000000030
237       - Tag:             DT_FLAGS_1
238         Value:           0x0000000000000031
239       - Tag:             DT_VERSYM
240         Value:           0x0000000000000032
241       - Tag:             DT_VERDEF
242         Value:           0x0000000000000033
243       - Tag:             DT_VERDEFNUM
244         Value:           0x0000000000000034
245       - Tag:             DT_VERNEED
246         Value:           0x0000000000000035
247       - Tag:             DT_VERNEEDNUM
248         Value:           0x0000000000000036
249       - Tag:             DT_USED
250         Value:           0x0000000000000001
252 ## Test the behavior when sh_entsize is invalid.
253 ## Here we use 0xFE as an arbitrary broken value instead of expected 0x16.
255 # RUN: yaml2obj -DENTSIZE=0xff %s -o %t2
256 # RUN: not obj2yaml %t2 2>&1 | FileCheck %s --check-prefix=ENTSIZE
258 # ENTSIZE: section [index 1] has invalid sh_entsize: expected 16, but got 255