1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj 2*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.obj > %t.dump 3*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck < %t.dump %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker .syntax unified 6*9880d681SAndroid Build Coastguard Worker .section __TEXT,__text,regular,pure_instructions 7*9880d681SAndroid Build Coastguard Worker .globl _main 8*9880d681SAndroid Build Coastguard Worker .align 2 9*9880d681SAndroid Build Coastguard Worker .code 16 10*9880d681SAndroid Build Coastguard Worker .thumb_func _main 11*9880d681SAndroid Build Coastguard Worker_main: 12*9880d681SAndroid Build Coastguard WorkerLPC0_0: 13*9880d681SAndroid Build Coastguard Worker blx _printf 14*9880d681SAndroid Build Coastguard Worker .align 2 15*9880d681SAndroid Build Coastguard WorkerLCPI0_0: 16*9880d681SAndroid Build Coastguard Worker .long L_.str-(LPC0_0+4) 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker .section __TEXT,__cstring,cstring_literals 19*9880d681SAndroid Build Coastguard Worker .align 2 20*9880d681SAndroid Build Coastguard WorkerL_.str: 21*9880d681SAndroid Build Coastguard Worker .asciz "s0" 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker.subsections_via_symbols 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker@ CHECK: File: <stdin> 26*9880d681SAndroid Build Coastguard Worker@ CHECK: Format: Mach-O arm 27*9880d681SAndroid Build Coastguard Worker@ CHECK: Arch: arm 28*9880d681SAndroid Build Coastguard Worker@ CHECK: AddressSize: 32bit 29*9880d681SAndroid Build Coastguard Worker@ CHECK: MachHeader { 30*9880d681SAndroid Build Coastguard Worker@ CHECK: Magic: Magic (0xFEEDFACE) 31*9880d681SAndroid Build Coastguard Worker@ CHECK: CpuType: Arm (0xC) 32*9880d681SAndroid Build Coastguard Worker@ CHECK: CpuSubType: CPU_SUBTYPE_ARM_V7 (0x9) 33*9880d681SAndroid Build Coastguard Worker@ CHECK: FileType: Relocatable (0x1) 34*9880d681SAndroid Build Coastguard Worker@ CHECK: NumOfLoadCommands: 4 35*9880d681SAndroid Build Coastguard Worker@ CHECK: SizeOfLoadCommands: 312 36*9880d681SAndroid Build Coastguard Worker@ CHECK: Flags [ (0x2000) 37*9880d681SAndroid Build Coastguard Worker@ CHECK: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) 38*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 39*9880d681SAndroid Build Coastguard Worker@ CHECK: } 40*9880d681SAndroid Build Coastguard Worker@ CHECK: Sections [ 41*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 42*9880d681SAndroid Build Coastguard Worker@ CHECK: Index: 0 43*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) 44*9880d681SAndroid Build Coastguard Worker@ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 45*9880d681SAndroid Build Coastguard Worker@ CHECK: Address: 0x0 46*9880d681SAndroid Build Coastguard Worker@ CHECK: Size: 0x8 47*9880d681SAndroid Build Coastguard Worker@ CHECK: Offset: 340 48*9880d681SAndroid Build Coastguard Worker@ CHECK: Alignment: 2 49*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationOffset: 0x160 50*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationCount: 3 51*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: 0x0 52*9880d681SAndroid Build Coastguard Worker@ CHECK: Attributes [ (0x800004) 53*9880d681SAndroid Build Coastguard Worker@ CHECK: PureInstructions (0x800000) 54*9880d681SAndroid Build Coastguard Worker@ CHECK: SomeInstructions (0x4) 55*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 56*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved1: 0x0 57*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved2: 0x0 58*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 59*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: FFF7FEEF 04000000 |........| 60*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 61*9880d681SAndroid Build Coastguard Worker@ CHECK: } 62*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 63*9880d681SAndroid Build Coastguard Worker@ CHECK: Index: 1 64*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) 65*9880d681SAndroid Build Coastguard Worker@ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 66*9880d681SAndroid Build Coastguard Worker@ CHECK: Address: 0x8 67*9880d681SAndroid Build Coastguard Worker@ CHECK: Size: 0x3 68*9880d681SAndroid Build Coastguard Worker@ CHECK: Offset: 348 69*9880d681SAndroid Build Coastguard Worker@ CHECK: Alignment: 2 70*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationOffset: 0x0 71*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationCount: 0 72*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: ExtReloc (0x2) 73*9880d681SAndroid Build Coastguard Worker@ CHECK: Attributes [ (0x0) 74*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 75*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved1: 0x0 76*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved2: 0x0 77*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 78*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 733000 |s0.| 79*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 80*9880d681SAndroid Build Coastguard Worker@ CHECK: } 81*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 82*9880d681SAndroid Build Coastguard Worker@ CHECK: Relocations [ 83*9880d681SAndroid Build Coastguard Worker@ CHECK: Section __text { 84*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x4 0 2 n/a ARM_RELOC_SECTDIFF 1 0x8 85*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 2 n/a ARM_RELOC_PAIR 1 0x0 86*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 1 2 1 ARM_THUMB_RELOC_BR22 0 _printf 87*9880d681SAndroid Build Coastguard Worker@ CHECK: } 88*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 89*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbols [ 90*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbol { 91*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: _main (1) 92*9880d681SAndroid Build Coastguard Worker@ CHECK: Extern 93*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: Section (0xE) 94*9880d681SAndroid Build Coastguard Worker@ CHECK: Section: __text (0x1) 95*9880d681SAndroid Build Coastguard Worker@ CHECK: RefType: 0x8 96*9880d681SAndroid Build Coastguard Worker@ CHECK: Flags [ (0x0) 97*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 98*9880d681SAndroid Build Coastguard Worker@ CHECK: Value: 0x0 99*9880d681SAndroid Build Coastguard Worker@ CHECK: } 100*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbol { 101*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: _printf (7) 102*9880d681SAndroid Build Coastguard Worker@ CHECK: Extern 103*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: Undef (0x0) 104*9880d681SAndroid Build Coastguard Worker@ CHECK: Section: (0x0) 105*9880d681SAndroid Build Coastguard Worker@ CHECK: RefType: UndefinedNonLazy (0x0) 106*9880d681SAndroid Build Coastguard Worker@ CHECK: Flags [ (0x0) 107*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 108*9880d681SAndroid Build Coastguard Worker@ CHECK: Value: 0x0 109*9880d681SAndroid Build Coastguard Worker@ CHECK: } 110*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 111*9880d681SAndroid Build Coastguard Worker@ CHECK: Indirect Symbols { 112*9880d681SAndroid Build Coastguard Worker@ CHECK: Number: 0 113*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbols [ 114*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 115*9880d681SAndroid Build Coastguard Worker@ CHECK: } 116*9880d681SAndroid Build Coastguard Worker@ CHECK: Segment { 117*9880d681SAndroid Build Coastguard Worker@ CHECK: Cmd: LC_SEGMENT 118*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: 119*9880d681SAndroid Build Coastguard Worker@ CHECK: Size: 192 120*9880d681SAndroid Build Coastguard Worker@ CHECK: vmaddr: 0x0 121*9880d681SAndroid Build Coastguard Worker@ CHECK: vmsize: 0xB 122*9880d681SAndroid Build Coastguard Worker@ CHECK: fileoff: 340 123*9880d681SAndroid Build Coastguard Worker@ CHECK: filesize: 11 124*9880d681SAndroid Build Coastguard Worker@ CHECK: maxprot: rwx 125*9880d681SAndroid Build Coastguard Worker@ CHECK: initprot: rwx 126*9880d681SAndroid Build Coastguard Worker@ CHECK: nsects: 2 127*9880d681SAndroid Build Coastguard Worker@ CHECK: flags: 0x0 128*9880d681SAndroid Build Coastguard Worker@ CHECK: } 129*9880d681SAndroid Build Coastguard Worker@ CHECK: Dysymtab { 130*9880d681SAndroid Build Coastguard Worker@ CHECK: ilocalsym: 0 131*9880d681SAndroid Build Coastguard Worker@ CHECK: nlocalsym: 0 132*9880d681SAndroid Build Coastguard Worker@ CHECK: iextdefsym: 0 133*9880d681SAndroid Build Coastguard Worker@ CHECK: nextdefsym: 1 134*9880d681SAndroid Build Coastguard Worker@ CHECK: iundefsym: 1 135*9880d681SAndroid Build Coastguard Worker@ CHECK: nundefsym: 1 136*9880d681SAndroid Build Coastguard Worker@ CHECK: tocoff: 0 137*9880d681SAndroid Build Coastguard Worker@ CHECK: ntoc: 0 138*9880d681SAndroid Build Coastguard Worker@ CHECK: modtaboff: 0 139*9880d681SAndroid Build Coastguard Worker@ CHECK: nmodtab: 0 140*9880d681SAndroid Build Coastguard Worker@ CHECK: extrefsymoff: 0 141*9880d681SAndroid Build Coastguard Worker@ CHECK: nextrefsyms: 0 142*9880d681SAndroid Build Coastguard Worker@ CHECK: indirectsymoff: 0 143*9880d681SAndroid Build Coastguard Worker@ CHECK: nindirectsyms: 0 144*9880d681SAndroid Build Coastguard Worker@ CHECK: extreloff: 0 145*9880d681SAndroid Build Coastguard Worker@ CHECK: nextrel: 0 146*9880d681SAndroid Build Coastguard Worker@ CHECK: locreloff: 0 147*9880d681SAndroid Build Coastguard Worker@ CHECK: nlocrel: 0 148*9880d681SAndroid Build Coastguard Worker@ CHECK: } 149