Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / yaml2obj / ELF / implicit-sections-info.yaml
blob4409c2ae07edaac6cc63f74d7710fea5d713f1e1
1 ## Check the values of sh_info fields set by default for
2 ## explicitly listed .dynstr, .dynsym, .strtab and .symtab
3 ## sections.
4 ##
5 ## For symbol table sections, sh_info has a value which is
6 ## one greater than the symbol table index of the last
7 ## local symbol.
8 ##
9 ## sh_info isn't set for string table sections.
11 # RUN: yaml2obj --docnum=1 %s -o %t
12 # RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE1
14 # CASE1:      Name: .symtab
15 # CASE1:      Info:
16 # CASE1-SAME: 2
17 # CASE1:      Name: .strtab
18 # CASE1:      Info:
19 # CASE1-SAME: 0
20 # CASE1:      Name: .dynsym
21 # CASE1:      Info:
22 # CASE1-SAME: 1
23 # CASE1:      Name: .dynstr
24 # CASE1:      Info:
25 # CASE1-SAME: 0
27 --- !ELF
28 FileHeader:
29   Class: ELFCLASS64
30   Data:  ELFDATA2LSB
31   Type:  ET_DYN
32 Sections:
33   - Name:  .symtab
34     Type:  SHT_SYMTAB
35   - Name:  .strtab
36     Type:  SHT_STRTAB
37   - Name:  .dynsym
38     Type:  SHT_DYNSYM
39   - Name:  .dynstr
40     Type:  SHT_STRTAB
41 Symbols:
42   - Name:    local
43   - Name:    global1
44     Binding: STB_GLOBAL
45 DynamicSymbols:
46   - Name:    global2
47     Binding: STB_GLOBAL
49 ## In the case when these sections are not defined in YAML, the
50 ## behavior is the same as when we define them, but do not set the Info.
52 # RUN: yaml2obj --docnum=2 %s -o %t
53 # RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE2
55 # CASE2:     Name: .dynsym
56 # CASE2-NOT: Info:
57 # CASE2:     Info: 1{{$}}
58 # CASE2:     Name: .dynstr
59 # CASE2-NOT: Info:
60 # CASE2:     Info: 0{{$}}
61 # CASE2:     Name: .symtab
62 # CASE2-NOT: Info:
63 # CASE2:     Info: 2{{$}}
64 # CASE2:     Name: .strtab
65 # CASE2-NOT: Info:
66 # CASE2:     Info: 0{{$}}
68 --- !ELF
69 FileHeader:
70   Class: ELFCLASS64
71   Data:  ELFDATA2LSB
72   Type:  ET_DYN
73 Symbols:
74   - Name:    local
75   - Name:    global1
76     Binding: STB_GLOBAL
77 DynamicSymbols:
78   - Name:    global2
79     Binding: STB_GLOBAL
81 ## Check we are able to set any sh_info explicitly.
83 # RUN: yaml2obj --docnum=3 %s -o %t
84 # RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix=CASE3
86 # CASE3:      Name: .dynstr
87 # CASE3:      Info:
88 # CASE3-SAME: 10
89 # CASE3:      Name: .dynsym
90 # CASE3:      Info:
91 # CASE3-SAME: 11
92 # CASE3:      Name: .strtab
93 # CASE3:      Info:
94 # CASE3-SAME: 12
95 # CASE3:      Name: .symtab
96 # CASE3:      Info:
97 # CASE3-SAME: 13
99 --- !ELF
100 FileHeader:
101   Class: ELFCLASS64
102   Data:  ELFDATA2LSB
103   Type:  ET_DYN
104 Sections:
105   - Name:  .dynstr
106     Type:  SHT_STRTAB
107     Info:  10
108   - Name:  .dynsym
109     Type:  SHT_DYNSYM
110     Info:  11
111   - Name:  .strtab
112     Type:  SHT_STRTAB
113     Info:  12
114   - Name:  .symtab
115     Type:  SHT_SYMTAB
116     Info:  13
117 Symbols:
118   - Name:    local
119   - Name:    global1
120     Binding: STB_GLOBAL
121 DynamicSymbols:
122   - Name:    global2
123     Binding: STB_GLOBAL