## This test verifies that llvm-objcopy copies an executable properly. It
## uses llvm-readobj instead of cmp because some parts of the object
## (e.g., the string table) are not identical; the output file is correct but
## some offsets differ from the input file.
# RUN: yaml2obj %s > %t
# RUN: llvm-objcopy %t %t2
# RUN: llvm-readobj --file-headers --sections %t2 | FileCheck %s

--- !mach-o
FileHeader:
  magic:           0xFEEDFACF
  cputype:         0x01000007
  cpusubtype:      0x80000003
  filetype:        0x00000002
  ncmds:           15
  sizeofcmds:      976
  flags:           0x00200085
  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:         232
    segname:         __TEXT
    vmaddr:          4294967296
    vmsize:          4096
    fileoff:         0
    filesize:        4096
    maxprot:         7
    initprot:        5
    nsects:          2
    flags:           0
    Sections:
      - sectname:        __text
        segname:         __TEXT
        addr:            0x0000000100000F70
        size:            58
        offset:          0x00000F70
        align:           4
        reloff:          0x00000000
        nreloc:          0
        flags:           0x80000400
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
      - sectname:        __unwind_info
        segname:         __TEXT
        addr:            0x0000000100000FAC
        size:            72
        offset:          0x00000FAC
        align:           2
        reloff:          0x00000000
        nreloc:          0
        flags:           0x00000000
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
  - cmd:             LC_SEGMENT_64
    cmdsize:         232
    segname:         __DATA
    vmaddr:          4294971392
    vmsize:          4096
    fileoff:         4096
    filesize:        4096
    maxprot:         7
    initprot:        3
    nsects:          2
    flags:           0
    Sections:
      - sectname:        __data
        segname:         __DATA
        addr:            0x0000000100001000
        size:            4
        offset:          0x00001000
        align:           2
        reloff:          0x00000000
        nreloc:          0
        flags:           0x00000000
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
      - sectname:        __common
        segname:         __DATA
        addr:            0x0000000100001004
        size:            4
        offset:          0x00000000
        align:           2
        reloff:          0x00000000
        nreloc:          0
        flags:           0x00000001
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
  - cmd:             LC_SEGMENT_64
    cmdsize:         72
    segname:         __LINKEDIT
    vmaddr:          4294975488
    vmsize:          4096
    fileoff:         8192
    filesize:        232
    maxprot:         7
    initprot:        1
    nsects:          0
    flags:           0
  - cmd:             LC_DYLD_INFO_ONLY
    cmdsize:         48
    rebase_off:      0
    rebase_size:     0
    bind_off:        0
    bind_size:       0
    weak_bind_off:   0
    weak_bind_size:  0
    lazy_bind_off:   0
    lazy_bind_size:  0
    export_off:      8192
    export_size:     72
  - cmd:             LC_SYMTAB
    cmdsize:         24
    symoff:          8272
    nsyms:           6
    stroff:          8368
    strsize:         56
  - cmd:             LC_DYSYMTAB
    cmdsize:         80
    ilocalsym:       0
    nlocalsym:       0
    iextdefsym:      0
    nextdefsym:      5
    iundefsym:       5
    nundefsym:       1
    tocoff:          0
    ntoc:            0
    modtaboff:       0
    nmodtab:         0
    extrefsymoff:    0
    nextrefsyms:     0
    indirectsymoff:  0
    nindirectsyms:   0
    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:            B6EE4FB7-4E1E-3C7A-80D3-CFBD89DBC0FE
  - cmd:             LC_BUILD_VERSION
    cmdsize:         32
    platform:        1
    minos:           658944
    sdk:             658944
    ntools:          1
    Tools:
      - tool:            3
        version:         29491968
  - cmd:             LC_SOURCE_VERSION
    cmdsize:         16
    version:         0
  - cmd:             LC_MAIN
    cmdsize:         24
    entryoff:        3984
    stacksize:       0
  - cmd:             LC_LOAD_DYLIB
    cmdsize:         56
    dylib:
      name:            24
      timestamp:       2
      current_version: 82115073
      compatibility_version: 65536
    PayloadString:   '/usr/lib/libSystem.B.dylib'
    ZeroPadBytes:    6
  - cmd:             LC_FUNCTION_STARTS
    cmdsize:         16
    dataoff:         8264
    datasize:        8
  - cmd:             LC_DATA_IN_CODE
    cmdsize:         16
    dataoff:         8272
    datasize:        0
LinkEditData:
  ExportTrie:
    TerminalSize:    0
    NodeOffset:      0
    Name:            ''
    Flags:           0x0000000000000000
    Address:         0x0000000000000000
    Other:           0x0000000000000000
    ImportName:      ''
    Children:
      - TerminalSize:    0
        NodeOffset:      5
        Name:            _
        Flags:           0x0000000000000000
        Address:         0x0000000000000000
        Other:           0x0000000000000000
        ImportName:      ''
        Children:
          - TerminalSize:    2
            NodeOffset:      44
            Name:            _mh_execute_header
            Flags:           0x0000000000000000
            Address:         0x0000000000000000
            Other:           0x0000000000000000
            ImportName:      ''
          - TerminalSize:    3
            NodeOffset:      48
            Name:            foo
            Flags:           0x0000000000000000
            Address:         0x0000000000000F70
            Other:           0x0000000000000000
            ImportName:      ''
          - TerminalSize:    3
            NodeOffset:      53
            Name:            main
            Flags:           0x0000000000000000
            Address:         0x0000000000000F90
            Other:           0x0000000000000000
            ImportName:      ''
          - TerminalSize:    3
            NodeOffset:      58
            Name:            b
            Flags:           0x0000000000000000
            Address:         0x0000000000001000
            Other:           0x0000000000000000
            ImportName:      ''
          - TerminalSize:    3
            NodeOffset:      63
            Name:            a
            Flags:           0x0000000000000000
            Address:         0x0000000000001004
            Other:           0x0000000000000000
            ImportName:      ''
  NameList:
    - n_strx:          2
      n_type:          0x0F
      n_sect:          1
      n_desc:          16
      n_value:         4294967296
    - n_strx:          22
      n_type:          0x0F
      n_sect:          4
      n_desc:          0
      n_value:         4294971396
    - n_strx:          25
      n_type:          0x0F
      n_sect:          3
      n_desc:          0
      n_value:         4294971392
    - n_strx:          28
      n_type:          0x0F
      n_sect:          1
      n_desc:          0
      n_value:         4294971248
    - n_strx:          33
      n_type:          0x0F
      n_sect:          1
      n_desc:          0
      n_value:         4294971280
    - n_strx:          39
      n_type:          0x01
      n_sect:          0
      n_desc:          256
      n_value:         0
  StringTable:
    - ' '
    - __mh_execute_header
    - _a
    - _b
    - _foo
    - _main
    - dyld_stub_binder
...

# CHECK: FileType: Executable (0x2)
# CHECK: Name: __text
# CHECK: Name: __unwind_info
# CHECK: Name: __data
# CHECK: Name: __common
