| RUN: llvm-readobj -h %p/Inputs/macho-universal.x86_64.i386 \ | |
| RUN: | FileCheck %s -check-prefix MULTIHEADER | |
| RUN: llvm-readobj -sections %p/Inputs/macho-universal.x86_64.i386 \ | |
| RUN: | FileCheck %s -check-prefix MULTISECTIONS | |
| RUN: llvm-readobj -h %p/Inputs/macho-universal-archive.x86_64.i386 \ | |
| RUN: | FileCheck %s -check-prefix MULTIHEADER-ARCHIVE | |
| RUN: llvm-readobj -sections %p/Inputs/macho-universal-archive.x86_64.i386 \ | |
| RUN: | FileCheck %s -check-prefix MULTISECTIONS-ARCHIVE | |
| MULTIHEADER: Format: Mach-O 64-bit x86-64 | |
| MULTIHEADER: Arch: x86_64 | |
| MULTIHEADER: AddressSize: 64bit | |
| MULTIHEADER: MachHeader { | |
| MULTIHEADER: Magic: Magic64 (0xFEEDFACF) | |
| MULTIHEADER: CpuType: X86-64 (0x1000007) | |
| MULTIHEADER: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3) | |
| MULTIHEADER: FileType: Executable (0x2) | |
| MULTIHEADER: NumOfLoadCommands: 16 | |
| MULTIHEADER: SizeOfLoadCommands: 880 | |
| MULTIHEADER: Flags [ (0x200085) | |
| MULTIHEADER: MH_DYLDLINK (0x4) | |
| MULTIHEADER: MH_NOUNDEFS (0x1) | |
| MULTIHEADER: MH_PIE (0x200000) | |
| MULTIHEADER: MH_TWOLEVEL (0x80) | |
| MULTIHEADER: ] | |
| MULTIHEADER: Reserved: 0x0 | |
| MULTIHEADER: } | |
| MULTIHEADER: Format: Mach-O 32-bit i386 | |
| MULTIHEADER: Arch: i386 | |
| MULTIHEADER: AddressSize: 32bit | |
| MULTIHEADER: MachHeader { | |
| MULTIHEADER: Magic: Magic (0xFEEDFACE) | |
| MULTIHEADER: CpuType: X86 (0x7) | |
| MULTIHEADER: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3) | |
| MULTIHEADER: FileType: Executable (0x2) | |
| MULTIHEADER: NumOfLoadCommands: 16 | |
| MULTIHEADER: SizeOfLoadCommands: 716 | |
| MULTIHEADER: Flags [ (0x1200085) | |
| MULTIHEADER: MH_DYLDLINK (0x4) | |
| MULTIHEADER: MH_NOUNDEFS (0x1) | |
| MULTIHEADER: MH_NO_HEAP_EXECUTION (0x1000000) | |
| MULTIHEADER: MH_PIE (0x200000) | |
| MULTIHEADER: MH_TWOLEVEL (0x80) | |
| MULTIHEADER: ] | |
| MULTIHEADER: } | |
| MULTISECTIONS: Format: Mach-O 64-bit x86-64 | |
| MULTISECTIONS: Arch: x86_64 | |
| MULTISECTIONS: AddressSize: 64bit | |
| MULTISECTIONS: Sections [ | |
| MULTISECTIONS: Section { | |
| MULTISECTIONS: Index: 0 | |
| MULTISECTIONS: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS: Address: 0x100000F60 | |
| MULTISECTIONS: Size: 0x12 | |
| MULTISECTIONS: Offset: 3936 | |
| MULTISECTIONS: Alignment: 4 | |
| MULTISECTIONS: RelocationOffset: 0x0 | |
| MULTISECTIONS: RelocationCount: 0 | |
| MULTISECTIONS: Type: 0x0 | |
| MULTISECTIONS: Attributes [ (0x800004) | |
| MULTISECTIONS: PureInstructions (0x800000) | |
| MULTISECTIONS: SomeInstructions (0x4) | |
| MULTISECTIONS: ] | |
| MULTISECTIONS: Reserved1: 0x0 | |
| MULTISECTIONS: Reserved2: 0x0 | |
| MULTISECTIONS: } | |
| MULTISECTIONS: Section { | |
| MULTISECTIONS: Index: 1 | |
| MULTISECTIONS: Name: __unwind_info (5F 5F 75 6E 77 69 6E 64 5F 69 6E 66 6F 00 00 00) | |
| MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS: Address: 0x100000F72 | |
| MULTISECTIONS: Size: 0x48 | |
| MULTISECTIONS: Offset: 3954 | |
| MULTISECTIONS: Alignment: 0 | |
| MULTISECTIONS: RelocationOffset: 0x0 | |
| MULTISECTIONS: RelocationCount: 0 | |
| MULTISECTIONS: Type: 0x0 | |
| MULTISECTIONS: Attributes [ (0x0) | |
| MULTISECTIONS: ] | |
| MULTISECTIONS: Reserved1: 0x0 | |
| MULTISECTIONS: Reserved2: 0x0 | |
| MULTISECTIONS: } | |
| MULTISECTIONS: Section { | |
| MULTISECTIONS: Index: 2 | |
| MULTISECTIONS: Name: __eh_frame (5F 5F 65 68 5F 66 72 61 6D 65 00 00 00 00 00 00) | |
| MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS: Address: 0x100000FC0 | |
| MULTISECTIONS: Size: 0x40 | |
| MULTISECTIONS: Offset: 4032 | |
| MULTISECTIONS: Alignment: 3 | |
| MULTISECTIONS: RelocationOffset: 0x0 | |
| MULTISECTIONS: RelocationCount: 0 | |
| MULTISECTIONS: Type: 0x0 | |
| MULTISECTIONS: Attributes [ (0x0) | |
| MULTISECTIONS: ] | |
| MULTISECTIONS: Reserved1: 0x0 | |
| MULTISECTIONS: Reserved2: 0x0 | |
| MULTISECTIONS: } | |
| MULTISECTIONS: ] | |
| MULTISECTIONS: Format: Mach-O 32-bit i386 | |
| MULTISECTIONS: Arch: i386 | |
| MULTISECTIONS: AddressSize: 32bit | |
| MULTISECTIONS: Sections [ | |
| MULTISECTIONS: Section { | |
| MULTISECTIONS: Index: 0 | |
| MULTISECTIONS: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS: Address: 0x1FA0 | |
| MULTISECTIONS: Size: 0x15 | |
| MULTISECTIONS: Offset: 4000 | |
| MULTISECTIONS: Alignment: 4 | |
| MULTISECTIONS: RelocationOffset: 0x0 | |
| MULTISECTIONS: RelocationCount: 0 | |
| MULTISECTIONS: Type: 0x0 | |
| MULTISECTIONS: Attributes [ (0x800004) | |
| MULTISECTIONS: PureInstructions (0x800000) | |
| MULTISECTIONS: SomeInstructions (0x4) | |
| MULTISECTIONS: ] | |
| MULTISECTIONS: Reserved1: 0x0 | |
| MULTISECTIONS: Reserved2: 0x0 | |
| MULTISECTIONS: } | |
| MULTISECTIONS: Section { | |
| MULTISECTIONS: Index: 1 | |
| MULTISECTIONS: Name: __unwind_info (5F 5F 75 6E 77 69 6E 64 5F 69 6E 66 6F 00 00 00) | |
| MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS: Address: 0x1FB5 | |
| MULTISECTIONS: Size: 0x48 | |
| MULTISECTIONS: Offset: 4021 | |
| MULTISECTIONS: Alignment: 0 | |
| MULTISECTIONS: RelocationOffset: 0x0 | |
| MULTISECTIONS: RelocationCount: 0 | |
| MULTISECTIONS: Type: 0x0 | |
| MULTISECTIONS: Attributes [ (0x0) | |
| MULTISECTIONS: ] | |
| MULTISECTIONS: Reserved1: 0x0 | |
| MULTISECTIONS: Reserved2: 0x0 | |
| MULTISECTIONS: } | |
| MULTISECTIONS: ] | |
| MULTIHEADER-ARCHIVE: File: hello.o | |
| MULTIHEADER-ARCHIVE: Format: Mach-O 64-bit x86-64 | |
| MULTIHEADER-ARCHIVE: Arch: x86_64 | |
| MULTIHEADER-ARCHIVE: AddressSize: 64bit | |
| MULTIHEADER-ARCHIVE: MachHeader { | |
| MULTIHEADER-ARCHIVE: Magic: Magic64 (0xFEEDFACF) | |
| MULTIHEADER-ARCHIVE: CpuType: X86-64 (0x1000007) | |
| MULTIHEADER-ARCHIVE: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3) | |
| MULTIHEADER-ARCHIVE: FileType: Relocatable (0x1) | |
| MULTIHEADER-ARCHIVE: NumOfLoadCommands: 3 | |
| MULTIHEADER-ARCHIVE: SizeOfLoadCommands: 496 | |
| MULTIHEADER-ARCHIVE: Flags [ (0x2000) | |
| MULTIHEADER-ARCHIVE: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) | |
| MULTIHEADER-ARCHIVE: ] | |
| MULTIHEADER-ARCHIVE: Reserved: 0x0 | |
| MULTIHEADER-ARCHIVE: } | |
| MULTIHEADER-ARCHIVE: File: foo.o | |
| MULTIHEADER-ARCHIVE: Format: Mach-O 32-bit i386 | |
| MULTIHEADER-ARCHIVE: Arch: i386 | |
| MULTIHEADER-ARCHIVE: AddressSize: 32bit | |
| MULTIHEADER-ARCHIVE: MachHeader { | |
| MULTIHEADER-ARCHIVE: Magic: Magic (0xFEEDFACE) | |
| MULTIHEADER-ARCHIVE: CpuType: X86 (0x7) | |
| MULTIHEADER-ARCHIVE: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3) | |
| MULTIHEADER-ARCHIVE: FileType: Relocatable (0x1) | |
| MULTIHEADER-ARCHIVE: NumOfLoadCommands: 3 | |
| MULTIHEADER-ARCHIVE: SizeOfLoadCommands: 296 | |
| MULTIHEADER-ARCHIVE: Flags [ (0x2000) | |
| MULTIHEADER-ARCHIVE: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) | |
| MULTIHEADER-ARCHIVE: ] | |
| MULTIHEADER-ARCHIVE: } | |
| MULTISECTIONS-ARCHIVE: File: hello.o | |
| MULTISECTIONS-ARCHIVE: Format: Mach-O 64-bit x86-64 | |
| MULTISECTIONS-ARCHIVE: Arch: x86_64 | |
| MULTISECTIONS-ARCHIVE: AddressSize: 64bit | |
| MULTISECTIONS-ARCHIVE: Sections [ | |
| MULTISECTIONS-ARCHIVE: Section { | |
| MULTISECTIONS-ARCHIVE: Index: 0 | |
| MULTISECTIONS-ARCHIVE: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Address: 0x0 | |
| MULTISECTIONS-ARCHIVE: Size: 0x3B | |
| MULTISECTIONS-ARCHIVE: Offset: 528 | |
| MULTISECTIONS-ARCHIVE: Alignment: 4 | |
| MULTISECTIONS-ARCHIVE: RelocationOffset: 0x2B8 | |
| MULTISECTIONS-ARCHIVE: RelocationCount: 2 | |
| MULTISECTIONS-ARCHIVE: Type: 0x0 | |
| MULTISECTIONS-ARCHIVE: Attributes [ (0x800004) | |
| MULTISECTIONS-ARCHIVE: PureInstructions (0x800000) | |
| MULTISECTIONS-ARCHIVE: SomeInstructions (0x4) | |
| MULTISECTIONS-ARCHIVE: ] | |
| MULTISECTIONS-ARCHIVE: Reserved1: 0x0 | |
| MULTISECTIONS-ARCHIVE: Reserved2: 0x0 | |
| MULTISECTIONS-ARCHIVE: } | |
| MULTISECTIONS-ARCHIVE: Section { | |
| MULTISECTIONS-ARCHIVE: Index: 1 | |
| MULTISECTIONS-ARCHIVE: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Address: 0x3B | |
| MULTISECTIONS-ARCHIVE: Size: 0xD | |
| MULTISECTIONS-ARCHIVE: Offset: 587 | |
| MULTISECTIONS-ARCHIVE: Alignment: 0 | |
| MULTISECTIONS-ARCHIVE: RelocationOffset: 0x0 | |
| MULTISECTIONS-ARCHIVE: RelocationCount: 0 | |
| MULTISECTIONS-ARCHIVE: Type: ExtReloc (0x2) | |
| MULTISECTIONS-ARCHIVE: Attributes [ (0x0) | |
| MULTISECTIONS-ARCHIVE: ] | |
| MULTISECTIONS-ARCHIVE: Reserved1: 0x0 | |
| MULTISECTIONS-ARCHIVE: Reserved2: 0x0 | |
| MULTISECTIONS-ARCHIVE: } | |
| MULTISECTIONS-ARCHIVE: Section { | |
| MULTISECTIONS-ARCHIVE: Index: 2 | |
| MULTISECTIONS-ARCHIVE: Name: __compact_unwind (5F 5F 63 6F 6D 70 61 63 74 5F 75 6E 77 69 6E 64) | |
| MULTISECTIONS-ARCHIVE: Segment: __LD (5F 5F 4C 44 00 00 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Address: 0x48 | |
| MULTISECTIONS-ARCHIVE: Size: 0x20 | |
| MULTISECTIONS-ARCHIVE: Offset: 600 | |
| MULTISECTIONS-ARCHIVE: Alignment: 3 | |
| MULTISECTIONS-ARCHIVE: RelocationOffset: 0x2C8 | |
| MULTISECTIONS-ARCHIVE: RelocationCount: 1 | |
| MULTISECTIONS-ARCHIVE: Type: 0x0 | |
| MULTISECTIONS-ARCHIVE: Attributes [ (0x20000) | |
| MULTISECTIONS-ARCHIVE: Debug (0x20000) | |
| MULTISECTIONS-ARCHIVE: ] | |
| MULTISECTIONS-ARCHIVE: Reserved1: 0x0 | |
| MULTISECTIONS-ARCHIVE: Reserved2: 0x0 | |
| MULTISECTIONS-ARCHIVE: } | |
| MULTISECTIONS-ARCHIVE: Section { | |
| MULTISECTIONS-ARCHIVE: Index: 3 | |
| MULTISECTIONS-ARCHIVE: Name: __eh_frame (5F 5F 65 68 5F 66 72 61 6D 65 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Address: 0x68 | |
| MULTISECTIONS-ARCHIVE: Size: 0x40 | |
| MULTISECTIONS-ARCHIVE: Offset: 632 | |
| MULTISECTIONS-ARCHIVE: Alignment: 3 | |
| MULTISECTIONS-ARCHIVE: RelocationOffset: 0x0 | |
| MULTISECTIONS-ARCHIVE: RelocationCount: 0 | |
| MULTISECTIONS-ARCHIVE: Type: 0xB | |
| MULTISECTIONS-ARCHIVE: Attributes [ (0x680000) | |
| MULTISECTIONS-ARCHIVE: LiveSupport (0x80000) | |
| MULTISECTIONS-ARCHIVE: NoTOC (0x400000) | |
| MULTISECTIONS-ARCHIVE: StripStaticSyms (0x200000) | |
| MULTISECTIONS-ARCHIVE: ] | |
| MULTISECTIONS-ARCHIVE: Reserved1: 0x0 | |
| MULTISECTIONS-ARCHIVE: Reserved2: 0x0 | |
| MULTISECTIONS-ARCHIVE: } | |
| MULTISECTIONS-ARCHIVE: ] | |
| MULTISECTIONS-ARCHIVE: File: foo.o | |
| MULTISECTIONS-ARCHIVE: Format: Mach-O 32-bit i386 | |
| MULTISECTIONS-ARCHIVE: Arch: i386 | |
| MULTISECTIONS-ARCHIVE: AddressSize: 32bit | |
| MULTISECTIONS-ARCHIVE: Sections [ | |
| MULTISECTIONS-ARCHIVE: Section { | |
| MULTISECTIONS-ARCHIVE: Index: 0 | |
| MULTISECTIONS-ARCHIVE: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Address: 0x0 | |
| MULTISECTIONS-ARCHIVE: Size: 0x5 | |
| MULTISECTIONS-ARCHIVE: Offset: 324 | |
| MULTISECTIONS-ARCHIVE: Alignment: 4 | |
| MULTISECTIONS-ARCHIVE: RelocationOffset: 0x0 | |
| MULTISECTIONS-ARCHIVE: RelocationCount: 0 | |
| MULTISECTIONS-ARCHIVE: Type: 0x0 | |
| MULTISECTIONS-ARCHIVE: Attributes [ (0x800004) | |
| MULTISECTIONS-ARCHIVE: PureInstructions (0x800000) | |
| MULTISECTIONS-ARCHIVE: SomeInstructions (0x4) | |
| MULTISECTIONS-ARCHIVE: ] | |
| MULTISECTIONS-ARCHIVE: Reserved1: 0x0 | |
| MULTISECTIONS-ARCHIVE: Reserved2: 0x0 | |
| MULTISECTIONS-ARCHIVE: } | |
| MULTISECTIONS-ARCHIVE: Section { | |
| MULTISECTIONS-ARCHIVE: Index: 1 | |
| MULTISECTIONS-ARCHIVE: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) | |
| MULTISECTIONS-ARCHIVE: Address: 0x8 | |
| MULTISECTIONS-ARCHIVE: Size: 0x4 | |
| MULTISECTIONS-ARCHIVE: Offset: 332 | |
| MULTISECTIONS-ARCHIVE: Alignment: 2 | |
| MULTISECTIONS-ARCHIVE: RelocationOffset: 0x0 | |
| MULTISECTIONS-ARCHIVE: RelocationCount: 0 | |
| MULTISECTIONS-ARCHIVE: Type: 0x0 | |
| MULTISECTIONS-ARCHIVE: Attributes [ (0x0) | |
| MULTISECTIONS-ARCHIVE: ] | |
| MULTISECTIONS-ARCHIVE: Reserved1: 0x0 | |
| MULTISECTIONS-ARCHIVE: Reserved2: 0x0 | |
| MULTISECTIONS-ARCHIVE: } | |
| MULTISECTIONS-ARCHIVE: ] | |