## This test checks that the CPU subtype matching logic is handled correctly.

# RUN: yaml2obj %s --docnum=1 -o %t-armv6.obj
# RUN: yaml2obj %s --docnum=2 -o %t-armv7.obj
# RUN: llvm-as %p/Inputs/arm64-ios.ll -o %t-arm64.bc
# RUN: llvm-as %p/Inputs/armv7-ios.ll -o %t-armv7.bc

# RUN: llvm-libtool-darwin -static -o %t.lib %t-armv6.obj %t-armv7.obj %t-arm64.bc %t-armv7.bc -arch_only armv7

## Check that only armv7 binary is present:
# RUN: llvm-ar t %t.lib | \
# RUN:   FileCheck %s --check-prefix=ARM-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp

# ARM-NAMES: [[PREFIX]]-armv7.obj
# ARM-NAMES-NEXT: [[PREFIX]]-armv7.bc

## Check that only armv7 symbol is present:
# RUN: llvm-nm --print-armap %t.lib | \
# RUN:   FileCheck %s --check-prefix=ARM-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines

# ARM-SYMBOLS:      Archive map
# ARM-SYMBOLS-NEXT: _armv7 in [[PREFIX]]-armv7.obj
# ARM-SYMBOLS-NEXT: _armv7 in [[PREFIX]]-armv7.bc
# ARM-SYMBOLS-EMPTY:

## armv6.yaml
## CPUTYPE:    CPU_TYPE_ARM
## CPUSUBTYPE: CPU_SUBTYPE_ARM_V6
--- !mach-o
FileHeader:
  magic:           0xFEEDFACE
  cputype:         0x0000000C
  cpusubtype:      0x00000006
  filetype:        0x00000001
  ncmds:           2
  sizeofcmds:      148
  flags:           0x00002000
LoadCommands:
  - cmd:             LC_SEGMENT
    cmdsize:         124
    segname:         ''
    vmaddr:          0
    vmsize:          24
    fileoff:         296
    filesize:        24
    maxprot:         7
    initprot:        7
    nsects:          1
    flags:           0
    Sections:
      - sectname:        __text
        segname:         __TEXT
        addr:            0x0000000000000000
        size:            24
        offset:          0x00000128
        align:           2
        reloff:          0x00000000
        nreloc:          0
        flags:           0x80000400
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
        content:         04D04DE208009FE500008DE504D08DE21EFF2FE100000000
  - cmd:             LC_SYMTAB
    cmdsize:         24
    symoff:          328
    nsyms:           1
    stroff:          340
    strsize:         8
LinkEditData:
  NameList:
    - n_strx:          1
      n_type:          0x0F
      n_sect:          1
      n_desc:          0
      n_value:         0
  StringTable:
    - ''
    - _armv6
    - ''
...

## armv7.yaml
## CPUTYPE:    CPU_TYPE_ARM
## CPUSUBTYPE: CPU_SUBTYPE_ARM_V7
--- !mach-o
FileHeader:
  magic:           0xFEEDFACE
  cputype:         0x0000000C
  cpusubtype:      0x00000009
  filetype:        0x00000001
  ncmds:           2
  sizeofcmds:      148
  flags:           0x00002000
LoadCommands:
  - cmd:             LC_SEGMENT
    cmdsize:         124
    segname:         ''
    vmaddr:          0
    vmsize:          10
    fileoff:         280
    filesize:        10
    maxprot:         7
    initprot:        7
    nsects:          1
    flags:           0
    Sections:
      - sectname:        __text
        segname:         __TEXT
        addr:            0x0000000000000000
        size:            10
        offset:          0x00000118
        align:           1
        reloff:          0x00000000
        nreloc:          0
        flags:           0x80000400
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
        content:         81B00020009001B07047
  - cmd:             LC_SYMTAB
    cmdsize:         24
    symoff:          292
    nsyms:           1
    stroff:          304
    strsize:         8
LinkEditData:
  NameList:
    - n_strx:          1
      n_type:          0x0F
      n_sect:          1
      n_desc:          8
      n_value:         0
  StringTable:
    - ''
    - _armv7
    - ''
...

