180 lines · plain
1# REQUIRES: x862# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o3# RUN: ld.lld %t.o -o %t4# RUN: llvm-readobj --file-headers --sections -l %t | FileCheck %s5 6# exits with return code 42 on linux7.globl _start8_start:9 mov $1, %eax10 mov $42, %ebx11 int $0x8012 13# CHECK: ElfHeader {14# CHECK-NEXT: Ident {15# CHECK-NEXT: Magic: (7F 45 4C 46)16# CHECK-NEXT: Class: 32-bit (0x1)17# CHECK-NEXT: DataEncoding: LittleEndian (0x1)18# CHECK-NEXT: FileVersion: 119# CHECK-NEXT: OS/ABI: SystemV (0x0)20# CHECK-NEXT: ABIVersion: 021# CHECK-NEXT: Unused: (00 00 00 00 00 00 00)22# CHECK-NEXT: }23# CHECK-NEXT: Type: Executable (0x2)24# CHECK-NEXT: Machine: EM_386 (0x3)25# CHECK-NEXT: Version: 126# CHECK-NEXT: Entry: 0x4010B427# CHECK-NEXT: ProgramHeaderOffset: 0x3428# CHECK-NEXT: SectionHeaderOffset: 0x11C29# CHECK-NEXT: Flags [ (0x0)30# CHECK-NEXT: ]31# CHECK-NEXT: HeaderSize: 5232# CHECK-NEXT: ProgramHeaderEntrySize: 3233# CHECK-NEXT: ProgramHeaderCount: 434# CHECK-NEXT: SectionHeaderEntrySize: 4035# CHECK-NEXT: SectionHeaderCount: 636# CHECK-NEXT: StringTableSectionIndex: 437# CHECK-NEXT: }38# CHECK-NEXT: Sections [39# CHECK-NEXT: Section {40# CHECK-NEXT: Index: 041# CHECK-NEXT: Name: (0)42# CHECK-NEXT: Type: SHT_NULL (0x0)43# CHECK-NEXT: Flags [ (0x0)44# CHECK-NEXT: ]45# CHECK-NEXT: Address: 0x046# CHECK-NEXT: Offset: 0x047# CHECK-NEXT: Size: 048# CHECK-NEXT: Link: 049# CHECK-NEXT: Info: 050# CHECK-NEXT: AddressAlignment: 051# CHECK-NEXT: EntrySize: 052# CHECK-NEXT: }53# CHECK-NEXT: Section {54# CHECK-NEXT: Index: 155# CHECK-NEXT: Name: .text56# CHECK-NEXT: Type: SHT_PROGBITS (0x1)57# CHECK-NEXT: Flags [ (0x6)58# CHECK-NEXT: SHF_ALLOC (0x2)59# CHECK-NEXT: SHF_EXECINSTR (0x4)60# CHECK-NEXT: ]61# CHECK-NEXT: Address: 0x4010B462# CHECK-NEXT: Offset: 0xB463# CHECK-NEXT: Size: 1264# CHECK-NEXT: Link: 065# CHECK-NEXT: Info: 066# CHECK-NEXT: AddressAlignment: 467# CHECK-NEXT: EntrySize: 068# CHECK-NEXT: }69# CHECK-NEXT: Section {70# CHECK-NEXT: Index: 271# CHECK-NEXT: Name: .comment72# CHECK-NEXT: Type: SHT_PROGBITS (0x1)73# CHECK-NEXT: Flags [ (0x30)74# CHECK-NEXT: SHF_MERGE (0x10)75# CHECK-NEXT: SHF_STRINGS (0x20)76# CHECK-NEXT: ]77# CHECK-NEXT: Address: 0x078# CHECK-NEXT: Offset: 0xC079# CHECK-NEXT: Size: 880# CHECK-NEXT: Link: 081# CHECK-NEXT: Info: 082# CHECK-NEXT: AddressAlignment: 183# CHECK-NEXT: EntrySize: 184# CHECK-NEXT: }85# CHECK-NEXT: Section {86# CHECK-NEXT: Index: 387# CHECK-NEXT: Name: .symtab88# CHECK-NEXT: Type: SHT_SYMTAB89# CHECK-NEXT: Flags [90# CHECK-NEXT: ]91# CHECK-NEXT: Address: 0x092# CHECK-NEXT: Offset: 0xC893# CHECK-NEXT: Size: 3294# CHECK-NEXT: Link: 595# CHECK-NEXT: Info: 196# CHECK-NEXT: AddressAlignment: 497# CHECK-NEXT: EntrySize: 1698# CHECK-NEXT: }99# CHECK-NEXT: Section {100# CHECK-NEXT: Index: 4101# CHECK-NEXT: Name: .shstrtab102# CHECK-NEXT: Type: SHT_STRTAB (0x3)103# CHECK-NEXT: Flags [ (0x0)104# CHECK-NEXT: ]105# CHECK-NEXT: Address: 0x0106# CHECK-NEXT: Offset: 0xE8107# CHECK-NEXT: Size: 42108# CHECK-NEXT: Link: 0109# CHECK-NEXT: Info: 0110# CHECK-NEXT: AddressAlignment: 1111# CHECK-NEXT: EntrySize: 0112# CHECK-NEXT: }113# CHECK-NEXT: Section {114# CHECK-NEXT: Index: 5115# CHECK-NEXT: Name: .strtab116# CHECK-NEXT: Type: SHT_STRTAB (0x3)117# CHECK-NEXT: Flags [ (0x0)118# CHECK-NEXT: ]119# CHECK-NEXT: Address: 0x0120# CHECK-NEXT: Offset: 0x112121# CHECK-NEXT: Size: 8122# CHECK-NEXT: Link: 0123# CHECK-NEXT: Info: 0124# CHECK-NEXT: AddressAlignment: 1125# CHECK-NEXT: EntrySize: 0126# CHECK-NEXT: }127# CHECK-NEXT: ]128# CHECK-NEXT: ProgramHeaders [129# CHECK-NEXT: ProgramHeader {130# CHECK-NEXT: Type: PT_PHDR (0x6)131# CHECK-NEXT: Offset: 0x34132# CHECK-NEXT: VirtualAddress: 0x400034133# CHECK-NEXT: PhysicalAddress: 0x400034134# CHECK-NEXT: FileSize: 128135# CHECK-NEXT: MemSize: 128136# CHECK-NEXT: Flags [ (0x4)137# CHECK-NEXT: PF_R (0x4)138# CHECK-NEXT: ]139# CHECK-NEXT: Alignment: 4140# CHECK-NEXT: }141# CHECK-NEXT: ProgramHeader {142# CHECK-NEXT: Type: PT_LOAD (0x1)143# CHECK-NEXT: Offset: 0x0144# CHECK-NEXT: VirtualAddress: 0x400000145# CHECK-NEXT: PhysicalAddress: 0x400000146# CHECK-NEXT: FileSize: 180147# CHECK-NEXT: MemSize: 180148# CHECK-NEXT: Flags [149# CHECK-NEXT: PF_R150# CHECK-NEXT: ]151# CHECK-NEXT: Alignment: 4096152# CHECK-NEXT: }153# CHECK-NEXT: ProgramHeader {154# CHECK-NEXT: Type: PT_LOAD (0x1)155# CHECK-NEXT: Offset: 0xB4156# CHECK-NEXT: VirtualAddress: 0x4010B4157# CHECK-NEXT: PhysicalAddress: 0x4010B4158# CHECK-NEXT: FileSize: 12159# CHECK-NEXT: MemSize: 12160# CHECK-NEXT: Flags [ (0x5)161# CHECK-NEXT: PF_R (0x4)162# CHECK-NEXT: PF_X (0x1)163# CHECK-NEXT: ]164# CHECK-NEXT: Alignment: 4096165# CHECK-NEXT: }166# CHECK-NEXT: ProgramHeader {167# CHECK-NEXT: Type: PT_GNU_STACK168# CHECK-NEXT: Offset: 0x0169# CHECK-NEXT: VirtualAddress: 0x0170# CHECK-NEXT: PhysicalAddress: 0x0171# CHECK-NEXT: FileSize: 0172# CHECK-NEXT: MemSize: 0173# CHECK-NEXT: Flags [174# CHECK-NEXT: PF_R175# CHECK-NEXT: PF_W176# CHECK-NEXT: ]177# CHECK-NEXT: Alignment: 0178# CHECK-NEXT: }179# CHECK-NEXT: ]180