# Show that all regular section types are properly printed for both LLVM and # GNU styles. # RUN: yaml2obj %s -o %t-basic.o # RUN: llvm-readobj --section-headers %t-basic.o | FileCheck %s --check-prefix=LLVM # RUN: llvm-readelf --section-headers %t-basic.o | FileCheck %s --check-prefix=GNU # LLVM: Name: (0) # LLVM: Type: SHT_NULL # LLVM: Name: progbits # LLVM: Type: SHT_PROGBITS # LLVM: Name: rela # LLVM: Type: SHT_RELA # LLVM: Name: hash # LLVM: Type: SHT_HASH # LLVM: Name: dynamic # LLVM: Type: SHT_DYNAMIC # LLVM: Name: note # LLVM: Type: SHT_NOTE # LLVM: Name: nobits # LLVM: Type: SHT_NOBITS # LLVM: Name: rel # LLVM: Type: SHT_REL # LLVM: Name: shlib # LLVM: Type: SHT_SHLIB # LLVM: Name: dynsym # LLVM: Type: SHT_DYNSYM # LLVM: Name: init_array # LLVM: Type: SHT_INIT_ARRAY # LLVM: Name: fini_array # LLVM: Type: SHT_FINI_ARRAY # LLVM: Name: preinit_array # LLVM: Type: SHT_PREINIT_ARRAY # LLVM: Name: group # LLVM: Type: SHT_GROUP # LLVM: Name: symtab_shndx # LLVM: Type: SHT_SYMTAB_SHNDX # LLVM: Name: relr # LLVM: Type: SHT_RELR # LLVM: Name: android_rel # LLVM: Type: SHT_ANDROID_REL # LLVM: Name: android_rela # LLVM: Type: SHT_ANDROID_RELA # LLVM: Name: android_relr # LLVM: Type: SHT_ANDROID_RELR # LLVM: Name: llvm_odrtab # LLVM: Type: SHT_LLVM_ODRTAB # LLVM: Name: linker_options # LLVM: Type: SHT_LLVM_LINKER_OPTIONS # LLVM: Name: llvm_call_graph_profile # LLVM: Type: SHT_LLVM_CALL_GRAPH_PROFILE # LLVM: Name: llvm_addrsig # LLVM: Type: SHT_LLVM_ADDRSIG # LLVM: Name: .deplibs # LLVM: Type: SHT_LLVM_DEPENDENT_LIBRARIES # LLVM: Name: .llvm_sympart.f # LLVM: Type: SHT_LLVM_SYMPART # LLVM: Name: part1 # LLVM: Type: SHT_LLVM_PART_EHDR # LLVM: Name: .phdrs # LLVM: Type: SHT_LLVM_PART_PHDR # LLVM: Name: gnu_attributes # LLVM: Type: SHT_GNU_ATTRIBUTES # LLVM: Name: gnu_hash # LLVM: Type: SHT_GNU_HASH # LLVM: Name: gnu_verdef # LLVM: Type: SHT_GNU_verdef # LLVM: Name: gnu_verneed # LLVM: Type: SHT_GNU_verneed # LLVM: Name: unknown # LLVM: Type: Unknown (0x1000) # LLVM: Name: loos # LLVM: Type: Unknown (0x60000000) # LLVM: Name: fooos # LLVM: Type: Unknown (0x60000F00) # LLVM: Name: hios # LLVM: Type: SHT_GNU_versym # LLVM: Name: loproc # LLVM: Type: Unknown (0x70000000) # LLVM: Name: fooproc # LLVM: Type: Unknown (0x70000F00) # LLVM: Name: hiproc # LLVM: Type: Unknown (0x7FFFFFFF) # LLVM: Name: louser # LLVM: Type: Unknown (0x80000000) # LLVM: Name: foouser # LLVM: Type: Unknown (0x80000F00) # LLVM: Name: hiuser # LLVM: Type: Unknown (0xFFFFFFFF) # LLVM: Name: .symtab # LLVM: Type: SHT_SYMTAB # LLVM: Name: .strtab # LLVM: Type: SHT_STRTAB # GNU: [ 0] NULL # GNU-NEXT: progbits PROGBITS # GNU-NEXT: rela RELA # GNU-NEXT: hash HASH # GNU-NEXT: dynamic DYNAMIC # GNU-NEXT: note NOTE # GNU-NEXT: nobits NOBITS # GNU-NEXT: rel REL # GNU-NEXT: shlib SHLIB # GNU-NEXT: dynsym DYNSYM # GNU-NEXT: init_array INIT_ARRAY # GNU-NEXT: fini_array FINI_ARRAY # GNU-NEXT: preinit_array PREINIT_ARRAY # GNU-NEXT: group GROUP # GNU-NEXT: symtab_shndx SYMTAB SECTION INDICES # GNU-NEXT: relr RELR # GNU-NEXT: android_rel ANDROID_REL # GNU-NEXT: android_rela ANDROID_RELA # GNU-NEXT: android_relr ANDROID_RELR # GNU-NEXT: llvm_odrtab LLVM_ODRTAB # GNU-NEXT: linker_options LLVM_LINKER_OPTIONS # GNU-NEXT: llvm_call_graph_profile LLVM_CALL_GRAPH_PROFILE # GNU-NEXT: llvm_addrsig LLVM_ADDRSIG # GNU-NEXT: .deplibs LLVM_DEPENDENT_LIBRARIES # GNU-NEXT: .llvm_sympart.f LLVM_SYMPART # GNU-NEXT: part1 LLVM_PART_EHDR # GNU-NEXT: .phdrs LLVM_PART_PHDR # GNU-NEXT: gnu_attributes ATTRIBUTES # GNU-NEXT: gnu_hash GNU_HASH # GNU-NEXT: gnu_verdef VERDEF # GNU-NEXT: gnu_verneed VERNEED # GNU-NEXT: unknown 0x1000: <unknown> # GNU-NEXT: loos LOOS+0x0 # GNU-NEXT: fooos LOOS+0xF00 # GNU-NEXT: hios VERSYM # GNU-NEXT: loproc LOPROC+0x0 # GNU-NEXT: fooproc LOPROC+0xF00 # GNU-NEXT: hiproc LOPROC+0xFFFFFFF # GNU-NEXT: louser LOUSER+0x0 # GNU-NEXT: foouser LOUSER+0xF00 # GNU-NEXT: hiuser LOUSER+0x7FFFFFFF # GNU-NEXT: .symtab SYMTAB # GNU-NEXT: .strtab STRTAB --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Sections: - Name: progbits Type: SHT_PROGBITS - Name: rela Type: SHT_RELA Info: progbits - Name: hash Type: SHT_HASH Content: '' - Name: dynamic Type: SHT_DYNAMIC - Name: note Type: SHT_NOTE Notes: [] - Name: nobits Type: SHT_NOBITS - Name: rel Type: SHT_REL Info: progbits - Name: shlib Type: SHT_SHLIB - Name: dynsym Type: SHT_DYNSYM Link: .strtab - Name: init_array Type: SHT_INIT_ARRAY - Name: fini_array Type: SHT_FINI_ARRAY - Name: preinit_array Type: SHT_PREINIT_ARRAY - Name: group Type: SHT_GROUP Info: foo Members: - SectionOrType: 0 - Name: symtab_shndx Type: SHT_SYMTAB_SHNDX Link: .symtab Entries: [ 0, 1 ] - Name: relr Type: SHT_RELR - Name: android_rel Type: SHT_ANDROID_REL - Name: android_rela Type: SHT_ANDROID_RELA - Name: android_relr Type: SHT_ANDROID_RELR - Name: llvm_odrtab Type: SHT_LLVM_ODRTAB - Name: linker_options Type: SHT_LLVM_LINKER_OPTIONS - Name: llvm_call_graph_profile Type: SHT_LLVM_CALL_GRAPH_PROFILE - Name: llvm_addrsig Type: SHT_LLVM_ADDRSIG Symbols: - Name: .deplibs Type: SHT_LLVM_DEPENDENT_LIBRARIES - Name: .llvm_sympart.f Type: SHT_LLVM_SYMPART - Name: part1 Type: SHT_LLVM_PART_EHDR - Name: .phdrs Type: SHT_LLVM_PART_PHDR - Name: gnu_attributes Type: SHT_GNU_ATTRIBUTES - Name: gnu_hash Type: SHT_GNU_HASH Content: "" - Name: gnu_verdef Type: SHT_GNU_verdef Entries: - Name: gnu_verneed Type: SHT_GNU_verneed Dependencies: - Name: unknown Type: 0x1000 - Name: loos Type: 0x60000000 - Name: fooos Type: 0x60000F00 - Name: hios Type: 0x6fffffff Entries: [] - Name: loproc Type: 0x70000000 - Name: fooproc Type: 0x70000F00 - Name: hiproc Type: 0x7fffffff - Name: louser Type: 0x80000000 - Name: foouser Type: 0x80000F00 - Name: hiuser Type: 0xffffffff Symbols: - Name: foo Binding: STB_GLOBAL