210 lines · plain
1# REQUIRES: aarch642# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-freebsd %s -o %t3# RUN: ld.lld %t -o %t24# RUN: llvm-readobj --file-headers --sections -l --symbols %t2 \5# RUN: | FileCheck %s6 7# exits with return code 42 on FreeBSD/AArch648.globl _start9_start:10 mov x0, 4211 mov x8, 112 svc 013 14# CHECK: ElfHeader {15# CHECK-NEXT: Ident {16# CHECK-NEXT: Magic: (7F 45 4C 46)17# CHECK-NEXT: Class: 64-bit (0x2)18# CHECK-NEXT: DataEncoding: LittleEndian (0x1)19# CHECK-NEXT: FileVersion: 120# CHECK-NEXT: OS/ABI: FreeBSD (0x9)21# CHECK-NEXT: ABIVersion: 022# CHECK-NEXT: Unused: (00 00 00 00 00 00 00)23# CHECK-NEXT: }24# CHECK-NEXT: Type: Executable (0x2)25# CHECK-NEXT: Machine: EM_AARCH64 (0xB7)26# CHECK-NEXT: Version: 127# CHECK-NEXT: Entry: [[ENTRY:0x[0-9A-F]+]]28# CHECK-NEXT: ProgramHeaderOffset: 0x4029# CHECK-NEXT: SectionHeaderOffset: 0x1B830# CHECK-NEXT: Flags [ (0x0)31# CHECK-NEXT: ]32# CHECK-NEXT: HeaderSize: 6433# CHECK-NEXT: ProgramHeaderEntrySize: 5634# CHECK-NEXT: ProgramHeaderCount: 435# CHECK-NEXT: SectionHeaderEntrySize: 6436# CHECK-NEXT: SectionHeaderCount: 637# CHECK-NEXT: StringTableSectionIndex: 438# CHECK-NEXT: }39# CHECK-NEXT: Sections [40# CHECK-NEXT: Section {41# CHECK-NEXT: Index: 042# CHECK-NEXT: Name: (0)43# CHECK-NEXT: Type: SHT_NULL (0x0)44# CHECK-NEXT: Flags [ (0x0)45# CHECK-NEXT: ]46# CHECK-NEXT: Address: 0x047# CHECK-NEXT: Offset: 0x048# CHECK-NEXT: Size: 049# CHECK-NEXT: Link: 050# CHECK-NEXT: Info: 051# CHECK-NEXT: AddressAlignment: 052# CHECK-NEXT: EntrySize: 053# CHECK-NEXT: }54# CHECK-NEXT: Section {55# CHECK-NEXT: Index: 156# CHECK-NEXT: Name: .text57# CHECK-NEXT: Type: SHT_PROGBITS (0x1)58# CHECK-NEXT: Flags [ (0x6)59# CHECK-NEXT: SHF_ALLOC (0x2)60# CHECK-NEXT: SHF_EXECINSTR (0x4)61# CHECK-NEXT: ]62# CHECK-NEXT: Address: 0x21012063# CHECK-NEXT: Offset: 0x12064# CHECK-NEXT: Size: 1265# CHECK-NEXT: Link: 066# CHECK-NEXT: Info: 067# CHECK-NEXT: AddressAlignment: 468# CHECK-NEXT: EntrySize: 069# CHECK-NEXT: }70# CHECK-NEXT: Section {71# CHECK-NEXT: Index: 272# CHECK-NEXT: Name: .comment73# CHECK-NEXT: Type: SHT_PROGBITS (0x1)74# CHECK-NEXT: Flags [ (0x30)75# CHECK-NEXT: SHF_MERGE (0x10)76# CHECK-NEXT: SHF_STRINGS (0x20)77# CHECK-NEXT: ]78# CHECK-NEXT: Address: 0x079# CHECK-NEXT: Offset: 0x12C80# CHECK-NEXT: Size: 881# CHECK-NEXT: Link: 082# CHECK-NEXT: Info: 083# CHECK-NEXT: AddressAlignment: 184# CHECK-NEXT: EntrySize: 185# CHECK-NEXT: }86# CHECK-NEXT: Section {87# CHECK-NEXT: Index: 388# CHECK-NEXT: Name: .symtab89# CHECK-NEXT: Type: SHT_SYMTAB (0x2)90# CHECK-NEXT: Flags [ (0x0)91# CHECK-NEXT: ]92# CHECK-NEXT: Address: 0x093# CHECK-NEXT: Offset: 0x13894# CHECK-NEXT: Size: 7295# CHECK-NEXT: Link: 596# CHECK-NEXT: Info: 297# CHECK-NEXT: AddressAlignment: 898# CHECK-NEXT: EntrySize: 2499# CHECK-NEXT: }100# CHECK-NEXT: Section {101# CHECK-NEXT: Index: 4102# CHECK-NEXT: Name: .shstrtab103# CHECK-NEXT: Type: SHT_STRTAB (0x3)104# CHECK-NEXT: Flags [ (0x0)105# CHECK-NEXT: ]106# CHECK-NEXT: Address: 0x0107# CHECK-NEXT: Offset: 0x180108# CHECK-NEXT: Size: 42109# CHECK-NEXT: Link: 0110# CHECK-NEXT: Info: 0111# CHECK-NEXT: AddressAlignment: 1112# CHECK-NEXT: EntrySize: 0113# CHECK-NEXT: }114# CHECK-NEXT: Section {115# CHECK-NEXT: Index: 5116# CHECK-NEXT: Name: .strtab117# CHECK-NEXT: Type: SHT_STRTAB (0x3)118# CHECK-NEXT: Flags [ (0x0)119# CHECK-NEXT: ]120# CHECK-NEXT: Address: 0x0121# CHECK-NEXT: Offset: 0x1AA122# CHECK-NEXT: Size: 11123# CHECK-NEXT: Link: 0124# CHECK-NEXT: Info: 0125# CHECK-NEXT: AddressAlignment: 1126# CHECK-NEXT: EntrySize: 0127# CHECK-NEXT: }128# CHECK-NEXT: ]129# CHECK-NEXT: ProgramHeaders [130# CHECK-NEXT: ProgramHeader {131# CHECK-NEXT: Type: PT_PHDR (0x6)132# CHECK-NEXT: Offset: 0x40133# CHECK-NEXT: VirtualAddress: 0x200040134# CHECK-NEXT: PhysicalAddress: 0x200040135# CHECK-NEXT: FileSize: 224136# CHECK-NEXT: MemSize: 224137# CHECK-NEXT: Flags [ (0x4)138# CHECK-NEXT: PF_R (0x4)139# CHECK-NEXT: ]140# CHECK-NEXT: Alignment: 8141# CHECK-NEXT: }142# CHECK-NEXT: ProgramHeader {143# CHECK-NEXT: Type: PT_LOAD (0x1)144# CHECK-NEXT: Offset: 0x0145# CHECK-NEXT: VirtualAddress: 0x200000146# CHECK-NEXT: PhysicalAddress: 0x200000147# CHECK-NEXT: FileSize: 288148# CHECK-NEXT: MemSize: 288149# CHECK-NEXT: Flags [150# CHECK-NEXT: PF_R151# CHECK-NEXT: ]152# CHECK-NEXT: Alignment: 65536153# CHECK-NEXT: }154# CHECK-NEXT: ProgramHeader {155# CHECK-NEXT: Type: PT_LOAD (0x1)156# CHECK-NEXT: Offset: 0x120157# CHECK-NEXT: VirtualAddress: 0x210120158# CHECK-NEXT: PhysicalAddress: 0x210120159# CHECK-NEXT: FileSize: 12160# CHECK-NEXT: MemSize: 12161# CHECK-NEXT: Flags [ (0x5)162# CHECK-NEXT: PF_R (0x4)163# CHECK-NEXT: PF_X (0x1)164# CHECK-NEXT: ]165# CHECK-NEXT: Alignment: 65536166# CHECK-NEXT: }167# CHECK-NEXT: ProgramHeader {168# CHECK-NEXT: Type: PT_GNU_STACK169# CHECK-NEXT: Offset: 0x0170# CHECK-NEXT: VirtualAddress: 0x0171# CHECK-NEXT: PhysicalAddress: 0x0172# CHECK-NEXT: FileSize: 0173# CHECK-NEXT: MemSize: 0174# CHECK-NEXT: Flags [175# CHECK-NEXT: PF_R176# CHECK-NEXT: PF_W177# CHECK-NEXT: ]178# CHECK-NEXT: Alignment: 0179# CHECK-NEXT: }180# CHECK-NEXT: ]181# CHECK-NEXT: Symbols [182# CHECK-NEXT: Symbol {183# CHECK-NEXT: Name: (0)184# CHECK-NEXT: Value: 0x0185# CHECK-NEXT: Size: 0186# CHECK-NEXT: Binding: Local (0x0)187# CHECK-NEXT: Type: None (0x0)188# CHECK-NEXT: Other: 0189# CHECK-NEXT: Section: Undefined (0x0)190# CHECK-NEXT: }191# CHECK-NEXT: Symbol {192# CHECK-NEXT: Name: $x193# CHECK-NEXT: Value: 0x210120194# CHECK-NEXT: Size: 0195# CHECK-NEXT: Binding: Local (0x0)196# CHECK-NEXT: Type: None (0x0)197# CHECK-NEXT: Other: 0198# CHECK-NEXT: Section: .text199# CHECK-NEXT: }200# CHECK-NEXT: Symbol {201# CHECK-NEXT: Name: _start202# CHECK-NEXT: Value: [[ENTRY]]203# CHECK-NEXT: Size: 0204# CHECK-NEXT: Binding: Global (0x1)205# CHECK-NEXT: Type: None (0x0)206# CHECK-NEXT: Other: 0207# CHECK-NEXT: Section: .text208# CHECK-NEXT: }209# CHECK-NEXT: ]210