# RUN: yaml2obj %s --docnum=3 -o %t-x86_64.obj
# RUN: yaml2obj %s --docnum=4 -o %t-x86_64_h.obj
# RUN: llvm-as %p/Inputs/x86_64-osx.ll -o %t-x86_64.bc
# RUN: llvm-as %p/Inputs/x86_64h-osx.ll -o %t-x86_64_h.bc

# RUN: llvm-libtool-darwin -static -o %t.lib %t-x86_64.obj %t-x86_64_h.obj %t-x86_64.bc %t-x86_64_h.bc -arch_only x86_64

## Check that only x86_64 binary is present:
# RUN: llvm-ar t %t.lib | \
# RUN:   FileCheck %s --check-prefix=X86-NAMES --implicit-check-not={{.}} -DPREFIX=%basename_t.tmp

# X86-NAMES: [[PREFIX]]-x86_64.obj
# X86-NAMES-NEXT: [[PREFIX]]-x86_64.bc

## Check that only x86_64 symbol is present:
# RUN: llvm-nm --print-armap %t.lib | \
# RUN:   FileCheck %s --check-prefix=X86-SYMBOLS -DPREFIX=%basename_t.tmp --match-full-lines

# X86-SYMBOLS:      Archive map
# X86-SYMBOLS-NEXT: _x86_64 in [[PREFIX]]-x86_64.obj
# X86-SYMBOLS-NEXT: _x86_64 in [[PREFIX]]-x86_64.bc
# X86-SYMBOLS-EMPTY:

## x86_64.yaml
## CPUTYPE:    CPU_TYPE_X86_64
## CPUSUBTYPE: CPU_SUBTYPE_X86_64_ALL
--- !mach-o
FileHeader:
  magic:           0xFEEDFACF
  cputype:         0x01000007
  cpusubtype:      0x00000003
  filetype:        0x00000001
  ncmds:           2
  sizeofcmds:      176
  flags:           0x00002000
  reserved:        0x00000000
LoadCommands:
  - cmd:             LC_SEGMENT_64
    cmdsize:         152
    segname:         ''
    vmaddr:          0
    vmsize:          15
    fileoff:         312
    filesize:        15
    maxprot:         7
    initprot:        7
    nsects:          1
    flags:           0
    Sections:
      - sectname:        __text
        segname:         __TEXT
        addr:            0x0000000000000000
        size:            15
        offset:          0x00000138
        align:           4
        reloff:          0x00000000
        nreloc:          0
        flags:           0x80000400
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
        content:         554889E531C0C745FC000000005DC3
  - cmd:             LC_SYMTAB
    cmdsize:         24
    symoff:          328
    nsyms:           1
    stroff:          344
    strsize:         8
LinkEditData:
  NameList:
    - n_strx:          1
      n_type:          0x0F
      n_sect:          1
      n_desc:          0
      n_value:         0
  StringTable:
    - ''
    - _x86_64
    - ''
...

## x86_64h.yaml
## CPUTYPE:    CPU_TYPE_X86_64
## CPUSUBTYPE: CPU_SUBTYPE_X86_64_H
--- !mach-o
FileHeader:
  magic:           0xFEEDFACF
  cputype:         0x01000007
  cpusubtype:      0x00000008
  filetype:        0x00000001
  ncmds:           2
  sizeofcmds:      176
  flags:           0x00002000
  reserved:        0x00000000
LoadCommands:
  - cmd:             LC_SEGMENT_64
    cmdsize:         152
    segname:         ''
    vmaddr:          0
    vmsize:          15
    fileoff:         312
    filesize:        15
    maxprot:         7
    initprot:        7
    nsects:          1
    flags:           0
    Sections:
      - sectname:        __text
        segname:         __TEXT
        addr:            0x0000000000000000
        size:            15
        offset:          0x00000138
        align:           4
        reloff:          0x00000000
        nreloc:          0
        flags:           0x80000400
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
        content:         554889E531C0C745FC000000005DC3
  - cmd:             LC_SYMTAB
    cmdsize:         24
    symoff:          328
    nsyms:           1
    stroff:          344
    strsize:         8
LinkEditData:
  NameList:
    - n_strx:          1
      n_type:          0x0F
      n_sect:          1
      n_desc:          0
      n_value:         0
  StringTable:
    - ''
    - _x86_64_h
    - ''
...
