1# REQUIRES: x86 2# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-freebsd %s -o %tx64 3# RUN: ld.lld -m elf_amd64_fbsd %tx64 -o %t2x64 4# RUN: llvm-readobj --file-headers %t2x64 | FileCheck --check-prefix=AMD64 %s 5# RUN: ld.lld %tx64 -o %t3x64 6# RUN: llvm-readobj --file-headers %t3x64 | FileCheck --check-prefix=AMD64 %s 7# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.sysv 8# RUN: ld.lld -m elf_amd64_fbsd %t.sysv -o %t.freebsd 9# RUN: llvm-readobj --file-headers %t.freebsd | FileCheck --check-prefix=AMD64 %s 10# RUN: echo 'OUTPUT_FORMAT(elf64-x86-64-freebsd)' > %t4x64.script 11# RUN: ld.lld %t4x64.script %tx64 -o %t4x64 12# RUN: llvm-readobj --file-headers %t4x64 | FileCheck --check-prefix=AMD64 %s 13# AMD64: ElfHeader { 14# AMD64-NEXT: Ident { 15# AMD64-NEXT: Magic: (7F 45 4C 46) 16# AMD64-NEXT: Class: 64-bit (0x2) 17# AMD64-NEXT: DataEncoding: LittleEndian (0x1) 18# AMD64-NEXT: FileVersion: 1 19# AMD64-NEXT: OS/ABI: FreeBSD (0x9) 20# AMD64-NEXT: ABIVersion: 0 21# AMD64-NEXT: Unused: (00 00 00 00 00 00 00) 22# AMD64-NEXT: } 23# AMD64-NEXT: Type: Executable (0x2) 24# AMD64-NEXT: Machine: EM_X86_64 (0x3E) 25# AMD64-NEXT: Version: 1 26# AMD64-NEXT: Entry: 27# AMD64-NEXT: ProgramHeaderOffset: 0x40 28# AMD64-NEXT: SectionHeaderOffset: 29# AMD64-NEXT: Flags [ (0x0) 30# AMD64-NEXT: ] 31# AMD64-NEXT: HeaderSize: 64 32# AMD64-NEXT: ProgramHeaderEntrySize: 56 33# AMD64-NEXT: ProgramHeaderCount: 34# AMD64-NEXT: SectionHeaderEntrySize: 64 35# AMD64-NEXT: SectionHeaderCount: 36# AMD64-NEXT: StringTableSectionIndex: 37# AMD64-NEXT: } 38 39# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %tx64 40# RUN: ld.lld -m elf_x86_64 %tx64 -o %t2x64 41# RUN: llvm-readobj --file-headers %t2x64 | FileCheck --check-prefix=X86-64 %s 42# RUN: ld.lld %tx64 -o %t3x64 43# RUN: llvm-readobj --file-headers %t3x64 | FileCheck --check-prefix=X86-64 %s 44# RUN: echo 'OUTPUT_FORMAT(elf64-x86-64)' > %t4x64.script 45# RUN: ld.lld %t4x64.script %tx64 -o %t4x64 46# RUN: ld.lld %tx64 -o %t4x64 %t4x64.script 47# RUN: llvm-readobj --file-headers %t4x64 | FileCheck --check-prefix=X86-64 %s 48# X86-64: ElfHeader { 49# X86-64-NEXT: Ident { 50# X86-64-NEXT: Magic: (7F 45 4C 46) 51# X86-64-NEXT: Class: 64-bit (0x2) 52# X86-64-NEXT: DataEncoding: LittleEndian (0x1) 53# X86-64-NEXT: FileVersion: 1 54# X86-64-NEXT: OS/ABI: SystemV (0x0) 55# X86-64-NEXT: ABIVersion: 0 56# X86-64-NEXT: Unused: (00 00 00 00 00 00 00) 57# X86-64-NEXT: } 58# X86-64-NEXT: Type: Executable (0x2) 59# X86-64-NEXT: Machine: EM_X86_64 (0x3E) 60# X86-64-NEXT: Version: 1 61# X86-64-NEXT: Entry: 62# X86-64-NEXT: ProgramHeaderOffset: 0x40 63# X86-64-NEXT: SectionHeaderOffset: 64# X86-64-NEXT: Flags [ (0x0) 65# X86-64-NEXT: ] 66# X86-64-NEXT: HeaderSize: 64 67# X86-64-NEXT: ProgramHeaderEntrySize: 56 68# X86-64-NEXT: ProgramHeaderCount: 69# X86-64-NEXT: SectionHeaderEntrySize: 64 70# X86-64-NEXT: SectionHeaderCount: 71# X86-64-NEXT: StringTableSectionIndex: 72# X86-64-NEXT: } 73 74# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux-gnux32 %s -o %tx32 75# RUN: ld.lld -m elf32_x86_64 %tx32 -o %t2x32 76# RUN: llvm-readobj --file-headers %t2x32 | FileCheck --check-prefix=X32 %s 77# RUN: ld.lld %tx32 -o %t3x32 78# RUN: llvm-readobj --file-headers %t3x32 | FileCheck --check-prefix=X32 %s 79# RUN: echo 'OUTPUT_FORMAT(elf32-x86-64)' > %t4x32.script 80# RUN: ld.lld %t4x32.script %tx32 -o %t4x32 81# RUN: llvm-readobj --file-headers %t4x32 | FileCheck --check-prefix=X32 %s 82# X32: ElfHeader { 83# X32-NEXT: Ident { 84# X32-NEXT: Magic: (7F 45 4C 46) 85# X32-NEXT: Class: 32-bit (0x1) 86# X32-NEXT: DataEncoding: LittleEndian (0x1) 87# X32-NEXT: FileVersion: 1 88# X32-NEXT: OS/ABI: SystemV (0x0) 89# X32-NEXT: ABIVersion: 0 90# X32-NEXT: Unused: (00 00 00 00 00 00 00) 91# X32-NEXT: } 92# X32-NEXT: Type: Executable (0x2) 93# X32-NEXT: Machine: EM_X86_64 (0x3E) 94# X32-NEXT: Version: 1 95# X32-NEXT: Entry: 96# X32-NEXT: ProgramHeaderOffset: 0x34 97# X32-NEXT: SectionHeaderOffset: 98# X32-NEXT: Flags [ (0x0) 99# X32-NEXT: ] 100# X32-NEXT: HeaderSize: 52 101# X32-NEXT: ProgramHeaderEntrySize: 32 102# X32-NEXT: ProgramHeaderCount: 103# X32-NEXT: SectionHeaderEntrySize: 40 104# X32-NEXT: SectionHeaderCount: 105# X32-NEXT: StringTableSectionIndex: 106# X32-NEXT: } 107 108# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %tx86 109# RUN: ld.lld -m elf_i386 %tx86 -o %t2x86 110# RUN: llvm-readobj --file-headers %t2x86 | FileCheck --check-prefix=X86 %s 111# RUN: ld.lld %tx86 -o %t3x86 112# RUN: llvm-readobj --file-headers %t3x86 | FileCheck --check-prefix=X86 %s 113# RUN: echo 'OUTPUT_FORMAT(elf32-i386)' > %t4x86.script 114# RUN: ld.lld %t4x86.script %tx86 -o %t4x86 115# RUN: llvm-readobj --file-headers %t4x86 | FileCheck --check-prefix=X86 %s 116# X86: ElfHeader { 117# X86-NEXT: Ident { 118# X86-NEXT: Magic: (7F 45 4C 46) 119# X86-NEXT: Class: 32-bit (0x1) 120# X86-NEXT: DataEncoding: LittleEndian (0x1) 121# X86-NEXT: FileVersion: 1 122# X86-NEXT: OS/ABI: SystemV (0x0) 123# X86-NEXT: ABIVersion: 0 124# X86-NEXT: Unused: (00 00 00 00 00 00 00) 125# X86-NEXT: } 126# X86-NEXT: Type: Executable (0x2) 127# X86-NEXT: Machine: EM_386 (0x3) 128# X86-NEXT: Version: 1 129# X86-NEXT: Entry: 130# X86-NEXT: ProgramHeaderOffset: 0x34 131# X86-NEXT: SectionHeaderOffset: 132# X86-NEXT: Flags [ (0x0) 133# X86-NEXT: ] 134# X86-NEXT: HeaderSize: 52 135# X86-NEXT: ProgramHeaderEntrySize: 32 136# X86-NEXT: ProgramHeaderCount: 137# X86-NEXT: SectionHeaderEntrySize: 40 138# X86-NEXT: SectionHeaderCount: 139# X86-NEXT: StringTableSectionIndex: 140# X86-NEXT: } 141 142# RUN: llvm-mc -filetype=obj -triple=i686-unknown-freebsd %s -o %tx86fbsd 143# RUN: ld.lld -m elf_i386_fbsd %tx86fbsd -o %t2x86fbsd 144# RUN: llvm-readobj --file-headers %t2x86fbsd | FileCheck --check-prefix=X86FBSD %s 145# RUN: ld.lld %tx86fbsd -o %t3x86fbsd 146# RUN: llvm-readobj --file-headers %t3x86fbsd | FileCheck --check-prefix=X86FBSD %s 147# RUN: echo 'OUTPUT_FORMAT(elf32-i386-freebsd)' > %t4x86fbsd.script 148# RUN: ld.lld %t4x86fbsd.script %tx86fbsd -o %t4x86fbsd 149# RUN: llvm-readobj --file-headers %t4x86fbsd | FileCheck --check-prefix=X86FBSD %s 150# X86FBSD: ElfHeader { 151# X86FBSD-NEXT: Ident { 152# X86FBSD-NEXT: Magic: (7F 45 4C 46) 153# X86FBSD-NEXT: Class: 32-bit (0x1) 154# X86FBSD-NEXT: DataEncoding: LittleEndian (0x1) 155# X86FBSD-NEXT: FileVersion: 1 156# X86FBSD-NEXT: OS/ABI: FreeBSD (0x9) 157# X86FBSD-NEXT: ABIVersion: 0 158# X86FBSD-NEXT: Unused: (00 00 00 00 00 00 00) 159# X86FBSD-NEXT: } 160# X86FBSD-NEXT: Type: Executable (0x2) 161# X86FBSD-NEXT: Machine: EM_386 (0x3) 162# X86FBSD-NEXT: Version: 1 163# X86FBSD-NEXT: Entry: 164# X86FBSD-NEXT: ProgramHeaderOffset: 0x34 165# X86FBSD-NEXT: SectionHeaderOffset: 166# X86FBSD-NEXT: Flags [ (0x0) 167# X86FBSD-NEXT: ] 168# X86FBSD-NEXT: HeaderSize: 52 169# X86FBSD-NEXT: ProgramHeaderEntrySize: 32 170# X86FBSD-NEXT: ProgramHeaderCount: 171# X86FBSD-NEXT: SectionHeaderEntrySize: 40 172# X86FBSD-NEXT: SectionHeaderCount: 173# X86FBSD-NEXT: StringTableSectionIndex: 174# X86FBSD-NEXT: } 175 176# RUN: llvm-mc -filetype=obj -triple=i586-intel-elfiamcu %s -o %tiamcu 177# RUN: ld.lld -m elf_iamcu %tiamcu -o %t2iamcu 178# RUN: llvm-readobj --file-headers %t2iamcu | FileCheck --check-prefix=IAMCU %s 179# RUN: ld.lld %tiamcu -o %t3iamcu 180# RUN: llvm-readobj --file-headers %t3iamcu | FileCheck --check-prefix=IAMCU %s 181# RUN: echo 'OUTPUT_FORMAT(elf32-iamcu)' > %t4iamcu.script 182# RUN: ld.lld %t4iamcu.script %tiamcu -o %t4iamcu 183# RUN: llvm-readobj --file-headers %t4iamcu | FileCheck --check-prefix=IAMCU %s 184# IAMCU: ElfHeader { 185# IAMCU-NEXT: Ident { 186# IAMCU-NEXT: Magic: (7F 45 4C 46) 187# IAMCU-NEXT: Class: 32-bit (0x1) 188# IAMCU-NEXT: DataEncoding: LittleEndian (0x1) 189# IAMCU-NEXT: FileVersion: 1 190# IAMCU-NEXT: OS/ABI: SystemV (0x0) 191# IAMCU-NEXT: ABIVersion: 0 192# IAMCU-NEXT: Unused: (00 00 00 00 00 00 00) 193# IAMCU-NEXT: } 194# IAMCU-NEXT: Type: Executable (0x2) 195# IAMCU-NEXT: Machine: EM_IAMCU (0x6) 196# IAMCU-NEXT: Version: 1 197# IAMCU-NEXT: Entry: 198# IAMCU-NEXT: ProgramHeaderOffset: 0x34 199# IAMCU-NEXT: SectionHeaderOffset: 200# IAMCU-NEXT: Flags [ (0x0) 201# IAMCU-NEXT: ] 202# IAMCU-NEXT: HeaderSize: 52 203# IAMCU-NEXT: ProgramHeaderEntrySize: 32 204# IAMCU-NEXT: ProgramHeaderCount: 205# IAMCU-NEXT: SectionHeaderEntrySize: 40 206# IAMCU-NEXT: SectionHeaderCount: 207# IAMCU-NEXT: StringTableSectionIndex: 208# IAMCU-NEXT: } 209 210.globl _start 211_start: 212