RUN: %python %p/../Inputs/ungzip.py %p/Inputs/many-sections.o.gz > %t RUN: llvm-objcopy %t %t2 RUN: llvm-readobj --file-headers %t2 | FileCheck --check-prefix=EHDR %s RUN: llvm-readobj --sections %t2 | FileCheck --check-prefix=SECS %s RUN: llvm-readobj --symbols %t2 | grep "Symbol {" | wc -l | FileCheck --check-prefix=SYMS %s RUN: llvm-readobj --symbols %t2 | FileCheck %s --check-prefix=SYM_SEC_IDS EHDR: Format: elf64-x86-64 EHDR-NEXT: Arch: x86_64 EHDR-NEXT: AddressSize: 64bit EHDR-NEXT: LoadName: EHDR-NEXT: ElfHeader { EHDR-NEXT: Ident { EHDR-NEXT: Magic: (7F 45 4C 46) EHDR-NEXT: Class: 64-bit (0x2) EHDR-NEXT: DataEncoding: LittleEndian (0x1) EHDR-NEXT: FileVersion: 1 EHDR-NEXT: OS/ABI: SystemV (0x0) EHDR-NEXT: ABIVersion: 0 EHDR-NEXT: Unused: (00 00 00 00 00 00 00) EHDR-NEXT: } EHDR-NEXT: Type: Relocatable (0x1) EHDR-NEXT: Machine: EM_X86_64 (0x3E) EHDR-NEXT: Version: 1 EHDR-NEXT: Entry: 0x0 EHDR-NEXT: ProgramHeaderOffset: 0x0 EHDR-NEXT: SectionHeaderOffset: EHDR-NEXT: Flags [ (0x0) EHDR-NEXT: ] EHDR-NEXT: HeaderSize: 64 EHDR-NEXT: ProgramHeaderEntrySize: 0 EHDR-NEXT: ProgramHeaderCount: 0 EHDR-NEXT: SectionHeaderEntrySize: 64 EHDR-NEXT: SectionHeaderCount: 0 EHDR-NEXT: StringTableSectionIndex: 65535 EHDR-NEXT: } SECS: Index: 65285 SECS-NEXT: Name: .symtab SECS-NEXT: Type: SHT_SYMTAB SECS: Name: .symtab_shndx SECS-NEXT: Type: SHT_SYMTAB_SHNDX SECS-NEXT: Flags [ (0x0) SECS-NEXT: ] SECS-NEXT: Address: 0x0 SECS-NEXT: Offset: # There should be #syms * EntrySize bytes. SECS-NEXT: Size: 261136 SECS-NEXT: Link: 65285 SECS-NEXT: Info: SECS-NEXT: AddressAlignment: 4 SECS-NEXT: EntrySize: 4 SECS: Index: 65287 SYMS: 65284 SYM_SEC_IDS: Section: s9 (0xFEFF) SYM_SEC_IDS-NEXT: } SYM_SEC_IDS-NEXT: Symbol { SYM_SEC_IDS-NEXT: Name: s9 (37) SYM_SEC_IDS-NEXT: Value: 0x0 SYM_SEC_IDS-NEXT: Size: 0 SYM_SEC_IDS-NEXT: Binding: Local (0x0) SYM_SEC_IDS-NEXT: Type: None (0x0) SYM_SEC_IDS-NEXT: Other: 0 SYM_SEC_IDS-NEXT: Section: s9 (0xFF01) SYM_SEC_IDS-NEXT: } SYM_SEC_IDS-NEXT: Symbol { SYM_SEC_IDS-NEXT: Name: s9 (37) SYM_SEC_IDS-NEXT: Value: 0x0 SYM_SEC_IDS-NEXT: Size: 0 SYM_SEC_IDS-NEXT: Binding: Local (0x0) SYM_SEC_IDS-NEXT: Type: None (0x0) SYM_SEC_IDS-NEXT: Other: 0 SYM_SEC_IDS-NEXT: Section: s9 (0xFF00) SYM_SEC_IDS-NEXT: } SYM_SEC_IDS-NEXT: Symbol { SYM_SEC_IDS-NEXT: Name: s9 (37) SYM_SEC_IDS-NEXT: Value: 0x0 SYM_SEC_IDS-NEXT: Size: 0 SYM_SEC_IDS-NEXT: Binding: Local (0x0) SYM_SEC_IDS-NEXT: Type: None (0x0) SYM_SEC_IDS-NEXT: Other: 0 SYM_SEC_IDS-NEXT: Section: s9 (0x1982) SYM_SEC_IDS-NEXT: } SYM_SEC_IDS-NEXT: Symbol { SYM_SEC_IDS-NEXT: Name: s9 (37) SYM_SEC_IDS-NEXT: Value: 0x0 SYM_SEC_IDS-NEXT: Size: 0 SYM_SEC_IDS-NEXT: Binding: Local (0x0) SYM_SEC_IDS-NEXT: Type: None (0x0) SYM_SEC_IDS-NEXT: Other: 0 SYM_SEC_IDS-NEXT: Section: s9 (0xFF03) SYM_SEC_IDS-NEXT: } SYM_SEC_IDS-NEXT: Symbol { SYM_SEC_IDS-NEXT: Name: s9 (37) SYM_SEC_IDS-NEXT: Value: 0x0 SYM_SEC_IDS-NEXT: Size: 0 SYM_SEC_IDS-NEXT: Binding: Local (0x0) SYM_SEC_IDS-NEXT: Type: None (0x0) SYM_SEC_IDS-NEXT: Other: 0 SYM_SEC_IDS-NEXT: Section: s9 (0xFF04) SYM_SEC_IDS-NEXT: }