1# Show that all regular section types are properly printed for both LLVM and 2# GNU styles. 3 4# RUN: yaml2obj %s -o %t-basic.o 5# RUN: llvm-readobj --section-headers %t-basic.o | FileCheck %s --check-prefix=LLVM 6# RUN: llvm-readelf --section-headers %t-basic.o | FileCheck %s --check-prefix=GNU 7 8# LLVM: Name: (0) 9# LLVM: Type: SHT_NULL 10# LLVM: Name: progbits 11# LLVM: Type: SHT_PROGBITS 12# LLVM: Name: rela 13# LLVM: Type: SHT_RELA 14# LLVM: Name: hash 15# LLVM: Type: SHT_HASH 16# LLVM: Name: dynamic 17# LLVM: Type: SHT_DYNAMIC 18# LLVM: Name: note 19# LLVM: Type: SHT_NOTE 20# LLVM: Name: nobits 21# LLVM: Type: SHT_NOBITS 22# LLVM: Name: rel 23# LLVM: Type: SHT_REL 24# LLVM: Name: shlib 25# LLVM: Type: SHT_SHLIB 26# LLVM: Name: dynsym 27# LLVM: Type: SHT_DYNSYM 28# LLVM: Name: init_array 29# LLVM: Type: SHT_INIT_ARRAY 30# LLVM: Name: fini_array 31# LLVM: Type: SHT_FINI_ARRAY 32# LLVM: Name: preinit_array 33# LLVM: Type: SHT_PREINIT_ARRAY 34# LLVM: Name: group 35# LLVM: Type: SHT_GROUP 36# LLVM: Name: symtab_shndx 37# LLVM: Type: SHT_SYMTAB_SHNDX 38# LLVM: Name: relr 39# LLVM: Type: SHT_RELR 40# LLVM: Name: crel 41# LLVM: Type: SHT_CREL (0x40000014) 42# LLVM: Name: android_rel 43# LLVM: Type: SHT_ANDROID_REL 44# LLVM: Name: android_rela 45# LLVM: Type: SHT_ANDROID_RELA 46# LLVM: Name: android_relr 47# LLVM: Type: SHT_ANDROID_RELR 48# LLVM: Name: llvm_odrtab 49# LLVM: Type: SHT_LLVM_ODRTAB 50# LLVM: Name: linker_options 51# LLVM: Type: SHT_LLVM_LINKER_OPTIONS 52# LLVM: Name: llvm_call_graph_profile 53# LLVM: Type: SHT_LLVM_CALL_GRAPH_PROFILE 54# LLVM: Name: llvm_addrsig 55# LLVM: Type: SHT_LLVM_ADDRSIG 56# LLVM: Name: .deplibs 57# LLVM: Type: SHT_LLVM_DEPENDENT_LIBRARIES 58# LLVM: Name: .llvm_sympart.f 59# LLVM: Type: SHT_LLVM_SYMPART 60# LLVM: Name: part1 61# LLVM: Type: SHT_LLVM_PART_EHDR 62# LLVM: Name: .phdrs 63# LLVM: Type: SHT_LLVM_PART_PHDR 64# LLVM: Name: .llvm.lto 65# LLVM: Type: SHT_LLVM_LTO 66# LLVM: Name: gnu_attributes 67# LLVM: Type: SHT_GNU_ATTRIBUTES 68# LLVM: Name: gnu_hash 69# LLVM: Type: SHT_GNU_HASH 70# LLVM: Name: gnu_verdef 71# LLVM: Type: SHT_GNU_verdef 72# LLVM: Name: gnu_verneed 73# LLVM: Type: SHT_GNU_verneed 74# LLVM: Name: unknown 75# LLVM: Type: Unknown (0x1000) 76# LLVM: Name: loos 77# LLVM: Type: Unknown (0x60000000) 78# LLVM: Name: fooos 79# LLVM: Type: Unknown (0x60000F00) 80# LLVM: Name: hios 81# LLVM: Type: SHT_GNU_versym 82# LLVM: Name: loproc 83# LLVM: Type: Unknown (0x70000000) 84# LLVM: Name: fooproc 85# LLVM: Type: Unknown (0x70000F00) 86# LLVM: Name: hiproc 87# LLVM: Type: Unknown (0x7FFFFFFF) 88# LLVM: Name: louser 89# LLVM: Type: Unknown (0x80000000) 90# LLVM: Name: foouser 91# LLVM: Type: Unknown (0x80000F00) 92# LLVM: Name: hiuser 93# LLVM: Type: Unknown (0xFFFFFFFF) 94# LLVM: Name: .symtab 95# LLVM: Type: SHT_SYMTAB 96# LLVM: Name: .strtab 97# LLVM: Type: SHT_STRTAB 98 99# GNU: [ 0] NULL 100# GNU-NEXT: progbits PROGBITS 101# GNU-NEXT: rela RELA 102# GNU-NEXT: hash HASH 103# GNU-NEXT: dynamic DYNAMIC 104# GNU-NEXT: note NOTE 105# GNU-NEXT: nobits NOBITS 106# GNU-NEXT: rel REL 107# GNU-NEXT: shlib SHLIB 108# GNU-NEXT: dynsym DYNSYM 109# GNU-NEXT: init_array INIT_ARRAY 110# GNU-NEXT: fini_array FINI_ARRAY 111# GNU-NEXT: preinit_array PREINIT_ARRAY 112# GNU-NEXT: group GROUP 113# GNU-NEXT: symtab_shndx SYMTAB SECTION INDICES 114# GNU-NEXT: relr RELR 115# GNU-NEXT: crel CREL 116# GNU-NEXT: android_rel ANDROID_REL 117# GNU-NEXT: android_rela ANDROID_RELA 118# GNU-NEXT: android_relr ANDROID_RELR 119# GNU-NEXT: llvm_odrtab LLVM_ODRTAB 120# GNU-NEXT: linker_options LLVM_LINKER_OPTIONS 121# GNU-NEXT: llvm_call_graph_profile LLVM_CALL_GRAPH_PROFILE 122# GNU-NEXT: llvm_addrsig LLVM_ADDRSIG 123# GNU-NEXT: .deplibs LLVM_DEPENDENT_LIBRARIES 124# GNU-NEXT: .llvm_sympart.f LLVM_SYMPART 125# GNU-NEXT: part1 LLVM_PART_EHDR 126# GNU-NEXT: .phdrs LLVM_PART_PHDR 127# GNU-NEXT: .llvm.lto LLVM_LTO 128# GNU-NEXT: gnu_attributes ATTRIBUTES 129# GNU-NEXT: gnu_hash GNU_HASH 130# GNU-NEXT: gnu_verdef VERDEF 131# GNU-NEXT: gnu_verneed VERNEED 132# GNU-NEXT: unknown 0x1000: <unknown> 133# GNU-NEXT: loos LOOS+0x0 134# GNU-NEXT: fooos LOOS+0xF00 135# GNU-NEXT: hios VERSYM 136# GNU-NEXT: loproc LOPROC+0x0 137# GNU-NEXT: fooproc LOPROC+0xF00 138# GNU-NEXT: hiproc LOPROC+0xFFFFFFF 139# GNU-NEXT: louser LOUSER+0x0 140# GNU-NEXT: foouser LOUSER+0xF00 141# GNU-NEXT: hiuser LOUSER+0x7FFFFFFF 142# GNU-NEXT: .symtab SYMTAB 143# GNU-NEXT: .strtab STRTAB 144 145--- !ELF 146FileHeader: 147 Class: ELFCLASS64 148 Data: ELFDATA2LSB 149 Type: ET_REL 150Sections: 151 - Name: progbits 152 Type: SHT_PROGBITS 153 - Name: rela 154 Type: SHT_RELA 155 Info: progbits 156 - Name: hash 157 Type: SHT_HASH 158 Content: '' 159 - Name: dynamic 160 Type: SHT_DYNAMIC 161 - Name: note 162 Type: SHT_NOTE 163 Notes: [] 164 - Name: nobits 165 Type: SHT_NOBITS 166 - Name: rel 167 Type: SHT_REL 168 Info: progbits 169 - Name: shlib 170 Type: SHT_SHLIB 171 - Name: dynsym 172 Type: SHT_DYNSYM 173 Link: .strtab 174 - Name: init_array 175 Type: SHT_INIT_ARRAY 176 - Name: fini_array 177 Type: SHT_FINI_ARRAY 178 - Name: preinit_array 179 Type: SHT_PREINIT_ARRAY 180 - Name: group 181 Type: SHT_GROUP 182 Info: foo 183 Members: 184 - SectionOrType: 0 185 - Name: symtab_shndx 186 Type: SHT_SYMTAB_SHNDX 187 Link: .symtab 188 Entries: [ 0, 1 ] 189 - Name: relr 190 Type: SHT_RELR 191 - Name: crel 192 Type: SHT_CREL 193 - Name: android_rel 194 Type: SHT_ANDROID_REL 195 - Name: android_rela 196 Type: SHT_ANDROID_RELA 197 - Name: android_relr 198 Type: SHT_ANDROID_RELR 199 - Name: llvm_odrtab 200 Type: SHT_LLVM_ODRTAB 201 - Name: linker_options 202 Type: SHT_LLVM_LINKER_OPTIONS 203 - Name: llvm_call_graph_profile 204 Type: SHT_LLVM_CALL_GRAPH_PROFILE 205 - Name: llvm_addrsig 206 Type: SHT_LLVM_ADDRSIG 207 Symbols: 208 - Name: .deplibs 209 Type: SHT_LLVM_DEPENDENT_LIBRARIES 210 - Name: .llvm_sympart.f 211 Type: SHT_LLVM_SYMPART 212 - Name: part1 213 Type: SHT_LLVM_PART_EHDR 214 - Name: .phdrs 215 Type: SHT_LLVM_PART_PHDR 216 - Name: .llvm.lto 217 Type: SHT_LLVM_LTO 218 - Name: gnu_attributes 219 Type: SHT_GNU_ATTRIBUTES 220 - Name: gnu_hash 221 Type: SHT_GNU_HASH 222 Content: "" 223 - Name: gnu_verdef 224 Type: SHT_GNU_verdef 225 Entries: 226 - Name: gnu_verneed 227 Type: SHT_GNU_verneed 228 Dependencies: 229 - Name: unknown 230 Type: 0x1000 231 - Name: loos 232 Type: 0x60000000 233 - Name: fooos 234 Type: 0x60000F00 235 - Name: hios 236 Type: 0x6fffffff 237 Entries: [] 238 - Name: loproc 239 Type: 0x70000000 240 - Name: fooproc 241 Type: 0x70000F00 242 - Name: hiproc 243 Type: 0x7fffffff 244 - Name: louser 245 Type: 0x80000000 246 - Name: foouser 247 Type: 0x80000F00 248 - Name: hiuser 249 Type: 0xffffffff 250Symbols: 251 - Name: foo 252 Binding: STB_GLOBAL 253