Recommit r371023 "[lib/ObjectYAML] - Stop calling error(1) when mapping the st_other...
[llvm-complete.git] / test / tools / yaml2obj / symtab-shlink.yaml
blob116c2dad77d4a51706b0534874c97d63e35318db
1 ## For implicit symbol table sections, `Link` field can also
2 ## be specified in YAML. Here we test the behavior in different cases.
4 ## Check we are able to set Link = 0 for .symtab explicitly.
6 # RUN: yaml2obj --docnum=1 %s -o %t1
7 # RUN: llvm-readobj %t1 -S | FileCheck %s --check-prefix=CASE1
9 # CASE1: Name: .symtab
10 # CASE1: Link:
11 # CASE1-SAME: 0
13 --- !ELF
14 FileHeader:
15   Class:   ELFCLASS64
16   Data:    ELFDATA2LSB
17   Type:    ET_DYN
18   Machine: EM_X86_64
19 Sections:
20   - Name: .symtab
21     Type: SHT_SYMTAB
22     Link: 0
24 ## Check that by default .symtab will be linked with .strtab.
26 # RUN: yaml2obj --docnum=2 %s -o %t2
27 # RUN: llvm-readobj %t2 -S | FileCheck %s --check-prefix=CASE2
29 # CASE2:      .symtab
30 # CASE2:      Link:
31 # CASE2-SAME: 2
32 # CASE2:      Index: 2
33 # CASE2-NEXT: Name: .strtab
35 --- !ELF
36 FileHeader:
37   Class:   ELFCLASS64
38   Data:    ELFDATA2LSB
39   Type:    ET_DYN
40   Machine: EM_X86_64
41 Sections:
42   - Name: .symtab
43     Type: SHT_SYMTAB
45 ## Even if .strtab is defined in YAML, we can explicitly link .symtab
46 ## to another section.
48 # RUN: yaml2obj --docnum=3 %s -o %t3
49 # RUN: llvm-readobj %t3 -S | FileCheck %s --check-prefix=CASE3
51 # CASE3:      .symtab
52 # CASE3:      Link:
53 # CASE3-SAME: 3
54 # CASE3:      Index: 3
55 # CASE3-NEXT: Name: .foo
57 --- !ELF
58 FileHeader:
59   Class:   ELFCLASS64
60   Data:    ELFDATA2LSB
61   Type:    ET_DYN
62   Machine: EM_X86_64
63 Sections:
64   - Name: .symtab
65     Type: SHT_SYMTAB
66     Link: 3
67   - Name: .strtab
68     Type: SHT_STRTAB
69   - Name: .foo
70     Type: SHT_PROGBITS
72 ## Check we can use a section name as a Link value for .symtab.
74 # RUN: yaml2obj --docnum=4 %s -o %t4
75 # RUN: llvm-readobj %t4 -S | FileCheck %s --check-prefix=CASE4
77 # CASE4:      .symtab
78 # CASE4:      Link:
79 # CASE4-SAME: 2
80 # CASE4:      Index: 2
81 # CASE4-NEXT: Name: .foo
83 --- !ELF
84 FileHeader:
85   Class:   ELFCLASS64
86   Data:    ELFDATA2LSB
87   Type:    ET_DYN
88   Machine: EM_X86_64
89 Sections:
90   - Name: .symtab
91     Type: SHT_SYMTAB
92     Link: .foo
93   - Name: .foo
94     Type: SHT_PROGBITS