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