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
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
135 Address: 0x0000000000001000
136 AddressAlign: 0x0000000000002000
140 Value: 0x0000000000000000
142 Value: 0x0000000000000001
144 Value: 0x0000000000000002
146 Value: 0x0000000000000003
148 Value: 0x0000000000000004
150 Value: 0x0000000000000005
152 Value: 0x0000000000000006
154 Value: 0x0000000000000007
156 Value: 0x0000000000000008
158 Value: 0x0000000000000009
160 Value: 0x000000000000000A
162 Value: 0x000000000000000B
164 Value: 0x000000000000000C
166 Value: 0x000000000000000D
168 Value: 0x000000000000000E
170 Value: 0x000000000000000F
172 Value: 0x0000000000000010
174 Value: 0x0000000000000011
176 Value: 0x0000000000000012
178 Value: 0x0000000000000013
180 Value: 0x0000000000000014
182 Value: 0x0000000000000015
184 Value: 0x0000000000000016
186 Value: 0x0000000000000017
188 Value: 0x0000000000000018
190 Value: 0x0000000000000019
192 Value: 0x000000000000001A
193 - Tag: DT_INIT_ARRAYSZ
194 Value: 0x000000000000001B
195 - Tag: DT_FINI_ARRAYSZ
196 Value: 0x000000000000001C
198 Value: 0x000000000000001D
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
208 Value: 0x0000000000000022
210 Value: 0x0000000000000023
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
228 Value: 0x000000000000002C
229 - Tag: DT_TLSDESC_PLT
230 Value: 0x000000000000002D
231 - Tag: DT_TLSDESC_GOT
232 Value: 0x000000000000002E
234 Value: 0x000000000000002F
236 Value: 0x0000000000000030
238 Value: 0x0000000000000031
240 Value: 0x0000000000000032
242 Value: 0x0000000000000033
244 Value: 0x0000000000000034
246 Value: 0x0000000000000035
248 Value: 0x0000000000000036
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