Index: test/ELF/emulation-aarch64.s =================================================================== --- test/ELF/emulation-aarch64.s +++ test/ELF/emulation-aarch64.s @@ -0,0 +1,34 @@ +# REQUIRES: aarch64 +# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %taarch64 +# RUN: ld.lld -m aarch64linux %taarch64 -o %t2aarch64 +# RUN: llvm-readobj -file-headers %t2aarch64 | FileCheck --check-prefix=AARCH64 %s +# RUN: ld.lld -m aarch64elf %taarch64 -o %t3aarch64 +# RUN: llvm-readobj -file-headers %t3aarch64 | FileCheck --check-prefix=AARCH64 %s +# RUN: ld.lld -m aarch64_elf64_le_vec %taarch64 -o %t4aarch64 +# RUN: llvm-readobj -file-headers %t4aarch64 | FileCheck --check-prefix=AARCH64 %s +# RUN: ld.lld %taarch64 -o %t5aarch64 +# RUN: llvm-readobj -file-headers %t5aarch64 | FileCheck --check-prefix=AARCH64 %s +# RUN: echo 'OUTPUT_FORMAT(elf64-littleaarch64)' > %t4aarch64.script +# RUN: ld.lld %t4aarch64.script %taarch64 -o %t4aarch64 +# RUN: llvm-readobj -file-headers %t4aarch64 | FileCheck --check-prefix=AARCH64 %s +# AARCH64: ElfHeader { +# AARCH64-NEXT: Ident { +# AARCH64-NEXT: Magic: (7F 45 4C 46) +# AARCH64-NEXT: Class: 64-bit (0x2) +# AARCH64-NEXT: DataEncoding: LittleEndian (0x1) +# AARCH64-NEXT: FileVersion: 1 +# AARCH64-NEXT: OS/ABI: SystemV (0x0) +# AARCH64-NEXT: ABIVersion: 0 +# AARCH64-NEXT: Unused: (00 00 00 00 00 00 00) +# AARCH64-NEXT: } +# AARCH64-NEXT: Type: Executable (0x2) +# AARCH64-NEXT: Machine: EM_AARCH64 (0xB7) +# AARCH64-NEXT: Version: 1 +# AARCH64-NEXT: Entry: +# AARCH64-NEXT: ProgramHeaderOffset: 0x40 +# AARCH64-NEXT: SectionHeaderOffset: +# AARCH64-NEXT: Flags [ (0x0) +# AARCH64-NEXT: ] + +.globl _start +_start: Index: test/ELF/emulation-arm.s =================================================================== --- test/ELF/emulation-arm.s +++ test/ELF/emulation-arm.s @@ -0,0 +1,27 @@ +# REQUIRES: arm +# RUN: llvm-mc -filetype=obj -triple=armv7-unknown-linux %s -o %tarm +# RUN: ld.lld -m armelf %tarm -o %t2arm +# RUN: llvm-readobj -file-headers %t2arm | FileCheck --check-prefix=ARM %s +# RUN: ld.lld -m armelf_linux_eabi %tarm -o %t3arm +# RUN: llvm-readobj -file-headers %t3arm | FileCheck --check-prefix=ARM %s +# RUN: ld.lld %tarm -o %t4arm +# RUN: llvm-readobj -file-headers %t4arm | FileCheck --check-prefix=ARM %s +# RUN: echo 'OUTPUT_FORMAT(elf32-littlearm)' > %t5arm.script +# RUN: ld.lld %t5arm.script %tarm -o %t5arm +# RUN: llvm-readobj -file-headers %t5arm | FileCheck --check-prefix=ARM %s +# ARM: ElfHeader { +# ARM-NEXT: Ident { +# ARM-NEXT: Magic: (7F 45 4C 46) +# ARM-NEXT: Class: 32-bit (0x1) +# ARM-NEXT: DataEncoding: LittleEndian (0x1) +# ARM-NEXT: FileVersion: 1 +# ARM-NEXT: OS/ABI: SystemV (0x0) +# ARM-NEXT: ABIVersion: 0 +# ARM-NEXT: Unused: (00 00 00 00 00 00 00) +# ARM-NEXT: } +# ARM-NEXT: Type: Executable (0x2) +# ARM-NEXT: Machine: EM_ARM (0x28) +# ARM-NEXT: Version: 1 + +.globl _start +_start: Index: test/ELF/emulation-mips.s =================================================================== --- test/ELF/emulation-mips.s +++ test/ELF/emulation-mips.s @@ -0,0 +1,115 @@ +# REQUIRES: mips +# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %tmips +# RUN: ld.lld -m elf32btsmip -e _start %tmips -o %t2mips +# RUN: llvm-readobj -file-headers %t2mips | FileCheck --check-prefix=MIPS %s +# RUN: ld.lld %tmips -e _start -o %t3mips +# RUN: llvm-readobj -file-headers %t3mips | FileCheck --check-prefix=MIPS %s +# MIPS: ElfHeader { +# MIPS-NEXT: Ident { +# MIPS-NEXT: Magic: (7F 45 4C 46) +# MIPS-NEXT: Class: 32-bit (0x1) +# MIPS-NEXT: DataEncoding: BigEndian (0x2) +# MIPS-NEXT: FileVersion: 1 +# MIPS-NEXT: OS/ABI: SystemV (0x0) +# MIPS-NEXT: ABIVersion: 1 +# MIPS-NEXT: Unused: (00 00 00 00 00 00 00) +# MIPS-NEXT: } +# MIPS-NEXT: Type: Executable (0x2) +# MIPS-NEXT: Machine: EM_MIPS (0x8) +# MIPS-NEXT: Version: 1 +# MIPS-NEXT: Entry: +# MIPS-NEXT: ProgramHeaderOffset: 0x34 +# MIPS-NEXT: SectionHeaderOffset: +# MIPS-NEXT: Flags [ +# MIPS-NEXT: EF_MIPS_ABI_O32 +# MIPS-NEXT: EF_MIPS_ARCH_32 +# MIPS-NEXT: EF_MIPS_CPIC +# MIPS-NEXT: ] + +# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux %s -o %tmipsel +# RUN: ld.lld -m elf32ltsmip -e _start %tmipsel -o %t2mipsel +# RUN: llvm-readobj -file-headers %t2mipsel | FileCheck --check-prefix=MIPSEL %s +# RUN: ld.lld -melf32ltsmip -e _start %tmipsel -o %t2mipsel +# RUN: llvm-readobj -file-headers %t2mipsel | FileCheck --check-prefix=MIPSEL %s +# RUN: ld.lld %tmipsel -e _start -o %t3mipsel +# RUN: llvm-readobj -file-headers %t3mipsel | FileCheck --check-prefix=MIPSEL %s +# MIPSEL: ElfHeader { +# MIPSEL-NEXT: Ident { +# MIPSEL-NEXT: Magic: (7F 45 4C 46) +# MIPSEL-NEXT: Class: 32-bit (0x1) +# MIPSEL-NEXT: DataEncoding: LittleEndian (0x1) +# MIPSEL-NEXT: FileVersion: 1 +# MIPSEL-NEXT: OS/ABI: SystemV (0x0) +# MIPSEL-NEXT: ABIVersion: 1 +# MIPSEL-NEXT: Unused: (00 00 00 00 00 00 00) +# MIPSEL-NEXT: } +# MIPSEL-NEXT: Type: Executable (0x2) +# MIPSEL-NEXT: Machine: EM_MIPS (0x8) +# MIPSEL-NEXT: Version: 1 +# MIPSEL-NEXT: Entry: +# MIPSEL-NEXT: ProgramHeaderOffset: 0x34 +# MIPSEL-NEXT: SectionHeaderOffset: +# MIPSEL-NEXT: Flags [ +# MIPSEL-NEXT: EF_MIPS_ABI_O32 +# MIPSEL-NEXT: EF_MIPS_ARCH_32 +# MIPSEL-NEXT: EF_MIPS_CPIC +# MIPSEL-NEXT: ] + +# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux -position-independent \ +# RUN: %s -o %tmips64 +# RUN: ld.lld -m elf64btsmip -e _start %tmips64 -o %t2mips64 +# RUN: llvm-readobj -file-headers %t2mips64 | FileCheck --check-prefix=MIPS64 %s +# RUN: ld.lld %tmips64 -e _start -o %t3mips64 +# RUN: llvm-readobj -file-headers %t3mips64 | FileCheck --check-prefix=MIPS64 %s +# MIPS64: ElfHeader { +# MIPS64-NEXT: Ident { +# MIPS64-NEXT: Magic: (7F 45 4C 46) +# MIPS64-NEXT: Class: 64-bit (0x2) +# MIPS64-NEXT: DataEncoding: BigEndian (0x2) +# MIPS64-NEXT: FileVersion: 1 +# MIPS64-NEXT: OS/ABI: SystemV (0x0) +# MIPS64-NEXT: ABIVersion: 0 +# MIPS64-NEXT: Unused: (00 00 00 00 00 00 00) +# MIPS64-NEXT: } +# MIPS64-NEXT: Type: Executable (0x2) +# MIPS64-NEXT: Machine: EM_MIPS (0x8) +# MIPS64-NEXT: Version: 1 +# MIPS64-NEXT: Entry: +# MIPS64-NEXT: ProgramHeaderOffset: 0x40 +# MIPS64-NEXT: SectionHeaderOffset: +# MIPS64-NEXT: Flags [ +# MIPS64-NEXT: EF_MIPS_ARCH_64 +# MIPS64-NEXT: EF_MIPS_CPIC +# MIPS64-NEXT: EF_MIPS_PIC +# MIPS64-NEXT: ] + +# RUN: llvm-mc -filetype=obj -triple=mips64el-unknown-linux \ +# RUN: -position-independent %s -o %tmips64el +# RUN: ld.lld -m elf64ltsmip -e _start %tmips64el -o %t2mips64el +# RUN: llvm-readobj -file-headers %t2mips64el | FileCheck --check-prefix=MIPS64EL %s +# RUN: ld.lld %tmips64el -e _start -o %t3mips64el +# RUN: llvm-readobj -file-headers %t3mips64el | FileCheck --check-prefix=MIPS64EL %s +# MIPS64EL: ElfHeader { +# MIPS64EL-NEXT: Ident { +# MIPS64EL-NEXT: Magic: (7F 45 4C 46) +# MIPS64EL-NEXT: Class: 64-bit (0x2) +# MIPS64EL-NEXT: DataEncoding: LittleEndian (0x1) +# MIPS64EL-NEXT: FileVersion: 1 +# MIPS64EL-NEXT: OS/ABI: SystemV (0x0) +# MIPS64EL-NEXT: ABIVersion: 0 +# MIPS64EL-NEXT: Unused: (00 00 00 00 00 00 00) +# MIPS64EL-NEXT: } +# MIPS64EL-NEXT: Type: Executable (0x2) +# MIPS64EL-NEXT: Machine: EM_MIPS (0x8) +# MIPS64EL-NEXT: Version: 1 +# MIPS64EL-NEXT: Entry: +# MIPS64EL-NEXT: ProgramHeaderOffset: 0x40 +# MIPS64EL-NEXT: SectionHeaderOffset: +# MIPS64EL-NEXT: Flags [ +# MIPS64EL-NEXT: EF_MIPS_ARCH_64 +# MIPS64EL-NEXT: EF_MIPS_CPIC +# MIPS64EL-NEXT: EF_MIPS_PIC +# MIPS64EL-NEXT: ] + +.globl _start +_start: Index: test/ELF/emulation-ppc.s =================================================================== --- test/ELF/emulation-ppc.s +++ test/ELF/emulation-ppc.s @@ -0,0 +1,67 @@ +# REQUIRES: ppc +# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %tppc64 +# RUN: ld.lld -m elf64ppc %tppc64 -o %t2ppc64 +# RUN: llvm-readobj -file-headers %t2ppc64 | FileCheck --check-prefix=PPC64 %s +# RUN: ld.lld %tppc64 -o %t3ppc64 +# RUN: llvm-readobj -file-headers %t3ppc64 | FileCheck --check-prefix=PPC64 %s +# PPC64: ElfHeader { +# PPC64-NEXT: Ident { +# PPC64-NEXT: Magic: (7F 45 4C 46) +# PPC64-NEXT: Class: 64-bit (0x2) +# PPC64-NEXT: DataEncoding: BigEndian (0x2) +# PPC64-NEXT: FileVersion: 1 +# PPC64-NEXT: OS/ABI: SystemV (0x0) +# PPC64-NEXT: ABIVersion: 0 +# PPC64-NEXT: Unused: (00 00 00 00 00 00 00) +# PPC64-NEXT: } +# PPC64-NEXT: Type: Executable (0x2) +# PPC64-NEXT: Machine: EM_PPC64 (0x15) +# PPC64-NEXT: Version: 1 +# PPC64-NEXT: Entry: +# PPC64-NEXT: ProgramHeaderOffset: 0x40 +# PPC64-NEXT: SectionHeaderOffset: +# PPC64-NEXT: Flags [ (0x2) +# PPC64-NEXT: 0x2 +# PPC64-NEXT: ] +# PPC64-NEXT: HeaderSize: 64 +# PPC64-NEXT: ProgramHeaderEntrySize: 56 +# PPC64-NEXT: ProgramHeaderCount: +# PPC64-NEXT: SectionHeaderEntrySize: 64 +# PPC64-NEXT: SectionHeaderCount: +# PPC64-NEXT: StringTableSectionIndex: +# PPC64-NEXT: } + +# RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %tppc64le +# RUN: ld.lld -m elf64lppc %tppc64le -o %t2ppc64le +# RUN: llvm-readobj -file-headers %t2ppc64le | FileCheck --check-prefix=PPC64LE %s +# RUN: ld.lld %tppc64le -o %t3ppc64le +# RUN: llvm-readobj -file-headers %t3ppc64le | FileCheck --check-prefix=PPC64LE %s +# PPC64LE: ElfHeader { +# PPC64LE-NEXT: Ident { +# PPC64LE-NEXT: Magic: (7F 45 4C 46) +# PPC64LE-NEXT: Class: 64-bit (0x2) +# PPC64LE-NEXT: DataEncoding: LittleEndian (0x1) +# PPC64LE-NEXT: FileVersion: 1 +# PPC64LE-NEXT: OS/ABI: SystemV (0x0) +# PPC64LE-NEXT: ABIVersion: 0 +# PPC64LE-NEXT: Unused: (00 00 00 00 00 00 00) +# PPC64LE-NEXT: } +# PPC64LE-NEXT: Type: Executable (0x2) +# PPC64LE-NEXT: Machine: EM_PPC64 (0x15) +# PPC64LE-NEXT: Version: 1 +# PPC64LE-NEXT: Entry: +# PPC64LE-NEXT: ProgramHeaderOffset: 0x40 +# PPC64LE-NEXT: SectionHeaderOffset: +# PPC64LE-NEXT: Flags [ (0x2) +# PPC64LE-NEXT: 0x2 +# PPC64LE-NEXT: ] +# PPC64LE-NEXT: HeaderSize: 64 +# PPC64LE-NEXT: ProgramHeaderEntrySize: 56 +# PPC64LE-NEXT: ProgramHeaderCount: +# PPC64LE-NEXT: SectionHeaderEntrySize: 64 +# PPC64LE-NEXT: SectionHeaderCount: +# PPC64LE-NEXT: StringTableSectionIndex: +# PPC64LE-NEXT: } + +.globl _start +_start: Index: test/ELF/emulation-x86.s =================================================================== --- test/ELF/emulation-x86.s +++ test/ELF/emulation-x86.s @@ -0,0 +1,205 @@ +# REQUIRES: x86 +# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %tx64 +# RUN: ld.lld -m elf_amd64_fbsd %tx64 -o %t2x64 +# RUN: llvm-readobj -file-headers %t2x64 | FileCheck --check-prefix=AMD64 %s +# RUN: ld.lld %tx64 -o %t3x64 +# RUN: llvm-readobj -file-headers %t3x64 | FileCheck --check-prefix=AMD64 %s +# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.sysv +# RUN: ld.lld -m elf_amd64_fbsd %t.sysv -o %t.freebsd +# RUN: llvm-readobj -file-headers %t.freebsd | FileCheck --check-prefix=AMD64 %s +# AMD64: ElfHeader { +# AMD64-NEXT: Ident { +# AMD64-NEXT: Magic: (7F 45 4C 46) +# AMD64-NEXT: Class: 64-bit (0x2) +# AMD64-NEXT: DataEncoding: LittleEndian (0x1) +# AMD64-NEXT: FileVersion: 1 +# AMD64-NEXT: OS/ABI: FreeBSD (0x9) +# AMD64-NEXT: ABIVersion: 0 +# AMD64-NEXT: Unused: (00 00 00 00 00 00 00) +# AMD64-NEXT: } +# AMD64-NEXT: Type: Executable (0x2) +# AMD64-NEXT: Machine: EM_X86_64 (0x3E) +# AMD64-NEXT: Version: 1 +# AMD64-NEXT: Entry: +# AMD64-NEXT: ProgramHeaderOffset: 0x40 +# AMD64-NEXT: SectionHeaderOffset: +# AMD64-NEXT: Flags [ (0x0) +# AMD64-NEXT: ] +# AMD64-NEXT: HeaderSize: 64 +# AMD64-NEXT: ProgramHeaderEntrySize: 56 +# AMD64-NEXT: ProgramHeaderCount: +# AMD64-NEXT: SectionHeaderEntrySize: 64 +# AMD64-NEXT: SectionHeaderCount: +# AMD64-NEXT: StringTableSectionIndex: +# AMD64-NEXT: } + +# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %tx64 +# RUN: ld.lld -m elf_x86_64 %tx64 -o %t2x64 +# RUN: llvm-readobj -file-headers %t2x64 | FileCheck --check-prefix=X86-64 %s +# RUN: ld.lld %tx64 -o %t3x64 +# RUN: llvm-readobj -file-headers %t3x64 | FileCheck --check-prefix=X86-64 %s +# RUN: echo 'OUTPUT_FORMAT(elf64-x86-64)' > %t4x64.script +# RUN: ld.lld %t4x64.script %tx64 -o %t4x64 +# RUN: ld.lld %tx64 -o %t4x64 %t4x64.script +# RUN: llvm-readobj -file-headers %t4x64 | FileCheck --check-prefix=X86-64 %s +# X86-64: ElfHeader { +# X86-64-NEXT: Ident { +# X86-64-NEXT: Magic: (7F 45 4C 46) +# X86-64-NEXT: Class: 64-bit (0x2) +# X86-64-NEXT: DataEncoding: LittleEndian (0x1) +# X86-64-NEXT: FileVersion: 1 +# X86-64-NEXT: OS/ABI: SystemV (0x0) +# X86-64-NEXT: ABIVersion: 0 +# X86-64-NEXT: Unused: (00 00 00 00 00 00 00) +# X86-64-NEXT: } +# X86-64-NEXT: Type: Executable (0x2) +# X86-64-NEXT: Machine: EM_X86_64 (0x3E) +# X86-64-NEXT: Version: 1 +# X86-64-NEXT: Entry: +# X86-64-NEXT: ProgramHeaderOffset: 0x40 +# X86-64-NEXT: SectionHeaderOffset: +# X86-64-NEXT: Flags [ (0x0) +# X86-64-NEXT: ] +# X86-64-NEXT: HeaderSize: 64 +# X86-64-NEXT: ProgramHeaderEntrySize: 56 +# X86-64-NEXT: ProgramHeaderCount: +# X86-64-NEXT: SectionHeaderEntrySize: 64 +# X86-64-NEXT: SectionHeaderCount: +# X86-64-NEXT: StringTableSectionIndex: +# X86-64-NEXT: } + +# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux-gnux32 %s -o %tx32 +# RUN: ld.lld -m elf32_x86_64 %tx32 -o %t2x32 +# RUN: llvm-readobj -file-headers %t2x32 | FileCheck --check-prefix=X32 %s +# RUN: ld.lld %tx32 -o %t3x32 +# RUN: llvm-readobj -file-headers %t3x32 | FileCheck --check-prefix=X32 %s +# RUN: echo 'OUTPUT_FORMAT(elf32-x86-64)' > %t4x32.script +# RUN: ld.lld %t4x32.script %tx32 -o %t4x32 +# RUN: llvm-readobj -file-headers %t4x32 | FileCheck --check-prefix=X32 %s +# X32: ElfHeader { +# X32-NEXT: Ident { +# X32-NEXT: Magic: (7F 45 4C 46) +# X32-NEXT: Class: 32-bit (0x1) +# X32-NEXT: DataEncoding: LittleEndian (0x1) +# X32-NEXT: FileVersion: 1 +# X32-NEXT: OS/ABI: SystemV (0x0) +# X32-NEXT: ABIVersion: 0 +# X32-NEXT: Unused: (00 00 00 00 00 00 00) +# X32-NEXT: } +# X32-NEXT: Type: Executable (0x2) +# X32-NEXT: Machine: EM_X86_64 (0x3E) +# X32-NEXT: Version: 1 +# X32-NEXT: Entry: +# X32-NEXT: ProgramHeaderOffset: 0x34 +# X32-NEXT: SectionHeaderOffset: +# X32-NEXT: Flags [ (0x0) +# X32-NEXT: ] +# X32-NEXT: HeaderSize: 52 +# X32-NEXT: ProgramHeaderEntrySize: 32 +# X32-NEXT: ProgramHeaderCount: +# X32-NEXT: SectionHeaderEntrySize: 40 +# X32-NEXT: SectionHeaderCount: +# X32-NEXT: StringTableSectionIndex: +# X32-NEXT: } + +# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %tx86 +# RUN: ld.lld -m elf_i386 %tx86 -o %t2x86 +# RUN: llvm-readobj -file-headers %t2x86 | FileCheck --check-prefix=X86 %s +# RUN: ld.lld %tx86 -o %t3x86 +# RUN: llvm-readobj -file-headers %t3x86 | FileCheck --check-prefix=X86 %s +# RUN: echo 'OUTPUT_FORMAT(elf32-i386)' > %t4x86.script +# RUN: ld.lld %t4x86.script %tx86 -o %t4x86 +# RUN: llvm-readobj -file-headers %t4x86 | FileCheck --check-prefix=X86 %s +# X86: ElfHeader { +# X86-NEXT: Ident { +# X86-NEXT: Magic: (7F 45 4C 46) +# X86-NEXT: Class: 32-bit (0x1) +# X86-NEXT: DataEncoding: LittleEndian (0x1) +# X86-NEXT: FileVersion: 1 +# X86-NEXT: OS/ABI: SystemV (0x0) +# X86-NEXT: ABIVersion: 0 +# X86-NEXT: Unused: (00 00 00 00 00 00 00) +# X86-NEXT: } +# X86-NEXT: Type: Executable (0x2) +# X86-NEXT: Machine: EM_386 (0x3) +# X86-NEXT: Version: 1 +# X86-NEXT: Entry: +# X86-NEXT: ProgramHeaderOffset: 0x34 +# X86-NEXT: SectionHeaderOffset: +# X86-NEXT: Flags [ (0x0) +# X86-NEXT: ] +# X86-NEXT: HeaderSize: 52 +# X86-NEXT: ProgramHeaderEntrySize: 32 +# X86-NEXT: ProgramHeaderCount: +# X86-NEXT: SectionHeaderEntrySize: 40 +# X86-NEXT: SectionHeaderCount: +# X86-NEXT: StringTableSectionIndex: +# X86-NEXT: } + +# RUN: llvm-mc -filetype=obj -triple=i686-unknown-freebsd %s -o %tx86fbsd +# RUN: ld.lld -m elf_i386_fbsd %tx86fbsd -o %t2x86_fbsd +# RUN: llvm-readobj -file-headers %t2x86_fbsd | FileCheck --check-prefix=X86FBSD %s +# RUN: ld.lld %tx86fbsd -o %t3x86fbsd +# RUN: llvm-readobj -file-headers %t3x86fbsd | FileCheck --check-prefix=X86FBSD %s +# X86FBSD: ElfHeader { +# X86FBSD-NEXT: Ident { +# X86FBSD-NEXT: Magic: (7F 45 4C 46) +# X86FBSD-NEXT: Class: 32-bit (0x1) +# X86FBSD-NEXT: DataEncoding: LittleEndian (0x1) +# X86FBSD-NEXT: FileVersion: 1 +# X86FBSD-NEXT: OS/ABI: FreeBSD (0x9) +# X86FBSD-NEXT: ABIVersion: 0 +# X86FBSD-NEXT: Unused: (00 00 00 00 00 00 00) +# X86FBSD-NEXT: } +# X86FBSD-NEXT: Type: Executable (0x2) +# X86FBSD-NEXT: Machine: EM_386 (0x3) +# X86FBSD-NEXT: Version: 1 +# X86FBSD-NEXT: Entry: +# X86FBSD-NEXT: ProgramHeaderOffset: 0x34 +# X86FBSD-NEXT: SectionHeaderOffset: +# X86FBSD-NEXT: Flags [ (0x0) +# X86FBSD-NEXT: ] +# X86FBSD-NEXT: HeaderSize: 52 +# X86FBSD-NEXT: ProgramHeaderEntrySize: 32 +# X86FBSD-NEXT: ProgramHeaderCount: +# X86FBSD-NEXT: SectionHeaderEntrySize: 40 +# X86FBSD-NEXT: SectionHeaderCount: +# X86FBSD-NEXT: StringTableSectionIndex: +# X86FBSD-NEXT: } + +# RUN: llvm-mc -filetype=obj -triple=i586-intel-elfiamcu %s -o %tiamcu +# RUN: ld.lld -m elf_iamcu %tiamcu -o %t2iamcu +# RUN: llvm-readobj -file-headers %t2iamcu | FileCheck --check-prefix=IAMCU %s +# RUN: ld.lld %tiamcu -o %t3iamcu +# RUN: llvm-readobj -file-headers %t3iamcu | FileCheck --check-prefix=IAMCU %s +# RUN: echo 'OUTPUT_FORMAT(elf32-iamcu)' > %t4iamcu.script +# RUN: ld.lld %t4iamcu.script %tiamcu -o %t4iamcu +# RUN: llvm-readobj -file-headers %t4iamcu | FileCheck --check-prefix=IAMCU %s +# IAMCU: ElfHeader { +# IAMCU-NEXT: Ident { +# IAMCU-NEXT: Magic: (7F 45 4C 46) +# IAMCU-NEXT: Class: 32-bit (0x1) +# IAMCU-NEXT: DataEncoding: LittleEndian (0x1) +# IAMCU-NEXT: FileVersion: 1 +# IAMCU-NEXT: OS/ABI: SystemV (0x0) +# IAMCU-NEXT: ABIVersion: 0 +# IAMCU-NEXT: Unused: (00 00 00 00 00 00 00) +# IAMCU-NEXT: } +# IAMCU-NEXT: Type: Executable (0x2) +# IAMCU-NEXT: Machine: EM_IAMCU (0x6) +# IAMCU-NEXT: Version: 1 +# IAMCU-NEXT: Entry: +# IAMCU-NEXT: ProgramHeaderOffset: 0x34 +# IAMCU-NEXT: SectionHeaderOffset: +# IAMCU-NEXT: Flags [ (0x0) +# IAMCU-NEXT: ] +# IAMCU-NEXT: HeaderSize: 52 +# IAMCU-NEXT: ProgramHeaderEntrySize: 32 +# IAMCU-NEXT: ProgramHeaderCount: +# IAMCU-NEXT: SectionHeaderEntrySize: 40 +# IAMCU-NEXT: SectionHeaderCount: +# IAMCU-NEXT: StringTableSectionIndex: +# IAMCU-NEXT: } + +.globl _start +_start: Index: test/ELF/emulation.s =================================================================== --- test/ELF/emulation.s +++ test/ELF/emulation.s @@ -1,436 +0,0 @@ -# REQUIRES: x86,ppc,mips,aarch64,arm -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %tx64 -# RUN: ld.lld -m elf_amd64_fbsd %tx64 -o %t2x64 -# RUN: llvm-readobj -file-headers %t2x64 | FileCheck --check-prefix=AMD64 %s -# RUN: ld.lld %tx64 -o %t3x64 -# RUN: llvm-readobj -file-headers %t3x64 | FileCheck --check-prefix=AMD64 %s -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.sysv -# RUN: ld.lld -m elf_amd64_fbsd %t.sysv -o %t.freebsd -# RUN: llvm-readobj -file-headers %t.freebsd | FileCheck --check-prefix=AMD64 %s -# AMD64: ElfHeader { -# AMD64-NEXT: Ident { -# AMD64-NEXT: Magic: (7F 45 4C 46) -# AMD64-NEXT: Class: 64-bit (0x2) -# AMD64-NEXT: DataEncoding: LittleEndian (0x1) -# AMD64-NEXT: FileVersion: 1 -# AMD64-NEXT: OS/ABI: FreeBSD (0x9) -# AMD64-NEXT: ABIVersion: 0 -# AMD64-NEXT: Unused: (00 00 00 00 00 00 00) -# AMD64-NEXT: } -# AMD64-NEXT: Type: Executable (0x2) -# AMD64-NEXT: Machine: EM_X86_64 (0x3E) -# AMD64-NEXT: Version: 1 -# AMD64-NEXT: Entry: -# AMD64-NEXT: ProgramHeaderOffset: 0x40 -# AMD64-NEXT: SectionHeaderOffset: -# AMD64-NEXT: Flags [ (0x0) -# AMD64-NEXT: ] -# AMD64-NEXT: HeaderSize: 64 -# AMD64-NEXT: ProgramHeaderEntrySize: 56 -# AMD64-NEXT: ProgramHeaderCount: -# AMD64-NEXT: SectionHeaderEntrySize: 64 -# AMD64-NEXT: SectionHeaderCount: -# AMD64-NEXT: StringTableSectionIndex: -# AMD64-NEXT: } - -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %tx64 -# RUN: ld.lld -m elf_x86_64 %tx64 -o %t2x64 -# RUN: llvm-readobj -file-headers %t2x64 | FileCheck --check-prefix=X86-64 %s -# RUN: ld.lld %tx64 -o %t3x64 -# RUN: llvm-readobj -file-headers %t3x64 | FileCheck --check-prefix=X86-64 %s -# RUN: echo 'OUTPUT_FORMAT(elf64-x86-64)' > %t4x64.script -# RUN: ld.lld %t4x64.script %tx64 -o %t4x64 -# RUN: ld.lld %tx64 -o %t4x64 %t4x64.script -# RUN: llvm-readobj -file-headers %t4x64 | FileCheck --check-prefix=X86-64 %s -# X86-64: ElfHeader { -# X86-64-NEXT: Ident { -# X86-64-NEXT: Magic: (7F 45 4C 46) -# X86-64-NEXT: Class: 64-bit (0x2) -# X86-64-NEXT: DataEncoding: LittleEndian (0x1) -# X86-64-NEXT: FileVersion: 1 -# X86-64-NEXT: OS/ABI: SystemV (0x0) -# X86-64-NEXT: ABIVersion: 0 -# X86-64-NEXT: Unused: (00 00 00 00 00 00 00) -# X86-64-NEXT: } -# X86-64-NEXT: Type: Executable (0x2) -# X86-64-NEXT: Machine: EM_X86_64 (0x3E) -# X86-64-NEXT: Version: 1 -# X86-64-NEXT: Entry: -# X86-64-NEXT: ProgramHeaderOffset: 0x40 -# X86-64-NEXT: SectionHeaderOffset: -# X86-64-NEXT: Flags [ (0x0) -# X86-64-NEXT: ] -# X86-64-NEXT: HeaderSize: 64 -# X86-64-NEXT: ProgramHeaderEntrySize: 56 -# X86-64-NEXT: ProgramHeaderCount: -# X86-64-NEXT: SectionHeaderEntrySize: 64 -# X86-64-NEXT: SectionHeaderCount: -# X86-64-NEXT: StringTableSectionIndex: -# X86-64-NEXT: } - -# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux-gnux32 %s -o %tx32 -# RUN: ld.lld -m elf32_x86_64 %tx32 -o %t2x32 -# RUN: llvm-readobj -file-headers %t2x32 | FileCheck --check-prefix=X32 %s -# RUN: ld.lld %tx32 -o %t3x32 -# RUN: llvm-readobj -file-headers %t3x32 | FileCheck --check-prefix=X32 %s -# RUN: echo 'OUTPUT_FORMAT(elf32-x86-64)' > %t4x32.script -# RUN: ld.lld %t4x32.script %tx32 -o %t4x32 -# RUN: llvm-readobj -file-headers %t4x32 | FileCheck --check-prefix=X32 %s -# X32: ElfHeader { -# X32-NEXT: Ident { -# X32-NEXT: Magic: (7F 45 4C 46) -# X32-NEXT: Class: 32-bit (0x1) -# X32-NEXT: DataEncoding: LittleEndian (0x1) -# X32-NEXT: FileVersion: 1 -# X32-NEXT: OS/ABI: SystemV (0x0) -# X32-NEXT: ABIVersion: 0 -# X32-NEXT: Unused: (00 00 00 00 00 00 00) -# X32-NEXT: } -# X32-NEXT: Type: Executable (0x2) -# X32-NEXT: Machine: EM_X86_64 (0x3E) -# X32-NEXT: Version: 1 -# X32-NEXT: Entry: -# X32-NEXT: ProgramHeaderOffset: 0x34 -# X32-NEXT: SectionHeaderOffset: -# X32-NEXT: Flags [ (0x0) -# X32-NEXT: ] -# X32-NEXT: HeaderSize: 52 -# X32-NEXT: ProgramHeaderEntrySize: 32 -# X32-NEXT: ProgramHeaderCount: -# X32-NEXT: SectionHeaderEntrySize: 40 -# X32-NEXT: SectionHeaderCount: -# X32-NEXT: StringTableSectionIndex: -# X32-NEXT: } - -# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %tx86 -# RUN: ld.lld -m elf_i386 %tx86 -o %t2x86 -# RUN: llvm-readobj -file-headers %t2x86 | FileCheck --check-prefix=X86 %s -# RUN: ld.lld %tx86 -o %t3x86 -# RUN: llvm-readobj -file-headers %t3x86 | FileCheck --check-prefix=X86 %s -# RUN: echo 'OUTPUT_FORMAT(elf32-i386)' > %t4x86.script -# RUN: ld.lld %t4x86.script %tx86 -o %t4x86 -# RUN: llvm-readobj -file-headers %t4x86 | FileCheck --check-prefix=X86 %s -# X86: ElfHeader { -# X86-NEXT: Ident { -# X86-NEXT: Magic: (7F 45 4C 46) -# X86-NEXT: Class: 32-bit (0x1) -# X86-NEXT: DataEncoding: LittleEndian (0x1) -# X86-NEXT: FileVersion: 1 -# X86-NEXT: OS/ABI: SystemV (0x0) -# X86-NEXT: ABIVersion: 0 -# X86-NEXT: Unused: (00 00 00 00 00 00 00) -# X86-NEXT: } -# X86-NEXT: Type: Executable (0x2) -# X86-NEXT: Machine: EM_386 (0x3) -# X86-NEXT: Version: 1 -# X86-NEXT: Entry: -# X86-NEXT: ProgramHeaderOffset: 0x34 -# X86-NEXT: SectionHeaderOffset: -# X86-NEXT: Flags [ (0x0) -# X86-NEXT: ] -# X86-NEXT: HeaderSize: 52 -# X86-NEXT: ProgramHeaderEntrySize: 32 -# X86-NEXT: ProgramHeaderCount: -# X86-NEXT: SectionHeaderEntrySize: 40 -# X86-NEXT: SectionHeaderCount: -# X86-NEXT: StringTableSectionIndex: -# X86-NEXT: } - -# RUN: llvm-mc -filetype=obj -triple=i686-unknown-freebsd %s -o %tx86fbsd -# RUN: ld.lld -m elf_i386_fbsd %tx86fbsd -o %t2x86_fbsd -# RUN: llvm-readobj -file-headers %t2x86_fbsd | FileCheck --check-prefix=X86FBSD %s -# RUN: ld.lld %tx86fbsd -o %t3x86fbsd -# RUN: llvm-readobj -file-headers %t3x86fbsd | FileCheck --check-prefix=X86FBSD %s -# X86FBSD: ElfHeader { -# X86FBSD-NEXT: Ident { -# X86FBSD-NEXT: Magic: (7F 45 4C 46) -# X86FBSD-NEXT: Class: 32-bit (0x1) -# X86FBSD-NEXT: DataEncoding: LittleEndian (0x1) -# X86FBSD-NEXT: FileVersion: 1 -# X86FBSD-NEXT: OS/ABI: FreeBSD (0x9) -# X86FBSD-NEXT: ABIVersion: 0 -# X86FBSD-NEXT: Unused: (00 00 00 00 00 00 00) -# X86FBSD-NEXT: } -# X86FBSD-NEXT: Type: Executable (0x2) -# X86FBSD-NEXT: Machine: EM_386 (0x3) -# X86FBSD-NEXT: Version: 1 -# X86FBSD-NEXT: Entry: -# X86FBSD-NEXT: ProgramHeaderOffset: 0x34 -# X86FBSD-NEXT: SectionHeaderOffset: -# X86FBSD-NEXT: Flags [ (0x0) -# X86FBSD-NEXT: ] -# X86FBSD-NEXT: HeaderSize: 52 -# X86FBSD-NEXT: ProgramHeaderEntrySize: 32 -# X86FBSD-NEXT: ProgramHeaderCount: -# X86FBSD-NEXT: SectionHeaderEntrySize: 40 -# X86FBSD-NEXT: SectionHeaderCount: -# X86FBSD-NEXT: StringTableSectionIndex: -# X86FBSD-NEXT: } - -# RUN: llvm-mc -filetype=obj -triple=i586-intel-elfiamcu %s -o %tiamcu -# RUN: ld.lld -m elf_iamcu %tiamcu -o %t2iamcu -# RUN: llvm-readobj -file-headers %t2iamcu | FileCheck --check-prefix=IAMCU %s -# RUN: ld.lld %tiamcu -o %t3iamcu -# RUN: llvm-readobj -file-headers %t3iamcu | FileCheck --check-prefix=IAMCU %s -# RUN: echo 'OUTPUT_FORMAT(elf32-iamcu)' > %t4iamcu.script -# RUN: ld.lld %t4iamcu.script %tiamcu -o %t4iamcu -# RUN: llvm-readobj -file-headers %t4iamcu | FileCheck --check-prefix=IAMCU %s -# IAMCU: ElfHeader { -# IAMCU-NEXT: Ident { -# IAMCU-NEXT: Magic: (7F 45 4C 46) -# IAMCU-NEXT: Class: 32-bit (0x1) -# IAMCU-NEXT: DataEncoding: LittleEndian (0x1) -# IAMCU-NEXT: FileVersion: 1 -# IAMCU-NEXT: OS/ABI: SystemV (0x0) -# IAMCU-NEXT: ABIVersion: 0 -# IAMCU-NEXT: Unused: (00 00 00 00 00 00 00) -# IAMCU-NEXT: } -# IAMCU-NEXT: Type: Executable (0x2) -# IAMCU-NEXT: Machine: EM_IAMCU (0x6) -# IAMCU-NEXT: Version: 1 -# IAMCU-NEXT: Entry: -# IAMCU-NEXT: ProgramHeaderOffset: 0x34 -# IAMCU-NEXT: SectionHeaderOffset: -# IAMCU-NEXT: Flags [ (0x0) -# IAMCU-NEXT: ] -# IAMCU-NEXT: HeaderSize: 52 -# IAMCU-NEXT: ProgramHeaderEntrySize: 32 -# IAMCU-NEXT: ProgramHeaderCount: -# IAMCU-NEXT: SectionHeaderEntrySize: 40 -# IAMCU-NEXT: SectionHeaderCount: -# IAMCU-NEXT: StringTableSectionIndex: -# IAMCU-NEXT: } - -# RUN: llvm-mc -filetype=obj -triple=powerpc64-unknown-linux %s -o %tppc64 -# RUN: ld.lld -m elf64ppc %tppc64 -o %t2ppc64 -# RUN: llvm-readobj -file-headers %t2ppc64 | FileCheck --check-prefix=PPC64 %s -# RUN: ld.lld %tppc64 -o %t3ppc64 -# RUN: llvm-readobj -file-headers %t3ppc64 | FileCheck --check-prefix=PPC64 %s -# PPC64: ElfHeader { -# PPC64-NEXT: Ident { -# PPC64-NEXT: Magic: (7F 45 4C 46) -# PPC64-NEXT: Class: 64-bit (0x2) -# PPC64-NEXT: DataEncoding: BigEndian (0x2) -# PPC64-NEXT: FileVersion: 1 -# PPC64-NEXT: OS/ABI: SystemV (0x0) -# PPC64-NEXT: ABIVersion: 0 -# PPC64-NEXT: Unused: (00 00 00 00 00 00 00) -# PPC64-NEXT: } -# PPC64-NEXT: Type: Executable (0x2) -# PPC64-NEXT: Machine: EM_PPC64 (0x15) -# PPC64-NEXT: Version: 1 -# PPC64-NEXT: Entry: -# PPC64-NEXT: ProgramHeaderOffset: 0x40 -# PPC64-NEXT: SectionHeaderOffset: -# PPC64-NEXT: Flags [ (0x2) -# PPC64-NEXT: 0x2 -# PPC64-NEXT: ] -# PPC64-NEXT: HeaderSize: 64 -# PPC64-NEXT: ProgramHeaderEntrySize: 56 -# PPC64-NEXT: ProgramHeaderCount: -# PPC64-NEXT: SectionHeaderEntrySize: 64 -# PPC64-NEXT: SectionHeaderCount: -# PPC64-NEXT: StringTableSectionIndex: -# PPC64-NEXT: } - -# RUN: llvm-mc -filetype=obj -triple=powerpc64le-unknown-linux %s -o %tppc64le -# RUN: ld.lld -m elf64lppc %tppc64le -o %t2ppc64le -# RUN: llvm-readobj -file-headers %t2ppc64le | FileCheck --check-prefix=PPC64LE %s -# RUN: ld.lld %tppc64le -o %t3ppc64le -# RUN: llvm-readobj -file-headers %t3ppc64le | FileCheck --check-prefix=PPC64LE %s -# PPC64LE: ElfHeader { -# PPC64LE-NEXT: Ident { -# PPC64LE-NEXT: Magic: (7F 45 4C 46) -# PPC64LE-NEXT: Class: 64-bit (0x2) -# PPC64LE-NEXT: DataEncoding: LittleEndian (0x1) -# PPC64LE-NEXT: FileVersion: 1 -# PPC64LE-NEXT: OS/ABI: SystemV (0x0) -# PPC64LE-NEXT: ABIVersion: 0 -# PPC64LE-NEXT: Unused: (00 00 00 00 00 00 00) -# PPC64LE-NEXT: } -# PPC64LE-NEXT: Type: Executable (0x2) -# PPC64LE-NEXT: Machine: EM_PPC64 (0x15) -# PPC64LE-NEXT: Version: 1 -# PPC64LE-NEXT: Entry: -# PPC64LE-NEXT: ProgramHeaderOffset: 0x40 -# PPC64LE-NEXT: SectionHeaderOffset: -# PPC64LE-NEXT: Flags [ (0x2) -# PPC64LE-NEXT: 0x2 -# PPC64LE-NEXT: ] -# PPC64LE-NEXT: HeaderSize: 64 -# PPC64LE-NEXT: ProgramHeaderEntrySize: 56 -# PPC64LE-NEXT: ProgramHeaderCount: -# PPC64LE-NEXT: SectionHeaderEntrySize: 64 -# PPC64LE-NEXT: SectionHeaderCount: -# PPC64LE-NEXT: StringTableSectionIndex: -# PPC64LE-NEXT: } - -# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %tmips -# RUN: ld.lld -m elf32btsmip -e _start %tmips -o %t2mips -# RUN: llvm-readobj -file-headers %t2mips | FileCheck --check-prefix=MIPS %s -# RUN: ld.lld %tmips -e _start -o %t3mips -# RUN: llvm-readobj -file-headers %t3mips | FileCheck --check-prefix=MIPS %s -# MIPS: ElfHeader { -# MIPS-NEXT: Ident { -# MIPS-NEXT: Magic: (7F 45 4C 46) -# MIPS-NEXT: Class: 32-bit (0x1) -# MIPS-NEXT: DataEncoding: BigEndian (0x2) -# MIPS-NEXT: FileVersion: 1 -# MIPS-NEXT: OS/ABI: SystemV (0x0) -# MIPS-NEXT: ABIVersion: 1 -# MIPS-NEXT: Unused: (00 00 00 00 00 00 00) -# MIPS-NEXT: } -# MIPS-NEXT: Type: Executable (0x2) -# MIPS-NEXT: Machine: EM_MIPS (0x8) -# MIPS-NEXT: Version: 1 -# MIPS-NEXT: Entry: -# MIPS-NEXT: ProgramHeaderOffset: 0x34 -# MIPS-NEXT: SectionHeaderOffset: -# MIPS-NEXT: Flags [ -# MIPS-NEXT: EF_MIPS_ABI_O32 -# MIPS-NEXT: EF_MIPS_ARCH_32 -# MIPS-NEXT: EF_MIPS_CPIC -# MIPS-NEXT: ] - -# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux %s -o %tmipsel -# RUN: ld.lld -m elf32ltsmip -e _start %tmipsel -o %t2mipsel -# RUN: llvm-readobj -file-headers %t2mipsel | FileCheck --check-prefix=MIPSEL %s -# RUN: ld.lld -melf32ltsmip -e _start %tmipsel -o %t2mipsel -# RUN: llvm-readobj -file-headers %t2mipsel | FileCheck --check-prefix=MIPSEL %s -# RUN: ld.lld %tmipsel -e _start -o %t3mipsel -# RUN: llvm-readobj -file-headers %t3mipsel | FileCheck --check-prefix=MIPSEL %s -# MIPSEL: ElfHeader { -# MIPSEL-NEXT: Ident { -# MIPSEL-NEXT: Magic: (7F 45 4C 46) -# MIPSEL-NEXT: Class: 32-bit (0x1) -# MIPSEL-NEXT: DataEncoding: LittleEndian (0x1) -# MIPSEL-NEXT: FileVersion: 1 -# MIPSEL-NEXT: OS/ABI: SystemV (0x0) -# MIPSEL-NEXT: ABIVersion: 1 -# MIPSEL-NEXT: Unused: (00 00 00 00 00 00 00) -# MIPSEL-NEXT: } -# MIPSEL-NEXT: Type: Executable (0x2) -# MIPSEL-NEXT: Machine: EM_MIPS (0x8) -# MIPSEL-NEXT: Version: 1 -# MIPSEL-NEXT: Entry: -# MIPSEL-NEXT: ProgramHeaderOffset: 0x34 -# MIPSEL-NEXT: SectionHeaderOffset: -# MIPSEL-NEXT: Flags [ -# MIPSEL-NEXT: EF_MIPS_ABI_O32 -# MIPSEL-NEXT: EF_MIPS_ARCH_32 -# MIPSEL-NEXT: EF_MIPS_CPIC -# MIPSEL-NEXT: ] - -# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux -position-independent \ -# RUN: %s -o %tmips64 -# RUN: ld.lld -m elf64btsmip -e _start %tmips64 -o %t2mips64 -# RUN: llvm-readobj -file-headers %t2mips64 | FileCheck --check-prefix=MIPS64 %s -# RUN: ld.lld %tmips64 -e _start -o %t3mips64 -# RUN: llvm-readobj -file-headers %t3mips64 | FileCheck --check-prefix=MIPS64 %s -# MIPS64: ElfHeader { -# MIPS64-NEXT: Ident { -# MIPS64-NEXT: Magic: (7F 45 4C 46) -# MIPS64-NEXT: Class: 64-bit (0x2) -# MIPS64-NEXT: DataEncoding: BigEndian (0x2) -# MIPS64-NEXT: FileVersion: 1 -# MIPS64-NEXT: OS/ABI: SystemV (0x0) -# MIPS64-NEXT: ABIVersion: 0 -# MIPS64-NEXT: Unused: (00 00 00 00 00 00 00) -# MIPS64-NEXT: } -# MIPS64-NEXT: Type: Executable (0x2) -# MIPS64-NEXT: Machine: EM_MIPS (0x8) -# MIPS64-NEXT: Version: 1 -# MIPS64-NEXT: Entry: -# MIPS64-NEXT: ProgramHeaderOffset: 0x40 -# MIPS64-NEXT: SectionHeaderOffset: -# MIPS64-NEXT: Flags [ -# MIPS64-NEXT: EF_MIPS_ARCH_64 -# MIPS64-NEXT: EF_MIPS_CPIC -# MIPS64-NEXT: EF_MIPS_PIC -# MIPS64-NEXT: ] - -# RUN: llvm-mc -filetype=obj -triple=mips64el-unknown-linux \ -# RUN: -position-independent %s -o %tmips64el -# RUN: ld.lld -m elf64ltsmip -e _start %tmips64el -o %t2mips64el -# RUN: llvm-readobj -file-headers %t2mips64el | FileCheck --check-prefix=MIPS64EL %s -# RUN: ld.lld %tmips64el -e _start -o %t3mips64el -# RUN: llvm-readobj -file-headers %t3mips64el | FileCheck --check-prefix=MIPS64EL %s -# MIPS64EL: ElfHeader { -# MIPS64EL-NEXT: Ident { -# MIPS64EL-NEXT: Magic: (7F 45 4C 46) -# MIPS64EL-NEXT: Class: 64-bit (0x2) -# MIPS64EL-NEXT: DataEncoding: LittleEndian (0x1) -# MIPS64EL-NEXT: FileVersion: 1 -# MIPS64EL-NEXT: OS/ABI: SystemV (0x0) -# MIPS64EL-NEXT: ABIVersion: 0 -# MIPS64EL-NEXT: Unused: (00 00 00 00 00 00 00) -# MIPS64EL-NEXT: } -# MIPS64EL-NEXT: Type: Executable (0x2) -# MIPS64EL-NEXT: Machine: EM_MIPS (0x8) -# MIPS64EL-NEXT: Version: 1 -# MIPS64EL-NEXT: Entry: -# MIPS64EL-NEXT: ProgramHeaderOffset: 0x40 -# MIPS64EL-NEXT: SectionHeaderOffset: -# MIPS64EL-NEXT: Flags [ -# MIPS64EL-NEXT: EF_MIPS_ARCH_64 -# MIPS64EL-NEXT: EF_MIPS_CPIC -# MIPS64EL-NEXT: EF_MIPS_PIC -# MIPS64EL-NEXT: ] - -# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %taarch64 -# RUN: ld.lld -m aarch64linux %taarch64 -o %t2aarch64 -# RUN: llvm-readobj -file-headers %t2aarch64 | FileCheck --check-prefix=AARCH64 %s -# RUN: ld.lld -m aarch64elf %taarch64 -o %t3aarch64 -# RUN: llvm-readobj -file-headers %t3aarch64 | FileCheck --check-prefix=AARCH64 %s -# RUN: ld.lld -m aarch64_elf64_le_vec %taarch64 -o %t4aarch64 -# RUN: llvm-readobj -file-headers %t4aarch64 | FileCheck --check-prefix=AARCH64 %s -# RUN: ld.lld %taarch64 -o %t5aarch64 -# RUN: llvm-readobj -file-headers %t5aarch64 | FileCheck --check-prefix=AARCH64 %s -# RUN: echo 'OUTPUT_FORMAT(elf64-littleaarch64)' > %t4aarch64.script -# RUN: ld.lld %t4aarch64.script %taarch64 -o %t4aarch64 -# RUN: llvm-readobj -file-headers %t4aarch64 | FileCheck --check-prefix=AARCH64 %s -# AARCH64: ElfHeader { -# AARCH64-NEXT: Ident { -# AARCH64-NEXT: Magic: (7F 45 4C 46) -# AARCH64-NEXT: Class: 64-bit (0x2) -# AARCH64-NEXT: DataEncoding: LittleEndian (0x1) -# AARCH64-NEXT: FileVersion: 1 -# AARCH64-NEXT: OS/ABI: SystemV (0x0) -# AARCH64-NEXT: ABIVersion: 0 -# AARCH64-NEXT: Unused: (00 00 00 00 00 00 00) -# AARCH64-NEXT: } -# AARCH64-NEXT: Type: Executable (0x2) -# AARCH64-NEXT: Machine: EM_AARCH64 (0xB7) -# AARCH64-NEXT: Version: 1 -# AARCH64-NEXT: Entry: -# AARCH64-NEXT: ProgramHeaderOffset: 0x40 -# AARCH64-NEXT: SectionHeaderOffset: -# AARCH64-NEXT: Flags [ (0x0) -# AARCH64-NEXT: ] - -# RUN: llvm-mc -filetype=obj -triple=armv7-unknown-linux %s -o %tarm -# RUN: ld.lld -m armelf %tarm -o %t2arm -# RUN: llvm-readobj -file-headers %t2arm | FileCheck --check-prefix=ARM %s -# RUN: ld.lld -m armelf_linux_eabi %tarm -o %t3arm -# RUN: llvm-readobj -file-headers %t3arm | FileCheck --check-prefix=ARM %s -# RUN: ld.lld %tarm -o %t4arm -# RUN: llvm-readobj -file-headers %t4arm | FileCheck --check-prefix=ARM %s -# RUN: echo 'OUTPUT_FORMAT(elf32-littlearm)' > %t5arm.script -# RUN: ld.lld %t5arm.script %tarm -o %t5arm -# RUN: llvm-readobj -file-headers %t5arm | FileCheck --check-prefix=ARM %s -# ARM: ElfHeader { -# ARM-NEXT: Ident { -# ARM-NEXT: Magic: (7F 45 4C 46) -# ARM-NEXT: Class: 32-bit (0x1) -# ARM-NEXT: DataEncoding: LittleEndian (0x1) -# ARM-NEXT: FileVersion: 1 -# ARM-NEXT: OS/ABI: SystemV (0x0) -# ARM-NEXT: ABIVersion: 0 -# ARM-NEXT: Unused: (00 00 00 00 00 00 00) -# ARM-NEXT: } -# ARM-NEXT: Type: Executable (0x2) -# ARM-NEXT: Machine: EM_ARM (0x28) -# ARM-NEXT: Version: 1 - -.globl _start -_start: