out_of_order_linkedit.yaml 8.29 KB
# RUN: yaml2obj %s | obj2yaml | FileCheck %s

--- !mach-o
FileHeader:      
  magic:           0xFEEDFACF
  cputype:         0x01000007
  cpusubtype:      0x80000003
  filetype:        0x00000002
  ncmds:           16
  sizeofcmds:      1408
  flags:           0x00218085
  reserved:        0x00000000
LoadCommands:    
  - cmd:             LC_SEGMENT_64
    cmdsize:         72
    segname:         __PAGEZERO
    vmaddr:          0
    vmsize:          4294967296
    fileoff:         0
    filesize:        0
    maxprot:         0
    initprot:        0
    nsects:          0
    flags:           0
  - cmd:             LC_SEGMENT_64
    cmdsize:         552
    segname:         __TEXT
    vmaddr:          4294967296
    vmsize:          8192
    fileoff:         0
    filesize:        8192
    maxprot:         7
    initprot:        5
    nsects:          6
    flags:           0
  - cmd:             LC_SEGMENT_64
    cmdsize:         312
    segname:         __DATA
    vmaddr:          4294975488
    vmsize:          4096
    fileoff:         8192
    filesize:        4096
    maxprot:         7
    initprot:        3
    nsects:          3
    flags:           0
  - cmd:             LC_SEGMENT_64
    cmdsize:         72
    segname:         __LINKEDIT
    vmaddr:          4294979584
    vmsize:          4096
    fileoff:         12288
    filesize:        2508
    maxprot:         7
    initprot:        1
    nsects:          0
    flags:           0
  - cmd:             LC_DYLD_INFO_ONLY
    cmdsize:         48
    rebase_off:      12384
    rebase_size:     8
    bind_off:        12288
    bind_size:       96
    weak_bind_off:   0
    weak_bind_size:  0
    lazy_bind_off:   12392
    lazy_bind_size:  624
    export_off:      13016
    export_size:     48
  - cmd:             LC_SYMTAB
    cmdsize:         24
    symoff:          13080
    nsyms:           30
    stroff:          13700
    strsize:         1096
  - cmd:             LC_DYSYMTAB
    cmdsize:         80
    ilocalsym:       0
    nlocalsym:       9
    iextdefsym:      9
    nextdefsym:      2
    iundefsym:       11
    nundefsym:       19
    tocoff:          0
    ntoc:            0
    modtaboff:       0
    nmodtab:         0
    extrefsymoff:    0
    nextrefsyms:     0
    indirectsymoff:  13560
    nindirectsyms:   35
    extreloff:       0
    nextrel:         0
    locreloff:       0
    nlocrel:         0
  - cmd:             LC_LOAD_DYLINKER
    cmdsize:         32
    name:            12
    PayloadString:   /usr/lib/dyld
    ZeroPadBytes:    7
  - cmd:             LC_UUID
    cmdsize:         24
    uuid:            461A1B28-822F-3F38-B670-645419E636F5
  - cmd:             LC_VERSION_MIN_MACOSX
    cmdsize:         16
    version:         658176
    sdk:             658176
  - cmd:             LC_SOURCE_VERSION
    cmdsize:         16
    version:         0
  - cmd:             LC_MAIN
    cmdsize:         24
    entryoff:        4448
    stacksize:       0
  - cmd:             LC_LOAD_DYLIB
    cmdsize:         48
    dylib:           
      name:            24
      timestamp:       2
      current_version: 7864576
      compatibility_version: 65536
    PayloadString:   '/usr/lib/libc++.1.dylib'
    ZeroPadBytes:    1
  - cmd:             LC_LOAD_DYLIB
    cmdsize:         56
    dylib:           
      name:            24
      timestamp:       2
      current_version: 80349697
      compatibility_version: 65536
    PayloadString:   /usr/lib/libSystem.B.dylib
    ZeroPadBytes:    6
  - cmd:             LC_FUNCTION_STARTS
    cmdsize:         16
    dataoff:         13064
    datasize:        16
  - cmd:             LC_DATA_IN_CODE
    cmdsize:         16
    dataoff:         13080
    datasize:        0
