331 lines · plain
1# REQUIRES: mips2# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux %s -o %t.o3# RUN: ld.lld %t.o -o %t.exe4# RUN: llvm-readobj --file-headers --sections -l --symbols %t.exe \5# RUN: | FileCheck %s6 7# Exits with return code 1 on Linux.8 .globl __start9__start:10 li $a0,111 li $v0,400112 syscall13 14# CHECK: ElfHeader {15# CHECK-NEXT: Ident {16# CHECK-NEXT: Magic: (7F 45 4C 46)17# CHECK-NEXT: Class: 32-bit (0x1)18# CHECK-NEXT: DataEncoding: LittleEndian (0x1)19# CHECK-NEXT: FileVersion: 120# CHECK-NEXT: OS/ABI: SystemV (0x0)21# CHECK-NEXT: ABIVersion: 122# CHECK-NEXT: Unused: (00 00 00 00 00 00 00)23# CHECK-NEXT: }24# CHECK-NEXT: Type: Executable (0x2)25# CHECK-NEXT: Machine: EM_MIPS (0x8)26# CHECK-NEXT: Version: 127# CHECK-NEXT: Entry: 0x2015028# CHECK-NEXT: ProgramHeaderOffset: 0x3429# CHECK-NEXT: SectionHeaderOffset: 0x20030# CHECK-NEXT: Flags [31# CHECK-NEXT: EF_MIPS_ABI_O3232# CHECK-NEXT: EF_MIPS_ARCH_3233# CHECK-NEXT: EF_MIPS_CPIC34# CHECK-NEXT: ]35# CHECK-NEXT: HeaderSize: 5236# CHECK-NEXT: ProgramHeaderEntrySize: 3237# CHECK-NEXT: ProgramHeaderCount: 738# CHECK-NEXT: SectionHeaderEntrySize: 4039# CHECK-NEXT: SectionHeaderCount: 1140# CHECK-NEXT: StringTableSectionIndex: 941# CHECK-NEXT: }42# CHECK-NEXT: Sections [43# CHECK-NEXT: Section {44# CHECK-NEXT: Index: 045# CHECK-NEXT: Name: (0)46# CHECK-NEXT: Type: SHT_NULL (0x0)47# CHECK-NEXT: Flags [ (0x0)48# CHECK-NEXT: ]49# CHECK-NEXT: Address: 0x050# CHECK-NEXT: Offset: 0x051# CHECK-NEXT: Size: 052# CHECK-NEXT: Link: 053# CHECK-NEXT: Info: 054# CHECK-NEXT: AddressAlignment: 055# CHECK-NEXT: EntrySize: 056# CHECK-NEXT: }57# CHECK-NEXT: Section {58# CHECK-NEXT: Index: 159# CHECK-NEXT: Name: .MIPS.abiflags60# CHECK-NEXT: Type: SHT_MIPS_ABIFLAGS (0x7000002A)61# CHECK-NEXT: Flags [ (0x2)62# CHECK-NEXT: SHF_ALLOC (0x2)63# CHECK-NEXT: ]64# CHECK-NEXT: Address: 0x1011865# CHECK-NEXT: Offset: 0x11866# CHECK-NEXT: Size: 2467# CHECK-NEXT: Link: 068# CHECK-NEXT: Info: 069# CHECK-NEXT: AddressAlignment: 870# CHECK-NEXT: EntrySize: 2471# CHECK-NEXT: }72# CHECK-NEXT: Section {73# CHECK-NEXT: Index: 274# CHECK-NEXT: Name: .reginfo75# CHECK-NEXT: Type: SHT_MIPS_REGINFO (0x70000006)76# CHECK-NEXT: Flags [ (0x2)77# CHECK-NEXT: SHF_ALLOC (0x2)78# CHECK-NEXT: ]79# CHECK-NEXT: Address: 0x1013080# CHECK-NEXT: Offset: 0x13081# CHECK-NEXT: Size: 2482# CHECK-NEXT: Link: 083# CHECK-NEXT: Info: 084# CHECK-NEXT: AddressAlignment: 485# CHECK-NEXT: EntrySize: 2486# CHECK-NEXT: }87# CHECK-NEXT: Section {88# CHECK-NEXT: Index: 389# CHECK-NEXT: Name: .text90# CHECK-NEXT: Type: SHT_PROGBITS (0x1)91# CHECK-NEXT: Flags [ (0x6)92# CHECK-NEXT: SHF_ALLOC (0x2)93# CHECK-NEXT: SHF_EXECINSTR (0x4)94# CHECK-NEXT: ]95# CHECK-NEXT: Address: 0x2015096# CHECK-NEXT: Offset: 0x15097# CHECK-NEXT: Size: 1298# CHECK-NEXT: Link: 099# CHECK-NEXT: Info: 0100# CHECK-NEXT: AddressAlignment: 16101# CHECK-NEXT: EntrySize: 0102# CHECK-NEXT: }103# CHECK-NEXT: Section {104# CHECK-NEXT: Index: 4105# CHECK-NEXT: Name: .data106# CHECK-NEXT: Type: SHT_PROGBITS (0x1)107# CHECK-NEXT: Flags [ (0x3)108# CHECK-NEXT: SHF_ALLOC (0x2)109# CHECK-NEXT: SHF_WRITE (0x1)110# CHECK-NEXT: ]111# CHECK-NEXT: Address: 0x30160112# CHECK-NEXT: Offset: 0x160113# CHECK-NEXT: Size: 0114# CHECK-NEXT: Link: 0115# CHECK-NEXT: Info: 0116# CHECK-NEXT: AddressAlignment: 16117# CHECK-NEXT: EntrySize: 0118# CHECK-NEXT: }119# CHECK-NEXT: Section {120# CHECK-NEXT: Index: 5121# CHECK-NEXT: Name: .got122# CHECK-NEXT: Type: SHT_PROGBITS (0x1)123# CHECK-NEXT: Flags [ (0x10000003)124# CHECK-NEXT: SHF_ALLOC (0x2)125# CHECK-NEXT: SHF_MIPS_GPREL (0x10000000)126# CHECK-NEXT: SHF_WRITE (0x1)127# CHECK-NEXT: ]128# CHECK-NEXT: Address: 0x30160129# CHECK-NEXT: Offset: 0x160130# CHECK-NEXT: Size: 8131# CHECK-NEXT: Link: 0132# CHECK-NEXT: Info: 0133# CHECK-NEXT: AddressAlignment: 16134# CHECK-NEXT: EntrySize: 0135# CHECK-NEXT: }136# CHECK-NEXT: Section {137# CHECK-NEXT: Index: 6138# CHECK-NEXT: Name: .bss139# CHECK-NEXT: Type: SHT_NOBITS (0x8)140# CHECK-NEXT: Flags [ (0x3)141# CHECK-NEXT: SHF_ALLOC (0x2)142# CHECK-NEXT: SHF_WRITE (0x1)143# CHECK-NEXT: ]144# CHECK-NEXT: Address: 0x30170145# CHECK-NEXT: Offset: 0x168146# CHECK-NEXT: Size: 0147# CHECK-NEXT: Link: 0148# CHECK-NEXT: Info: 0149# CHECK-NEXT: AddressAlignment: 16150# CHECK-NEXT: EntrySize: 0151# CHECK-NEXT: }152# CHECK-NEXT: Section {153# CHECK-NEXT: Index: 7154# CHECK-NEXT: Name: .comment155# CHECK-NEXT: Type: SHT_PROGBITS (0x1)156# CHECK-NEXT: Flags [ (0x30)157# CHECK-NEXT: SHF_MERGE (0x10)158# CHECK-NEXT: SHF_STRINGS (0x20)159# CHECK-NEXT: ]160# CHECK-NEXT: Address: 0x0161# CHECK-NEXT: Offset: 0x168162# CHECK-NEXT: Size: 8163# CHECK-NEXT: Link: 0164# CHECK-NEXT: Info: 0165# CHECK-NEXT: AddressAlignment: 1166# CHECK-NEXT: EntrySize: 1167# CHECK-NEXT: }168# CHECK-NEXT: Section {169# CHECK-NEXT: Index: 8170# CHECK-NEXT: Name: .symtab171# CHECK-NEXT: Type: SHT_SYMTAB (0x2)172# CHECK-NEXT: Flags [ (0x0)173# CHECK-NEXT: ]174# CHECK-NEXT: Address: 0x0175# CHECK-NEXT: Offset: 0x170176# CHECK-NEXT: Size: 48177# CHECK-NEXT: Link: 10178# CHECK-NEXT: Info: 2179# CHECK-NEXT: AddressAlignment: 4180# CHECK-NEXT: EntrySize: 16181# CHECK-NEXT: }182# CHECK-NEXT: Section {183# CHECK-NEXT: Index: 9184# CHECK-NEXT: Name: .shstrtab185# CHECK-NEXT: Type: SHT_STRTAB (0x3)186# CHECK-NEXT: Flags [ (0x0)187# CHECK-NEXT: ]188# CHECK-NEXT: Address: 0x0189# CHECK-NEXT: Offset: 0x1A0190# CHECK-NEXT: Size: 82191# CHECK-NEXT: Link: 0192# CHECK-NEXT: Info: 0193# CHECK-NEXT: AddressAlignment: 1194# CHECK-NEXT: EntrySize: 0195# CHECK-NEXT: }196# CHECK-NEXT: Section {197# CHECK-NEXT: Index: 10198# CHECK-NEXT: Name: .strtab199# CHECK-NEXT: Type: SHT_STRTAB (0x3)200# CHECK-NEXT: Flags [ (0x0)201# CHECK-NEXT: ]202# CHECK-NEXT: Address: 0x0203# CHECK-NEXT: Offset: 0x1F2204# CHECK-NEXT: Size: 13205# CHECK-NEXT: Link: 0206# CHECK-NEXT: Info: 0207# CHECK-NEXT: AddressAlignment: 1208# CHECK-NEXT: EntrySize: 0209# CHECK-NEXT: }210# CHECK-NEXT: ]211# CHECK-NEXT: ProgramHeaders [212# CHECK-NEXT: ProgramHeader {213# CHECK-NEXT: Type: PT_PHDR (0x6)214# CHECK-NEXT: Offset: 0x34215# CHECK-NEXT: VirtualAddress: 0x10034216# CHECK-NEXT: PhysicalAddress: 0x10034217# CHECK-NEXT: FileSize: 224218# CHECK-NEXT: MemSize: 224219# CHECK-NEXT: Flags [ (0x4)220# CHECK-NEXT: PF_R (0x4)221# CHECK-NEXT: ]222# CHECK-NEXT: Alignment: 4223# CHECK-NEXT: }224# CHECK-NEXT: ProgramHeader {225# CHECK-NEXT: Type: PT_LOAD (0x1)226# CHECK-NEXT: Offset: 0x0227# CHECK-NEXT: VirtualAddress: 0x10000228# CHECK-NEXT: PhysicalAddress: 0x10000229# CHECK-NEXT: FileSize: 328230# CHECK-NEXT: MemSize: 328231# CHECK-NEXT: Flags [ (0x4)232# CHECK-NEXT: PF_R (0x4)233# CHECK-NEXT: ]234# CHECK-NEXT: Alignment: 65536235# CHECK-NEXT: }236# CHECK-NEXT: ProgramHeader {237# CHECK-NEXT: Type: PT_LOAD (0x1)238# CHECK-NEXT: Offset: 0x150239# CHECK-NEXT: VirtualAddress: 0x20150240# CHECK-NEXT: PhysicalAddress: 0x20150241# CHECK-NEXT: FileSize: 12242# CHECK-NEXT: MemSize: 12243# CHECK-NEXT: Flags [ (0x5)244# CHECK-NEXT: PF_R (0x4)245# CHECK-NEXT: PF_X (0x1)246# CHECK-NEXT: ]247# CHECK-NEXT: Alignment: 65536248# CHECK-NEXT: }249# CHECK-NEXT: ProgramHeader {250# CHECK-NEXT: Type: PT_LOAD (0x1)251# CHECK-NEXT: Offset: 0x160252# CHECK-NEXT: VirtualAddress: 0x30160253# CHECK-NEXT: PhysicalAddress: 0x30160254# CHECK-NEXT: FileSize: 8255# CHECK-NEXT: MemSize: 16256# CHECK-NEXT: Flags [257# CHECK-NEXT: PF_R258# CHECK-NEXT: PF_W259# CHECK-NEXT: ]260# CHECK-NEXT: Alignment: 65536261# CHECK-NEXT: }262# CHECK-NEXT: ProgramHeader {263# CHECK-NEXT: Type: PT_GNU_STACK264# CHECK-NEXT: Offset: 0x0265# CHECK-NEXT: VirtualAddress: 0x0266# CHECK-NEXT: PhysicalAddress: 0x0267# CHECK-NEXT: FileSize: 0268# CHECK-NEXT: MemSize: 0269# CHECK-NEXT: Flags [270# CHECK-NEXT: PF_R271# CHECK-NEXT: PF_W272# CHECK-NEXT: ]273# CHECK-NEXT: Alignment: 0274# CHECK-NEXT: }275# CHECK-NEXT: ProgramHeader {276# CHECK-NEXT: Type: PT_MIPS_REGINFO277# CHECK-NEXT: Offset: 0x130278# CHECK-NEXT: VirtualAddress: 0x10130279# CHECK-NEXT: PhysicalAddress: 0x10130280# CHECK-NEXT: FileSize: 24281# CHECK-NEXT: MemSize: 24282# CHECK-NEXT: Flags [ (0x4)283# CHECK-NEXT: PF_R (0x4)284# CHECK-NEXT: ]285# CHECK-NEXT: Alignment: 4286# CHECK-NEXT: }287# CHECK-NEXT: ProgramHeader {288# CHECK-NEXT: Type: PT_MIPS_ABIFLAGS289# CHECK-NEXT: Offset: 0x118290# CHECK-NEXT: VirtualAddress: 0x10118291# CHECK-NEXT: PhysicalAddress: 0x10118292# CHECK-NEXT: FileSize: 24293# CHECK-NEXT: MemSize: 24294# CHECK-NEXT: Flags [ (0x4)295# CHECK-NEXT: PF_R (0x4)296# CHECK-NEXT: ]297# CHECK-NEXT: Alignment: 8298# CHECK-NEXT: }299# CHECK-NEXT: ]300# CHECK-NEXT: Symbols [301# CHECK-NEXT: Symbol {302# CHECK-NEXT: Name: (0)303# CHECK-NEXT: Value: 0x0304# CHECK-NEXT: Size: 0305# CHECK-NEXT: Binding: Local (0x0)306# CHECK-NEXT: Type: None (0x0)307# CHECK-NEXT: Other: 0308# CHECK-NEXT: Section: Undefined (0x0)309# CHECK-NEXT: }310# CHECK-NEXT: Symbol {311# CHECK-NEXT: Name: _gp312# CHECK-NEXT: Value: 0x38150313# CHECK-NEXT: Size: 0314# CHECK-NEXT: Binding: Local315# CHECK-NEXT: Type: None (0x0)316# CHECK-NEXT: Other [ (0x2)317# CHECK-NEXT: STV_HIDDEN (0x2)318# CHECK-NEXT: ]319# CHECK-NEXT: Section: .got320# CHECK-NEXT: }321# CHECK-NEXT: Symbol {322# CHECK-NEXT: Name: __start323# CHECK-NEXT: Value: 0x20150324# CHECK-NEXT: Size: 0325# CHECK-NEXT: Binding: Global (0x1)326# CHECK-NEXT: Type: None (0x0)327# CHECK-NEXT: Other: 0328# CHECK-NEXT: Section: .text329# CHECK-NEXT: }330# CHECK-NEXT: ]331