# 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:{{.}}