# RUN: yaml2obj %s -o %t # RUN: llvm-objdump --macho --reloc %t | FileCheck %s --check-prefix=OBJDUMP-VERIFY # OBJDUMP-VERIFY: Relocation information (__TEXT,__text) 8 entries # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value # OBJDUMP-VERIFY-NEXT: 00000016 False hi/thm n/a HALFDIF True 0x00000064 # OBJDUMP-VERIFY-NEXT: False hi/thm n/a PAIR True 0x0000001a half = 0x0046 # OBJDUMP-VERIFY-NEXT: 00000012 False lo/arm n/a HALFDIF True 0x00000064 # OBJDUMP-VERIFY-NEXT: False lo/arm n/a PAIR True 0x0000001a half = 0x0000 # OBJDUMP-VERIFY-NEXT: 0000000a False hi/thm n/a HALFDIF True 0x0000005c # OBJDUMP-VERIFY-NEXT: False hi/thm n/a PAIR True 0x0000000e half = 0x004a # OBJDUMP-VERIFY-NEXT: 00000006 False lo/arm n/a HALFDIF True 0x0000005c # OBJDUMP-VERIFY-NEXT: False lo/arm n/a PAIR True 0x0000000e half = 0x0000 # OBJDUMP-VERIFY-NEXT: Relocation information (__TEXT,__StaticInit) 13 entries # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value # OBJDUMP-VERIFY-NEXT: 00000028 True long False T_BR22 False 2 (__TEXT,__StaticInit) # OBJDUMP-VERIFY-NEXT: 0000001a False hi/thm n/a HALFDIF True 0x00000064 # OBJDUMP-VERIFY-NEXT: False hi/thm n/a PAIR True 0x00000042 half = 0x001e # OBJDUMP-VERIFY-NEXT: 00000016 False lo/arm n/a HALFDIF True 0x00000064 # OBJDUMP-VERIFY-NEXT: False lo/arm n/a PAIR True 0x00000042 half = 0x0000 # OBJDUMP-VERIFY-NEXT: 0000000e False hi/thm n/a HALFDIF True 0x00000054 # OBJDUMP-VERIFY-NEXT: False hi/thm n/a PAIR True 0x00000036 half = 0x001a # OBJDUMP-VERIFY-NEXT: 0000000a False lo/arm n/a HALFDIF True 0x00000054 # OBJDUMP-VERIFY-NEXT: False lo/arm n/a PAIR True 0x00000036 half = 0x0000 # OBJDUMP-VERIFY-NEXT: 00000004 False hi/thm n/a HALFDIF True 0x00000058 # OBJDUMP-VERIFY-NEXT: False hi/thm n/a PAIR True 0x0000002c half = 0x0028 # OBJDUMP-VERIFY-NEXT: 00000000 False lo/arm n/a HALFDIF True 0x00000058 # OBJDUMP-VERIFY-NEXT: False lo/arm n/a PAIR True 0x0000002c half = 0x0000 # OBJDUMP-VERIFY-NEXT: Relocation information (__DATA,__data) 1 entries # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value # OBJDUMP-VERIFY-NEXT: 00000008 False long False VANILLA False 3 (__DATA,__data) # OBJDUMP-VERIFY-NEXT: Relocation information (__DATA,__mod_init_func) 1 entries # OBJDUMP-VERIFY-NEXT: address pcrel length extern type scattered symbolnum/value # OBJDUMP-VERIFY-NEXT: 00000000 False long False VANILLA False 2 (__TEXT,__StaticInit) # RUN: obj2yaml %t | FileCheck %s # CHECK: Sections: # CHECK-NEXT: - sectname: __text # CHECK-NEXT: segname: __TEXT # CHECK-NEXT: addr: 0x0 # CHECK-NEXT: size: 36 # CHECK-NEXT: offset: 0x220 # CHECK-NEXT: align: 1 # CHECK-NEXT: reloff: 0x284 # CHECK-NEXT: nreloc: 8 # CHECK-NEXT: flags: 0x80000400 # CHECK-NEXT: reserved1: 0x0 # CHECK-NEXT: reserved2: 0x0 # CHECK-NEXT: reserved3: 0x0 # CHECK-NEXT: content: # CHECK-NEXT: relocations: # CHECK-NEXT: - address: 0x16 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 100 # CHECK-NEXT: - address: 0x46 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 26 # CHECK-NEXT: - address: 0x12 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 100 # CHECK-NEXT: - address: 0x0 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 26 # CHECK-NEXT: - address: 0xA # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 92 # CHECK-NEXT: - address: 0x4A # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 14 # CHECK-NEXT: - address: 0x6 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 92 # CHECK-NEXT: - address: 0x0 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 14 # CHECK-NEXT: - sectname: __StaticInit # CHECK-NEXT: segname: __TEXT # CHECK-NEXT: addr: 0x24 # CHECK-NEXT: size: 46 # CHECK-NEXT: offset: 0x244 # CHECK-NEXT: align: 1 # CHECK-NEXT: reloff: 0x2C4 # CHECK-NEXT: nreloc: 13 # CHECK-NEXT: flags: 0x80000400 # CHECK-NEXT: reserved1: 0x0 # CHECK-NEXT: reserved2: 0x0 # CHECK-NEXT: reserved3: 0x0 # CHECK-NEXT: content: # CHECK-NEXT: relocations: # CHECK-NEXT: - address: 0x28 # CHECK-NEXT: symbolnum: 2 # CHECK-NEXT: pcrel: true # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 6 # CHECK-NEXT: scattered: false # CHECK-NEXT: value: 0 # CHECK-NEXT: - address: 0x1A # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 100 # CHECK-NEXT: - address: 0x1E # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 66 # CHECK-NEXT: - address: 0x16 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 100 # CHECK-NEXT: - address: 0x0 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 66 # CHECK-NEXT: - address: 0xE # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 84 # CHECK-NEXT: - address: 0x1A # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 54 # CHECK-NEXT: - address: 0xA # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 84 # CHECK-NEXT: - address: 0x0 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 54 # CHECK-NEXT: - address: 0x4 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 88 # CHECK-NEXT: - address: 0x28 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 3 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 44 # CHECK-NEXT: - address: 0x0 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 9 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 88 # CHECK-NEXT: - address: 0x0 # CHECK-NEXT: symbolnum: 0 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 1 # CHECK-NEXT: scattered: true # CHECK-NEXT: value: 44 # CHECK-NEXT: - sectname: __data # CHECK-NEXT: segname: __DATA # CHECK-NEXT: addr: 0x54 # CHECK-NEXT: size: 12 # CHECK-NEXT: offset: 0x274 # CHECK-NEXT: align: 2 # CHECK-NEXT: reloff: 0x32C # CHECK-NEXT: nreloc: 1 # CHECK-NEXT: flags: 0x0 # CHECK-NEXT: reserved1: 0x0 # CHECK-NEXT: reserved2: 0x0 # CHECK-NEXT: reserved3: 0x0 # CHECK-NEXT: content: # CHECK-NEXT: relocations: # CHECK-NEXT: - address: 0x8 # CHECK-NEXT: symbolnum: 3 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 0 # CHECK-NEXT: scattered: false # CHECK-NEXT: value: 0 # CHECK-NEXT: - sectname: __common # CHECK-NEXT: segname: __DATA # CHECK-NEXT: addr: 0x64 # CHECK-NEXT: size: 4 # CHECK-NEXT: offset: 0x0 # CHECK-NEXT: align: 2 # CHECK-NEXT: reloff: 0x0 # CHECK-NEXT: nreloc: 0 # CHECK-NEXT: flags: 0x1 # CHECK-NEXT: reserved1: 0x0 # CHECK-NEXT: reserved2: 0x0 # CHECK-NEXT: reserved3: 0x0 # CHECK-NEXT: - sectname: __mod_init_func # CHECK-NEXT: segname: __DATA # CHECK-NEXT: addr: 0x60 # CHECK-NEXT: size: 4 # CHECK-NEXT: offset: 0x280 # CHECK-NEXT: align: 2 # CHECK-NEXT: reloff: 0x334 # CHECK-NEXT: nreloc: 1 # CHECK-NEXT: flags: 0x9 # CHECK-NEXT: reserved1: 0x0 # CHECK-NEXT: reserved2: 0x0 # CHECK-NEXT: reserved3: 0x0 # CHECK-NEXT: content: '48000000' # CHECK-NEXT: relocations: # CHECK-NEXT: - address: 0x0 # CHECK-NEXT: symbolnum: 2 # CHECK-NEXT: pcrel: false # CHECK-NEXT: length: 2 # CHECK-NEXT: extern: false # CHECK-NEXT: type: 0 # CHECK-NEXT: scattered: false # CHECK-NEXT: value: 0 --- !mach-o FileHeader: magic: 0xFEEDFACE cputype: 0x0000000C cpusubtype: 0x00000009 filetype: 0x00000001 ncmds: 4 sizeofcmds: 516 flags: 0x00002000 LoadCommands: - cmd: LC_SEGMENT cmdsize: 396 segname: '' vmaddr: 0 vmsize: 104 fileoff: 544 filesize: 100 maxprot: 7 initprot: 7 nsects: 5 flags: 0 Sections: - sectname: __text segname: __TEXT addr: 0x0000000000000000 size: 36 offset: 0x00000220 align: 1 reloff: 0x00000284 nreloc: 8 flags: 0x80000400 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: 81B00020009040F24A00C0F200007844006840F24601C0F2000179440968084401B07047 relocations: - address: 0x00000016 symbolnum: 0 pcrel: false length: 3 extern: false type: 9 scattered: true value: 100 - address: 0x00000046 symbolnum: 0 pcrel: false length: 3 extern: false type: 1 scattered: true value: 26 - address: 0x00000012 symbolnum: 0 pcrel: false length: 2 extern: false type: 9 scattered: true value: 100 - address: 0x00000000 symbolnum: 0 pcrel: false length: 2 extern: false type: 1 scattered: true value: 26 - address: 0x0000000A symbolnum: 0 pcrel: false length: 3 extern: false type: 9 scattered: true value: 92 - address: 0x0000004A symbolnum: 0 pcrel: false length: 3 extern: false type: 1 scattered: true value: 14 - address: 0x00000006 symbolnum: 0 pcrel: false length: 2 extern: false type: 9 scattered: true value: 92 - address: 0x00000000 symbolnum: 0 pcrel: false length: 2 extern: false type: 1 scattered: true value: 14 - sectname: __StaticInit segname: __TEXT addr: 0x0000000000000024 size: 46 offset: 0x00000244 align: 1 reloff: 0x000002C4 nreloc: 13 flags: 0x80000400 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: 40F22800C0F20000784440F21A01C0F200017944081A40F21E01C0F2000179440860704780B56F46FFF7EAFF80BD relocations: - address: 0x00000028 symbolnum: 2 pcrel: true length: 2 extern: false type: 6 scattered: false value: 0 - address: 0x0000001A symbolnum: 0 pcrel: false length: 3 extern: false type: 9 scattered: true value: 100 - address: 0x0000001E symbolnum: 0 pcrel: false length: 3 extern: false type: 1 scattered: true value: 66 - address: 0x00000016 symbolnum: 0 pcrel: false length: 2 extern: false type: 9 scattered: true value: 100 - address: 0x00000000 symbolnum: 0 pcrel: false length: 2 extern: false type: 1 scattered: true value: 66 - address: 0x0000000E symbolnum: 0 pcrel: false length: 3 extern: false type: 9 scattered: true value: 84 - address: 0x0000001A symbolnum: 0 pcrel: false length: 3 extern: false type: 1 scattered: true value: 54 - address: 0x0000000A symbolnum: 0 pcrel: false length: 2 extern: false type: 9 scattered: true value: 84 - address: 0x00000000 symbolnum: 0 pcrel: false length: 2 extern: false type: 1 scattered: true value: 54 - address: 0x00000004 symbolnum: 0 pcrel: false length: 3 extern: false type: 9 scattered: true value: 88 - address: 0x00000028 symbolnum: 0 pcrel: false length: 3 extern: false type: 1 scattered: true value: 44 - address: 0x00000000 symbolnum: 0 pcrel: false length: 2 extern: false type: 9 scattered: true value: 88 - address: 0x00000000 symbolnum: 0 pcrel: false length: 2 extern: false type: 1 scattered: true value: 44 - sectname: __data segname: __DATA addr: 0x0000000000000054 size: 12 offset: 0x00000274 align: 2 reloff: 0x0000032C nreloc: 1 flags: 0x00000000 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: '010000000200000054000000' relocations: - address: 0x00000008 symbolnum: 3 pcrel: false length: 2 extern: false type: 0 scattered: false value: 0 - sectname: __common segname: __DATA addr: 0x0000000000000064 size: 4 offset: 0x00000000 align: 2 reloff: 0x00000000 nreloc: 0 flags: 0x00000001 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 - sectname: __mod_init_func segname: __DATA addr: 0x0000000000000060 size: 4 offset: 0x00000280 align: 2 reloff: 0x00000334 nreloc: 1 flags: 0x00000009 reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 content: '48000000' relocations: - address: 0x00000000 symbolnum: 2 pcrel: false length: 2 extern: false type: 0 scattered: false value: 0 - cmd: LC_VERSION_MIN_IPHONEOS cmdsize: 16 version: 589824 sdk: 0 - cmd: LC_SYMTAB cmdsize: 24 symoff: 828 nsyms: 7 stroff: 912 strsize: 68 - cmd: LC_DYSYMTAB cmdsize: 80 ilocalsym: 0 nlocalsym: 2 iextdefsym: 2 nextdefsym: 5 iundefsym: 7 nundefsym: 0 tocoff: 0 ntoc: 0 modtaboff: 0 nmodtab: 0 extrefsymoff: 0 nextrefsyms: 0 indirectsymoff: 0 nindirectsyms: 0 extreloff: 0 nextrel: 0 locreloff: 0 nlocrel: 0 LinkEditData: NameList: - n_strx: 13 n_type: 0x0E n_sect: 2 n_desc: 8 n_value: 36 - n_strx: 36 n_type: 0x0E n_sect: 2 n_desc: 8 n_value: 72 - n_strx: 61 n_type: 0x0F n_sect: 1 n_desc: 8 n_value: 0 - n_strx: 10 n_type: 0x0F n_sect: 4 n_desc: 0 n_value: 100 - n_strx: 7 n_type: 0x0F n_sect: 3 n_desc: 0 n_value: 84 - n_strx: 4 n_type: 0x0F n_sect: 3 n_desc: 0 n_value: 88 - n_strx: 1 n_type: 0x0F n_sect: 3 n_desc: 0 n_value: 92 StringTable: - '' - _z - _y - _x - _w - ___cxx_global_var_init - __GLOBAL__sub_I_main.cpp - _main - '' ...