Add MachO-x86-64 tests.
[oota-llvm.git] / test / tools / llvm-readobj / sections-ext.test
1 RUN: llvm-readobj -s -st -sr -sd %p/Inputs/trivial.obj.coff-i386 \
2 RUN:   | FileCheck %s -check-prefix COFF
3 RUN: llvm-readobj -s -st -sr -sd %p/Inputs/trivial.obj.elf-i386 \
4 RUN:   | FileCheck %s -check-prefix ELF
5 RUN: llvm-readobj -s -st -sr -sd %p/Inputs/trivial.obj.macho-i386 \
6 RUN:   | FileCheck %s -check-prefix MACHO-I386
7 RUN: llvm-readobj -s -st -sr -sd %p/Inputs/trivial.obj.macho-x86-64 \
8 RUN:   | FileCheck %s -check-prefix MACHO-X86-64
9
10 COFF:      Sections [
11 COFF-NEXT:   Section {
12 COFF-NEXT:     Number: 1
13 COFF-NEXT:     Name: .text (2E 74 65 78 74 00 00 00)
14 COFF-NEXT:     VirtualSize: 0x0
15 COFF-NEXT:     VirtualAddress: 0x0
16 COFF-NEXT:     RawDataSize: 22
17 COFF-NEXT:     PointerToRawData: 0x64
18 COFF-NEXT:     PointerToRelocations: 0x7A
19 COFF-NEXT:     PointerToLineNumbers: 0x0
20 COFF-NEXT:     RelocationCount: 3
21 COFF-NEXT:     LineNumberCount: 0
22 COFF-NEXT:     Characteristics [ (0x60500020)
23 COFF-NEXT:       IMAGE_SCN_ALIGN_16BYTES (0x500000)
24 COFF-NEXT:       IMAGE_SCN_CNT_CODE (0x20)
25 COFF-NEXT:       IMAGE_SCN_MEM_EXECUTE (0x20000000)
26 COFF-NEXT:       IMAGE_SCN_MEM_READ (0x40000000)
27 COFF-NEXT:     ]
28 COFF-NEXT:     Relocations [
29 COFF-NEXT:       0x4 IMAGE_REL_I386_DIR32 .data
30 COFF-NEXT:       0x9 IMAGE_REL_I386_REL32 _puts
31 COFF-NEXT:       0xE IMAGE_REL_I386_REL32 _SomeOtherFunction
32 COFF-NEXT:     ]
33 COFF-NEXT:     Symbols [
34 COFF-NEXT:       Symbol {
35 COFF-NEXT:         Name: .text
36 COFF-NEXT:         Value: 0
37 COFF-NEXT:         Section: .text (1)
38 COFF-NEXT:         BaseType: Null (0x0)
39 COFF-NEXT:         ComplexType: Null (0x0)
40 COFF-NEXT:         StorageClass: Static (0x3)
41 COFF-NEXT:         AuxSymbolCount: 1
42 COFF-NEXT:         AuxSectionDef {
43 COFF-NEXT:           Length: 22
44 COFF-NEXT:           RelocationCount: 3
45 COFF-NEXT:           LineNumberCount: 0
46 COFF-NEXT:           Checksum: 0x0
47 COFF-NEXT:           Number: 1
48 COFF-NEXT:           Selection: 0x0
49 COFF-NEXT:           Unused: (00 00 00)
50 COFF-NEXT:         }
51 COFF-NEXT:       }
52 COFF-NEXT:       Symbol {
53 COFF-NEXT:         Name: _main
54 COFF-NEXT:         Value: 0
55 COFF-NEXT:         Section: .text (1)
56 COFF-NEXT:         BaseType: Null (0x0)
57 COFF-NEXT:         ComplexType: Function (0x2)
58 COFF-NEXT:         StorageClass: External (0x2)
59 COFF-NEXT:         AuxSymbolCount: 0
60 COFF-NEXT:       }
61 COFF-NEXT:     ]
62 COFF-NEXT:     SectionData (
63 COFF-NEXT:       0000: 50C70424 00000000 E8000000 00E80000  |P..$............|
64 COFF-NEXT:       0010: 000031C0 5AC3                        |..1.Z.|
65 COFF-NEXT:     )
66 COFF-NEXT:   }
67
68 ELF:      Sections [
69 ELF-NEXT:   Section {
70 ELF-NEXT:     Index: 0
71 ELF-NEXT:     Name:  (0)
72 ELF-NEXT:     Type: SHT_NULL (0x0)
73 ELF-NEXT:     Flags [ (0x0)
74 ELF-NEXT:     ]
75 ELF-NEXT:     Address: 0x0
76 ELF-NEXT:     Offset: 0x0
77 ELF-NEXT:     Size: 0
78 ELF-NEXT:     Link: 0
79 ELF-NEXT:     Info: 0
80 ELF-NEXT:     AddressAlignment: 0
81 ELF-NEXT:     EntrySize: 0
82 ELF-NEXT:     Relocations [
83 ELF-NEXT:     ]
84 ELF-NEXT:     Symbols [
85 ELF-NEXT:     ]
86 ELF-NEXT:     SectionData (
87 ELF-NEXT:     )
88 ELF-NEXT:   }
89 ELF-NEXT:   Section {
90 ELF-NEXT:     Index: 1
91 ELF-NEXT:     Name: .text (5)
92 ELF-NEXT:     Type: SHT_PROGBITS (0x1)
93 ELF-NEXT:     Flags [ (0x6)
94 ELF-NEXT:       SHF_ALLOC (0x2)
95 ELF-NEXT:       SHF_EXECINSTR (0x4)
96 ELF-NEXT:     ]
97 ELF-NEXT:     Address: 0x0
98 ELF-NEXT:     Offset: 0x40
99 ELF-NEXT:     Size: 42
100 ELF-NEXT:     Link: 0
101 ELF-NEXT:     Info: 0
102 ELF-NEXT:     AddressAlignment: 16
103 ELF-NEXT:     EntrySize: 0
104 ELF-NEXT:     Relocations [
105 ELF-NEXT:       0xC R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0
106 ELF-NEXT:       0x12 R_386_GOTOFF .L.str 0x0
107 ELF-NEXT:       0x1A R_386_PLT32 puts 0x0
108 ELF-NEXT:       0x1F R_386_PLT32 SomeOtherFunction 0x0
109 ELF-NEXT:     ]
110 ELF-NEXT:     Symbols [
111 ELF-NEXT:       Symbol {
112 ELF-NEXT:         Name: .text (0)
113 ELF-NEXT:         Value: 0x0
114 ELF-NEXT:         Size: 0
115 ELF-NEXT:         Binding: Local (0x0)
116 ELF-NEXT:         Type: Section (0x3)
117 ELF-NEXT:         Other: 0
118 ELF-NEXT:         Section: .text (0x1)
119 ELF-NEXT:       }
120 ELF-NEXT:       Symbol {
121 ELF-NEXT:         Name: main (12)
122 ELF-NEXT:         Value: 0x0
123 ELF-NEXT:         Size: 42
124 ELF-NEXT:         Binding: Global (0x1)
125 ELF-NEXT:         Type: Function (0x2)
126 ELF-NEXT:         Other: 0
127 ELF-NEXT:         Section: .text (0x1)
128 ELF-NEXT:       }
129 ELF-NEXT:     ]
130 ELF-NEXT:     SectionData (
131 ELF-NEXT:       0000: 5383EC08 E8000000 005B81C3 03000000  |S........[......|
132 ELF-NEXT:       0010: 8D830000 00008904 24E8FCFF FFFFE8FC  |........$.......|
133 ELF-NEXT:       0020: FFFFFF31 C083C408 5BC3               |...1....[.|
134 ELF-NEXT:     )
135 ELF-NEXT:   }
136
137 MACHO-I386:      Sections [
138 MACHO-I386-NEXT:   Section {
139 MACHO-I386-NEXT:     Index: 0
140 MACHO-I386-NEXT:     Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
141 MACHO-I386-NEXT:     Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
142 MACHO-I386-NEXT:     Address: 0x0
143 MACHO-I386-NEXT:     Size: 0x22
144 MACHO-I386-NEXT:     Offset: 324
145 MACHO-I386-NEXT:     Alignment: 4
146 MACHO-I386-NEXT:     RelocationOffset: 0x174
147 MACHO-I386-NEXT:     RelocationCount: 4
148 MACHO-I386-NEXT:     Type: 0x0
149 MACHO-I386-NEXT:     Attributes [ (0x800004)
150 MACHO-I386-NEXT:       PureInstructions (0x800000)
151 MACHO-I386-NEXT:       SomeInstructions (0x4)
152 MACHO-I386-NEXT:     ]
153 MACHO-I386-NEXT:     Reserved1: 0x0
154 MACHO-I386-NEXT:     Reserved2: 0x0
155 MACHO-I386-NEXT:     Relocations [
156 MACHO-I386-NEXT:       0x18 GENERIC_RELOC_VANILLA _SomeOtherFunction 0x0
157 MACHO-I386-NEXT:       0x13 GENERIC_RELOC_VANILLA _puts 0x0
158 MACHO-I386-NEXT:       0xB GENERIC_RELOC_LOCAL_SECTDIFF _main 0x{{[0-9A-F]+}}
159 MACHO-I386-NEXT:       0x0 GENERIC_RELOC_PAIR _main 0x{{[0-9A-F]+}}
160 MACHO-I386-NEXT:     ]
161 MACHO-I386-NEXT:     Symbols [
162 MACHO-I386-NEXT:       Symbol {
163 MACHO-I386-NEXT:         Name: _main (1)
164 MACHO-I386-NEXT:         Type: 0xF
165 MACHO-I386-NEXT:         Section: __text (0x1)
166 MACHO-I386-NEXT:         RefType: UndefinedNonLazy (0x0)
167 MACHO-I386-NEXT:         Flags [ (0x0)
168 MACHO-I386-NEXT:         ]
169 MACHO-I386-NEXT:         Value: 0x0
170 MACHO-I386-NEXT:       }
171 MACHO-I386-NEXT:     ]
172 MACHO-I386-NEXT:     SectionData (
173 MACHO-I386-NEXT:       0000: 83EC0CE8 00000000 588D801A 00000089  |........X.......|
174 MACHO-I386-NEXT:       0010: 0424E8E9 FFFFFFE8 E4FFFFFF 31C083C4  |.$..........1...|
175 MACHO-I386-NEXT:       0020: 0CC3                                 |..|
176 MACHO-I386-NEXT:     )
177 MACHO-I386-NEXT:   }
178
179
180 MACHO-X86-64:     Sections [
181 MACHO-X86-64-NEXT:  Section {
182 MACHO-X86-64-NEXT:    Index: 0
183 MACHO-X86-64-NEXT:    Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
184 MACHO-X86-64-NEXT:    Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
185 MACHO-X86-64-NEXT:    Address: 0x0
186 MACHO-X86-64-NEXT:    Size: 0x16
187 MACHO-X86-64-NEXT:    Offset: 368
188 MACHO-X86-64-NEXT:    Alignment: 4
189 MACHO-X86-64-NEXT:    RelocationOffset: 0x194
190 MACHO-X86-64-NEXT:    RelocationCount: 3
191 MACHO-X86-64-NEXT:    Type: 0x0
192 MACHO-X86-64-NEXT:    Attributes [ (0x800004)
193 MACHO-X86-64-NEXT:      PureInstructions (0x800000)
194 MACHO-X86-64-NEXT:      SomeInstructions (0x4)
195 MACHO-X86-64-NEXT:    ]
196 MACHO-X86-64-NEXT:    Reserved1: 0x0
197 MACHO-X86-64-NEXT:    Reserved2: 0x0
198 MACHO-X86-64-NEXT:    Relocations [
199 MACHO-X86-64-NEXT:      0xE X86_64_RELOC_BRANCH _SomeOtherFunction 0x0
200 MACHO-X86-64-NEXT:      0x9 X86_64_RELOC_BRANCH _puts 0x0
201 MACHO-X86-64-NEXT:      0x4 X86_64_RELOC_SIGNED L_.str 0x0
202 MACHO-X86-64-NEXT:    ]
203 MACHO-X86-64-NEXT:    Symbols [
204 MACHO-X86-64-NEXT:      Symbol {
205 MACHO-X86-64-NEXT:        Name: _main (1)
206 MACHO-X86-64-NEXT:        Type: 0xF
207 MACHO-X86-64-NEXT:        Section: __text (0x1)
208 MACHO-X86-64-NEXT:        RefType: UndefinedNonLazy (0x0)
209 MACHO-X86-64-NEXT:        Flags [ (0x0)
210 MACHO-X86-64-NEXT:        ]
211 MACHO-X86-64-NEXT:        Value: 0x0
212 MACHO-X86-64-NEXT:      }
213 MACHO-X86-64-NEXT:    ]
214 MACHO-X86-64-NEXT:    SectionData (
215 MACHO-X86-64-NEXT:      0000: 50488D3D 00000000 E8000000 00E80000  |PH.=............|
216 MACHO-X86-64-NEXT:      0010: 000031C0 5AC3                        |..1.Z.|
217 MACHO-X86-64-NEXT:    )
218 MACHO-X86-64-NEXT:  }
219 MACHO-X86-64-NEXT:  Section {
220 MACHO-X86-64-NEXT:    Index: 1
221 MACHO-X86-64-NEXT:    Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00)
222 MACHO-X86-64-NEXT:    Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
223 MACHO-X86-64-NEXT:    Address: 0x16
224 MACHO-X86-64-NEXT:    Size: 0xD
225 MACHO-X86-64-NEXT:    Offset: 390
226 MACHO-X86-64-NEXT:    Alignment: 0
227 MACHO-X86-64-NEXT:    RelocationOffset: 0x0
228 MACHO-X86-64-NEXT:    RelocationCount: 0
229 MACHO-X86-64-NEXT:    Type: ExtReloc (0x2)
230 MACHO-X86-64-NEXT:    Attributes [ (0x0)
231 MACHO-X86-64-NEXT:    ]
232 MACHO-X86-64-NEXT:    Reserved1: 0x0
233 MACHO-X86-64-NEXT:    Reserved2: 0x0
234 MACHO-X86-64-NEXT:    Relocations [
235 MACHO-X86-64-NEXT:    ]
236 MACHO-X86-64-NEXT:    Symbols [
237 MACHO-X86-64-NEXT:      Symbol {
238 MACHO-X86-64-NEXT:        Name: L_.str (32)
239 MACHO-X86-64-NEXT:        Type: Section (0xE)
240 MACHO-X86-64-NEXT:        Section: __cstring (0x2)
241 MACHO-X86-64-NEXT:        RefType: UndefinedNonLazy (0x0)
242 MACHO-X86-64-NEXT:        Flags [ (0x0)
243 MACHO-X86-64-NEXT:        ]
244 MACHO-X86-64-NEXT:        Value: 0x16
245 MACHO-X86-64-NEXT:      }
246 MACHO-X86-64-NEXT:    ]
247 MACHO-X86-64-NEXT:    SectionData (
248 MACHO-X86-64-NEXT:      0000: 48656C6C 6F20576F 726C640A 00        |Hello World..|
249 MACHO-X86-64-NEXT:    )
250 MACHO-X86-64-NEXT:  }
251 MACHO-X86-64-NEXT:]