blob: d3294f5727e11779e224ab180d9e4850685f18fe [file] [edit]
# RUN: yaml2obj %s --docnum=1 -o %t.i386 -DCPUTYPE=0x00000007 -DSUBTYPE=0x00000003 -DENDIAN=true
# RUN: llvm-readobj -h %t.i386 \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.i386 --check-prefix=MACHO32 \
# RUN: -DFORMAT="Mach-O 32-bit i386" -DARCH=i386 -DCPUTYPE="X86 (0x7)" \
# RUN: -DSUBTYPE="CPU_SUBTYPE_I386_ALL (0x3)"
# RUN: yaml2obj %s --docnum=1 -o %t.arm-v7 -DCPUTYPE=0x0000000C -DSUBTYPE=0x9 -DENDIAN=true
# RUN: llvm-readobj -h %t.arm-v7 \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.arm-v7 --check-prefix=MACHO32 \
# RUN: -DFORMAT="Mach-O arm" -DARCH=arm \
# RUN: -DCPUTYPE="Arm (0xC)" -DSUBTYPE="CPU_SUBTYPE_ARM_V7 (0x9)"
# RUN: yaml2obj %s --docnum=1 -o %t.arm64_32 -DCPUTYPE=0x0200000C -DSUBTYPE=0x1 -DENDIAN=true
# RUN: llvm-readobj -h %t.arm64_32 \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.arm64_32 --check-prefix=MACHO32 \
# RUN: -DFORMAT="Mach-O arm64 (ILP32)" -DARCH=aarch64_32 -DCPUTYPE="Arm64 (ILP32) (0x200000C)" \
# RUN: -DSUBTYPE="CPU_SUBTYPE_ARM64_32_V8 (0x1)"
# RUN: yaml2obj %s --docnum=1 -o %t.ppc -DCPUTYPE=0x00000012 -DSUBTYPE=0x00000000 -DENDIAN=false
# RUN: llvm-readobj -h %t.ppc \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.ppc --check-prefix=MACHO32 \
# RUN: -DFORMAT="Mach-O 32-bit ppc" -DARCH=powerpc -DCPUTYPE="PowerPC (0x12)" \
# RUN: -DSUBTYPE="CPU_SUBTYPE_POWERPC_ALL (0x0)"
--- !mach-o
IsLittleEndian: [[ENDIAN]]
FileHeader:
magic: 0xFEEDFACE
cputype: [[CPUTYPE]]
cpusubtype: [[SUBTYPE]]
filetype: 0x00000001
ncmds: 0
sizeofcmds: 0
flags: 0x00002000
# MACHO32:File: [[FILE]]
# MACHO32-NEXT:Format: [[FORMAT]]
# MACHO32-NEXT:Arch: [[ARCH]]
# MACHO32-NEXT:AddressSize: 32bit
# MACHO32-NEXT:MachHeader {
# MACHO32-NEXT: Magic: Magic (0xFEEDFACE)
# MACHO32-NEXT: CpuType: [[CPUTYPE]]
# MACHO32-NEXT: CpuSubType: [[SUBTYPE]]
# MACHO32-NEXT: FileType: Relocatable (0x1)
# MACHO32-NEXT: NumOfLoadCommands: 0
# MACHO32-NEXT: SizeOfLoadCommands: 0
# MACHO32-NEXT: Flags [ (0x2000)
# MACHO32-NEXT: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
# MACHO32-NEXT: ]
# MACHO32-NEXT:}
# MACHO32-NOT:{{.}}
# RUN: yaml2obj %s --docnum=2 -o %t.x86-64 -DCPUTYPE=0x01000007 -DSUBTYPE=0x00000003 -DENDIAN=true
# RUN: llvm-readobj -h %t.x86-64 \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.x86-64 --check-prefix=MACHO64 \
# RUN: -DFORMAT="Mach-O 64-bit x86-64" -DARCH=x86_64 -DCPUTYPE="X86-64 (0x1000007)" \
# RUN: -DSUBTYPE="CPU_SUBTYPE_X86_64_ALL (0x3)"
# RUN: yaml2obj %s --docnum=2 -o %t.arm64 -DCPUTYPE=0x0100000C -DSUBTYPE=0x00000000 -DENDIAN=true
# RUN: llvm-readobj -h %t.arm64 \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.arm64 --check-prefix=MACHO64 \
# RUN: -DFORMAT="Mach-O arm64" -DARCH=aarch64 -DCPUTYPE="Arm64 (0x100000C)" \
# RUN: -DSUBTYPE="CPU_SUBTYPE_ARM64_ALL (0x0)"
# RUN: yaml2obj %s --docnum=2 -o %t.ppc64 -DCPUTYPE=0x01000012 -DSUBTYPE=0x00000000 -DENDIAN=false
# RUN: llvm-readobj -h %t.ppc64 \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.ppc64 --check-prefix=MACHO64 \
# RUN: -DFORMAT="Mach-O 64-bit ppc64" -DARCH=powerpc64 -DCPUTYPE="PowerPC64 (0x1000012)" \
# RUN: -DSUBTYPE=0x0
--- !mach-o
IsLittleEndian: [[ENDIAN]]
FileHeader:
magic: 0xFEEDFACF
cputype: [[CPUTYPE]]
cpusubtype: [[SUBTYPE]]
filetype: 0x00000001
ncmds: 0
sizeofcmds: 0
flags: 0x00002000
reserved: 0x00000000
# MACHO64:File: [[FILE]]
# MACHO64-NEXT:Format: [[FORMAT]]
# MACHO64-NEXT:Arch: [[ARCH]]
# MACHO64-NEXT:AddressSize: 64bit
# MACHO64-NEXT:MachHeader {
# MACHO64-NEXT: Magic: Magic64 (0xFEEDFACF)
# MACHO64-NEXT: CpuType: [[CPUTYPE]]
# MACHO64-NEXT: CpuSubType: [[SUBTYPE]]
# MACHO64-NEXT: FileType: Relocatable (0x1)
# MACHO64-NEXT: NumOfLoadCommands: 0
# MACHO64-NEXT: SizeOfLoadCommands: 0
# MACHO64-NEXT: Flags [ (0x2000)
# MACHO64-NEXT: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
# MACHO64-NEXT: ]
# MACHO64-NEXT: Reserved: 0x0
# MACHO64-NEXT:}
# MACHO64-NOT:{{.}}