## 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 -o %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