LinkEditData:    
  RebaseOpcodes:   
    - Opcode:          REBASE_OPCODE_SET_TYPE_IMM
      Imm:             1
    - Opcode:          REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
      Imm:             2
      ExtraData:       
        - 0x0000000000000028
    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES
      Imm:             0
      ExtraData:       
        - 0x000000000000000F
    - Opcode:          REBASE_OPCODE_DONE
      Imm:             0
  BindOpcodes:     
    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
      Imm:             1
      Symbol:          ''
    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
      Imm:             0
      Symbol:          __ZNSt3__14coutE
    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
      Imm:             1
      Symbol:          ''
    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
      Imm:             2
      ULEBExtraData:   
        - 0x0000000000000000
      Symbol:          ''
    - Opcode:          BIND_OPCODE_DO_BIND
      Imm:             0
      Symbol:          ''
    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
      Imm:             0
      Symbol:          __ZNSt3__15ctypeIcE2idE
    - Opcode:          BIND_OPCODE_DO_BIND
      Imm:             0
      Symbol:          ''
    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
      Imm:             0
      Symbol:          ___gxx_personality_v0
    - Opcode:          BIND_OPCODE_DO_BIND
      Imm:             0
      Symbol:          ''
    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
      Imm:             2
      Symbol:          ''
    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
      Imm:             0
      Symbol:          dyld_stub_binder
    - Opcode:          BIND_OPCODE_DO_BIND
      Imm:             0
      Symbol:          ''
    - Opcode:          BIND_OPCODE_DONE
      Imm:             0
      Symbol:          ''
...

#CHECK:   - cmd:             LC_DYLD_INFO_ONLY
#CHECK:     cmdsize:         48
#CHECK:     rebase_off:      12384
#CHECK:     rebase_size:     8
#CHECK:     bind_off:        12288
#CHECK:     bind_size:       96
#CHECK:     weak_bind_off:   0
#CHECK:     weak_bind_size:  0
#CHECK:     lazy_bind_off:   12392
#CHECK:     lazy_bind_size:  624
#CHECK:     export_off:      13016
#CHECK:     export_size:     48
#CHECK: LinkEditData:    
#CHECK:   RebaseOpcodes:   
#CHECK:     - Opcode:          REBASE_OPCODE_SET_TYPE_IMM
#CHECK:       Imm:             1
#CHECK:     - Opcode:          REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
#CHECK:       Imm:             2
#CHECK:       ExtraData:       [ 0x0000000000000028 ]
#CHECK:     - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES
#CHECK:       Imm:             0
#CHECK:       ExtraData:       [ 0x000000000000000F ]
#CHECK:     - Opcode:          REBASE_OPCODE_DONE
#CHECK:       Imm:             0
#CHECK:   BindOpcodes:     
#CHECK:     - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
#CHECK:       Imm:             1
#CHECK:       Symbol:          ''
#CHECK:     - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
#CHECK:       Imm:             0
#CHECK:       Symbol:          __ZNSt3__14coutE
#CHECK:     - Opcode:          BIND_OPCODE_SET_TYPE_IMM
#CHECK:       Imm:             1
#CHECK:       Symbol:          ''
#CHECK:     - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
#CHECK:       Imm:             2
#CHECK:       ULEBExtraData:   [ 0x0000000000000000 ]
#CHECK:       Symbol:          ''
#CHECK:     - Opcode:          BIND_OPCODE_DO_BIND
#CHECK:       Imm:             0
#CHECK:       Symbol:          ''
#CHECK:     - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
#CHECK:       Imm:             0
#CHECK:       Symbol:          __ZNSt3__15ctypeIcE2idE
#CHECK:     - Opcode:          BIND_OPCODE_DO_BIND
#CHECK:       Imm:             0
#CHECK:       Symbol:          ''
#CHECK:     - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
#CHECK:       Imm:             0
#CHECK:       Symbol:          ___gxx_personality_v0
#CHECK:     - Opcode:          BIND_OPCODE_DO_BIND
#CHECK:       Imm:             0
#CHECK:       Symbol:          ''
#CHECK:     - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
#CHECK:       Imm:             2
#CHECK:       Symbol:          ''
#CHECK:     - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
#CHECK:       Imm:             0
#CHECK:       Symbol:          dyld_stub_binder
#CHECK:     - Opcode:          BIND_OPCODE_DO_BIND
#CHECK:       Imm:             0
#CHECK:       Symbol:          ''
#CHECK:     - Opcode:          BIND_OPCODE_DONE
#CHECK:       Imm:             0
#CHECK:       Symbol:          ''