xref: /llvm-project/llvm/test/tools/obj2yaml/XCOFF/aix.yaml (revision b5abaea3c0de605c8145035b21a5ee492883ebd7)
1## This is a basic test to check if we can parse the XCOFF object file correctly.
2# RUN: yaml2obj %s -DMAGIC=0x01DF -o %t-32
3# RUN: obj2yaml %t-32 | FileCheck %s --check-prefix=CHECK32
4# RUN: yaml2obj %s -DMAGIC=0x01F7 -o %t-64
5# RUN: obj2yaml %t-64 -o %t-64.yaml 2>&1 | count 0
6# RUN: FileCheck --input-file %t-64.yaml %s --check-prefix=CHECK64
7
8# CHECK32:      --- !XCOFF
9# CHECK32-NEXT: FileHeader:
10# CHECK32-NEXT:   MagicNumber:     0x1DF
11# CHECK32-NEXT:   NumberOfSections: 2
12# CHECK32-NEXT:   CreationTime:    0
13# CHECK32-NEXT:   OffsetToSymbolTable: 0x80
14# CHECK32-NEXT:   EntriesInSymbolTable: 4
15# CHECK32-NEXT:   AuxiliaryHeaderSize: 0
16# CHECK32-NEXT:   Flags:           0x0
17# CHECK32-NEXT: Sections:
18# CHECK32-NEXT:   - Name:            .text
19# CHECK32-NEXT:     Address:         0x0
20# CHECK32-NEXT:     Size:            0x4
21# CHECK32-NEXT:     FileOffsetToData: 0x64
22# CHECK32-NEXT:     FileOffsetToRelocations: 0x6C
23# CHECK32-NEXT:     FileOffsetToLineNumbers: 0x0
24# CHECK32-NEXT:     NumberOfRelocations: 0x1
25# CHECK32-NEXT:     NumberOfLineNumbers: 0x0
26# CHECK32-NEXT:     Flags:           [ STYP_TEXT ]
27# CHECK32-NEXT:     SectionData:     '00007400'
28# CHECK32-NEXT:     Relocations:
29# CHECK32-NEXT:       - Address:         0xE
30# CHECK32-NEXT:         Symbol:          0x12
31# CHECK32-NEXT:         Info:            0xF
32# CHECK32-NEXT:         Type:            0x3
33# CHECK32-NEXT:   - Name:            .data
34# CHECK32-NEXT:     Address:         0x0
35# CHECK32-NEXT:     Size:            0x4
36# CHECK32-NEXT:     FileOffsetToData: 0x68
37# CHECK32-NEXT:     FileOffsetToRelocations: 0x76
38# CHECK32-NEXT:     FileOffsetToLineNumbers: 0x0
39# CHECK32-NEXT:     NumberOfRelocations: 0x1
40# CHECK32-NEXT:     NumberOfLineNumbers: 0x0
41# CHECK32-NEXT:     Flags:           [ STYP_DATA ]
42# CHECK32-NEXT:     SectionData:     '00007700'
43# CHECK32-NEXT:     Relocations:
44# CHECK32-NEXT:       - Address:         0x60
45# CHECK32-NEXT:         Symbol:          0x8
46# CHECK32-NEXT:         Info:            0x1F
47# CHECK32-NEXT:         Type:            0x0
48# CHECK32-NEXT: Symbols:
49# CHECK32-NEXT:   - Name:            TestforXcoff
50# CHECK32-NEXT:     Value:           0x0
51# CHECK32-NEXT:     Section:         N_UNDEF
52# CHECK32-NEXT:     Type:            0x0
53# CHECK32-NEXT:     StorageClass:    C_EXT
54# CHECK32-NEXT:     NumberOfAuxEntries: 1
55# CHECK32-NEXT:     AuxEntries:
56# CHECK32-NEXT:       - Type:            AUX_CSECT
57# CHECK32-NEXT:         ParameterHashIndex: 0
58# CHECK32-NEXT:         TypeChkSectNum:  0
59# CHECK32-NEXT:         SymbolType:      XTY_ER
60# CHECK32-NEXT:         SymbolAlignment: 0
61# CHECK32-NEXT:         StorageMappingClass: XMC_PR
62# CHECK32-NEXT:         SectionOrLength: 0
63# CHECK32-NEXT:         StabInfoIndex:   0
64# CHECK32-NEXT:         StabSectNum:     0
65# CHECK32-NEXT:   - Name:            .data
66# CHECK32-NEXT:     Value:           0x70
67# CHECK32-NEXT:     Section:         .data
68# CHECK32-NEXT:     Type:            0x0
69# CHECK32-NEXT:     StorageClass:    C_HIDEXT
70# CHECK32-NEXT:     NumberOfAuxEntries: 1
71# CHECK32-NEXT:     AuxEntries:
72# CHECK32-NEXT:       - Type:            AUX_CSECT
73# CHECK32-NEXT:         ParameterHashIndex: 0
74# CHECK32-NEXT:         TypeChkSectNum:  0
75# CHECK32-NEXT:         SymbolType:      XTY_ER
76# CHECK32-NEXT:         SymbolAlignment: 0
77# CHECK32-NEXT:         StorageMappingClass: XMC_PR
78# CHECK32-NEXT:         SectionOrLength: 0
79# CHECK32-NEXT:         StabInfoIndex:   0
80# CHECK32-NEXT:         StabSectNum:     0
81
82# CHECK64:      --- !XCOFF
83# CHECK64-NEXT: FileHeader:
84# CHECK64-NEXT:   MagicNumber:     0x1F7
85# CHECK64-NEXT:   NumberOfSections: 2
86# CHECK64-NEXT:   CreationTime:    0
87# CHECK64-NEXT:   OffsetToSymbolTable: 0xCC
88# CHECK64-NEXT:   EntriesInSymbolTable: 4
89# CHECK64-NEXT:   AuxiliaryHeaderSize: 0
90# CHECK64-NEXT:   Flags:           0x0
91# CHECK64-NEXT: Sections:
92# CHECK64-NEXT:   - Name:            .text
93# CHECK64-NEXT:     Address:         0x0
94# CHECK64-NEXT:     Size:            0x4
95# CHECK64-NEXT:     FileOffsetToData: 0xA8
96# CHECK64-NEXT:     FileOffsetToRelocations: 0xB0
97# CHECK64-NEXT:     FileOffsetToLineNumbers: 0x0
98# CHECK64-NEXT:     NumberOfRelocations: 0x1
99# CHECK64-NEXT:     NumberOfLineNumbers: 0x0
100# CHECK64-NEXT:     Flags:           [ STYP_TEXT ]
101# CHECK64-NEXT:     SectionData:     '00007400'
102# CHECK64-NEXT:     Relocations:
103# CHECK64-NEXT:       - Address:         0xE
104# CHECK64-NEXT:         Symbol:          0x12
105# CHECK64-NEXT:         Info:            0xF
106# CHECK64-NEXT:         Type:            0x3
107# CHECK64-NEXT:   - Name:            .data
108# CHECK64-NEXT:     Address:         0x0
109# CHECK64-NEXT:     Size:            0x4
110# CHECK64-NEXT:     FileOffsetToData: 0xAC
111# CHECK64-NEXT:     FileOffsetToRelocations: 0xBE
112# CHECK64-NEXT:     FileOffsetToLineNumbers: 0x0
113# CHECK64-NEXT:     NumberOfRelocations: 0x1
114# CHECK64-NEXT:     NumberOfLineNumbers: 0x0
115# CHECK64-NEXT:     Flags:           [ STYP_DATA ]
116# CHECK64-NEXT:     SectionData:     '00007700'
117# CHECK64-NEXT:     Relocations:
118# CHECK64-NEXT:       - Address:         0x60
119# CHECK64-NEXT:         Symbol:          0x8
120# CHECK64-NEXT:         Info:            0x1F
121# CHECK64-NEXT:         Type:            0x0
122# CHECK64-NEXT: Symbols:
123# CHECK64-NEXT:   - Name:            TestforXcoff
124# CHECK64-NEXT:     Value:           0x0
125# CHECK64-NEXT:     Section:         N_UNDEF
126# CHECK64-NEXT:     Type:            0x0
127# CHECK64-NEXT:     StorageClass:    C_EXT
128# CHECK64-NEXT:     NumberOfAuxEntries: 1
129# CHECK64-NEXT:     AuxEntries:
130# CHECK64-NEXT:       - Type:            AUX_CSECT
131# CHECK64-NEXT:         ParameterHashIndex: 0
132# CHECK64-NEXT:         TypeChkSectNum:  0
133# CHECK64-NEXT:         SymbolType:      XTY_ER
134# CHECK64-NEXT:         SymbolAlignment: 0
135# CHECK64-NEXT:         StorageMappingClass: XMC_PR
136# CHECK64-NEXT:         SectionOrLengthLo: 0
137# CHECK64-NEXT:         SectionOrLengthHi: 0
138# CHECK64-NEXT:   - Name:            .data
139# CHECK64-NEXT:     Value:           0x70
140# CHECK64-NEXT:     Section:         .data
141# CHECK64-NEXT:     Type:            0x0
142# CHECK64-NEXT:     StorageClass:    C_HIDEXT
143# CHECK64-NEXT:     NumberOfAuxEntries: 1
144# CHECK64-NEXT:     AuxEntries:
145# CHECK64-NEXT:       - Type:            AUX_CSECT
146# CHECK64-NEXT:         ParameterHashIndex: 0
147# CHECK64-NEXT:         TypeChkSectNum:  0
148# CHECK64-NEXT:         SymbolType:      XTY_ER
149# CHECK64-NEXT:         SymbolAlignment: 0
150# CHECK64-NEXT:         StorageMappingClass: XMC_PR
151# CHECK64-NEXT:         SectionOrLengthLo: 0
152# CHECK64-NEXT:         SectionOrLengthHi: 0
153
154--- !XCOFF
155FileHeader:
156  MagicNumber: [[MAGIC]]
157Sections:
158  - Name:        .text
159    Flags:       [ STYP_TEXT ]
160    SectionData: '00007400'
161    Relocations:
162      - Address: 0xE
163        Symbol:  0x12
164        Info:    0xF
165        Type:    0x3
166  - Name:        .data
167    Flags:       [ STYP_DATA ]
168    SectionData: '00007700'
169    Relocations:
170      - Address: 0x60
171        Symbol:  0x8
172        Info:    0x1F
173        Type:    0x0
174Symbols:
175  - Name:               TestforXcoff
176    Value:              0x0
177    Section:            N_UNDEF
178    Type:               0x0
179    StorageClass:       C_EXT
180    NumberOfAuxEntries: 1
181    AuxEntries:
182       - Type:          AUX_CSECT
183  - Name:               .data
184    Value:              0x70
185    Section:            .data
186    Type:               0x0
187    StorageClass:       C_HIDEXT
188    NumberOfAuxEntries: 1
189    AuxEntries:
190       - Type:          AUX_CSECT
191