1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -n -triple armv7-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 .text 7*9880d681SAndroid Build Coastguard Worker_f0: 8*9880d681SAndroid Build Coastguard Worker bl _printf 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker_f1: 11*9880d681SAndroid Build Coastguard Worker bl _f0 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker .data 14*9880d681SAndroid Build Coastguard Worker_d0: 15*9880d681SAndroid Build Coastguard WorkerLd0_0: 16*9880d681SAndroid Build Coastguard Worker .long Lsc0_0 - Ld0_0 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker .section __TEXT,__cstring,cstring_literals 19*9880d681SAndroid Build Coastguard WorkerLsc0_0: 20*9880d681SAndroid Build Coastguard Worker .long 0 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker .subsections_via_symbols 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker@ CHECK: File: <stdin> 25*9880d681SAndroid Build Coastguard Worker@ CHECK: Format: Mach-O arm 26*9880d681SAndroid Build Coastguard Worker@ CHECK: Arch: arm 27*9880d681SAndroid Build Coastguard Worker@ CHECK: AddressSize: 32bit 28*9880d681SAndroid Build Coastguard Worker@ CHECK: MachHeader { 29*9880d681SAndroid Build Coastguard Worker@ CHECK: Magic: Magic (0xFEEDFACE) 30*9880d681SAndroid Build Coastguard Worker@ CHECK: CpuType: Arm (0xC) 31*9880d681SAndroid Build Coastguard Worker@ CHECK: CpuSubType: CPU_SUBTYPE_ARM_V7 (0x9) 32*9880d681SAndroid Build Coastguard Worker@ CHECK: FileType: Relocatable (0x1) 33*9880d681SAndroid Build Coastguard Worker@ CHECK: NumOfLoadCommands: 4 34*9880d681SAndroid Build Coastguard Worker@ CHECK: SizeOfLoadCommands: 380 35*9880d681SAndroid Build Coastguard Worker@ CHECK: Flags [ (0x2000) 36*9880d681SAndroid Build Coastguard Worker@ CHECK: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) 37*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 38*9880d681SAndroid Build Coastguard Worker@ CHECK: } 39*9880d681SAndroid Build Coastguard Worker@ CHECK: Sections [ 40*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 41*9880d681SAndroid Build Coastguard Worker@ CHECK: Index: 0 42*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) 43*9880d681SAndroid Build Coastguard Worker@ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 44*9880d681SAndroid Build Coastguard Worker@ CHECK: Address: 0x0 45*9880d681SAndroid Build Coastguard Worker@ CHECK: Size: 0x8 46*9880d681SAndroid Build Coastguard Worker@ CHECK: Offset: 408 47*9880d681SAndroid Build Coastguard Worker@ CHECK: Alignment: 0 48*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationOffset: 0x1A8 49*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationCount: 2 50*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: 0x0 51*9880d681SAndroid Build Coastguard Worker@ CHECK: Attributes [ (0x800004) 52*9880d681SAndroid Build Coastguard Worker@ CHECK: PureInstructions (0x800000) 53*9880d681SAndroid Build Coastguard Worker@ CHECK: SomeInstructions (0x4) 54*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 55*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved1: 0x0 56*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved2: 0x0 57*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 58*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: FEFFFFEB FDFFFFEB |........| 59*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 60*9880d681SAndroid Build Coastguard Worker@ CHECK: } 61*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 62*9880d681SAndroid Build Coastguard Worker@ CHECK: Index: 1 63*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) 64*9880d681SAndroid Build Coastguard Worker@ CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) 65*9880d681SAndroid Build Coastguard Worker@ CHECK: Address: 0x8 66*9880d681SAndroid Build Coastguard Worker@ CHECK: Size: 0x4 67*9880d681SAndroid Build Coastguard Worker@ CHECK: Offset: 416 68*9880d681SAndroid Build Coastguard Worker@ CHECK: Alignment: 0 69*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationOffset: 0x1B8 70*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationCount: 2 71*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: 0x0 72*9880d681SAndroid Build Coastguard Worker@ CHECK: Attributes [ (0x0) 73*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 74*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved1: 0x0 75*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved2: 0x0 76*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 77*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 04000000 |....| 78*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 79*9880d681SAndroid Build Coastguard Worker@ CHECK: } 80*9880d681SAndroid Build Coastguard Worker@ CHECK: Section { 81*9880d681SAndroid Build Coastguard Worker@ CHECK: Index: 2 82*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) 83*9880d681SAndroid Build Coastguard Worker@ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) 84*9880d681SAndroid Build Coastguard Worker@ CHECK: Address: 0xC 85*9880d681SAndroid Build Coastguard Worker@ CHECK: Size: 0x4 86*9880d681SAndroid Build Coastguard Worker@ CHECK: Offset: 420 87*9880d681SAndroid Build Coastguard Worker@ CHECK: Alignment: 0 88*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationOffset: 0x0 89*9880d681SAndroid Build Coastguard Worker@ CHECK: RelocationCount: 0 90*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: ExtReloc (0x2) 91*9880d681SAndroid Build Coastguard Worker@ CHECK: Attributes [ (0x0) 92*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 93*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved1: 0x0 94*9880d681SAndroid Build Coastguard Worker@ CHECK: Reserved2: 0x0 95*9880d681SAndroid Build Coastguard Worker@ CHECK: SectionData ( 96*9880d681SAndroid Build Coastguard Worker@ CHECK: 0000: 00000000 |....| 97*9880d681SAndroid Build Coastguard Worker@ CHECK: ) 98*9880d681SAndroid Build Coastguard Worker@ CHECK: } 99*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 100*9880d681SAndroid Build Coastguard Worker@ CHECK: Relocations [ 101*9880d681SAndroid Build Coastguard Worker@ CHECK: Section __text { 102*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x4 1 2 0 ARM_RELOC_BR24 0 __text 103*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 1 2 1 ARM_RELOC_BR24 0 _printf 104*9880d681SAndroid Build Coastguard Worker@ CHECK: } 105*9880d681SAndroid Build Coastguard Worker@ CHECK: Section __data { 106*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 2 n/a ARM_RELOC_SECTDIFF 1 0xC 107*9880d681SAndroid Build Coastguard Worker@ CHECK: 0x0 0 2 n/a ARM_RELOC_PAIR 1 0x8 108*9880d681SAndroid Build Coastguard Worker@ CHECK: } 109*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 110*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbols [ 111*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbol { 112*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: _f0 (13) 113*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: Section (0xE) 114*9880d681SAndroid Build Coastguard Worker@ CHECK: Section: __text (0x1) 115*9880d681SAndroid Build Coastguard Worker@ CHECK: RefType: UndefinedNonLazy (0x0) 116*9880d681SAndroid Build Coastguard Worker@ CHECK: Flags [ (0x0) 117*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 118*9880d681SAndroid Build Coastguard Worker@ CHECK: Value: 0x0 119*9880d681SAndroid Build Coastguard Worker@ CHECK: } 120*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbol { 121*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: _f1 (9) 122*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: Section (0xE) 123*9880d681SAndroid Build Coastguard Worker@ CHECK: Section: __text (0x1) 124*9880d681SAndroid Build Coastguard Worker@ CHECK: RefType: UndefinedNonLazy (0x0) 125*9880d681SAndroid Build Coastguard Worker@ CHECK: Flags [ (0x0) 126*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 127*9880d681SAndroid Build Coastguard Worker@ CHECK: Value: 0x4 128*9880d681SAndroid Build Coastguard Worker@ CHECK: } 129*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbol { 130*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: _d0 (17) 131*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: Section (0xE) 132*9880d681SAndroid Build Coastguard Worker@ CHECK: Section: __data (0x2) 133*9880d681SAndroid Build Coastguard Worker@ CHECK: RefType: UndefinedNonLazy (0x0) 134*9880d681SAndroid Build Coastguard Worker@ CHECK: Flags [ (0x0) 135*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 136*9880d681SAndroid Build Coastguard Worker@ CHECK: Value: 0x8 137*9880d681SAndroid Build Coastguard Worker@ CHECK: } 138*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbol { 139*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: _printf (1) 140*9880d681SAndroid Build Coastguard Worker@ CHECK: Extern 141*9880d681SAndroid Build Coastguard Worker@ CHECK: Type: Undef (0x0) 142*9880d681SAndroid Build Coastguard Worker@ CHECK: Section: (0x0) 143*9880d681SAndroid Build Coastguard Worker@ CHECK: RefType: UndefinedNonLazy (0x0) 144*9880d681SAndroid Build Coastguard Worker@ CHECK: Flags [ (0x0) 145*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 146*9880d681SAndroid Build Coastguard Worker@ CHECK: Value: 0x0 147*9880d681SAndroid Build Coastguard Worker@ CHECK: } 148*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 149*9880d681SAndroid Build Coastguard Worker@ CHECK: Indirect Symbols { 150*9880d681SAndroid Build Coastguard Worker@ CHECK: Number: 0 151*9880d681SAndroid Build Coastguard Worker@ CHECK: Symbols [ 152*9880d681SAndroid Build Coastguard Worker@ CHECK: ] 153*9880d681SAndroid Build Coastguard Worker@ CHECK: } 154*9880d681SAndroid Build Coastguard Worker@ CHECK: Segment { 155*9880d681SAndroid Build Coastguard Worker@ CHECK: Cmd: LC_SEGMENT 156*9880d681SAndroid Build Coastguard Worker@ CHECK: Name: 157*9880d681SAndroid Build Coastguard Worker@ CHECK: Size: 260 158*9880d681SAndroid Build Coastguard Worker@ CHECK: vmaddr: 0x0 159*9880d681SAndroid Build Coastguard Worker@ CHECK: vmsize: 0x10 160*9880d681SAndroid Build Coastguard Worker@ CHECK: fileoff: 408 161*9880d681SAndroid Build Coastguard Worker@ CHECK: filesize: 16 162*9880d681SAndroid Build Coastguard Worker@ CHECK: maxprot: rwx 163*9880d681SAndroid Build Coastguard Worker@ CHECK: initprot: rwx 164*9880d681SAndroid Build Coastguard Worker@ CHECK: nsects: 3 165*9880d681SAndroid Build Coastguard Worker@ CHECK: flags: 0x0 166*9880d681SAndroid Build Coastguard Worker@ CHECK: } 167*9880d681SAndroid Build Coastguard Worker@ CHECK: Dysymtab { 168*9880d681SAndroid Build Coastguard Worker@ CHECK: ilocalsym: 0 169*9880d681SAndroid Build Coastguard Worker@ CHECK: nlocalsym: 3 170*9880d681SAndroid Build Coastguard Worker@ CHECK: iextdefsym: 3 171*9880d681SAndroid Build Coastguard Worker@ CHECK: nextdefsym: 0 172*9880d681SAndroid Build Coastguard Worker@ CHECK: iundefsym: 3 173*9880d681SAndroid Build Coastguard Worker@ CHECK: nundefsym: 1 174*9880d681SAndroid Build Coastguard Worker@ CHECK: tocoff: 0 175*9880d681SAndroid Build Coastguard Worker@ CHECK: ntoc: 0 176*9880d681SAndroid Build Coastguard Worker@ CHECK: modtaboff: 0 177*9880d681SAndroid Build Coastguard Worker@ CHECK: nmodtab: 0 178*9880d681SAndroid Build Coastguard Worker@ CHECK: extrefsymoff: 0 179*9880d681SAndroid Build Coastguard Worker@ CHECK: nextrefsyms: 0 180*9880d681SAndroid Build Coastguard Worker@ CHECK: indirectsymoff: 0 181*9880d681SAndroid Build Coastguard Worker@ CHECK: nindirectsyms: 0 182*9880d681SAndroid Build Coastguard Worker@ CHECK: extreloff: 0 183*9880d681SAndroid Build Coastguard Worker@ CHECK: nextrel: 0 184*9880d681SAndroid Build Coastguard Worker@ CHECK: locreloff: 0 185*9880d681SAndroid Build Coastguard Worker@ CHECK: nlocrel: 0 186*9880d681SAndroid Build Coastguard Worker@ CHECK: } 187