blob: 2b63e48866cf8b043a258c72143de953461cf6f8 [file] [log] [blame]
Jordan Rupprechtcf676332018-08-17 18:51:11 +00001# RUN: echo abcd > %t.txt
2
3# RUN: llvm-objcopy -I binary -B aarch64 %t.txt %t.aarch64.o
Jordan Rupprecht2b329022019-04-18 14:22:37 +00004# RUN: llvm-readobj --file-headers %t.aarch64.o | FileCheck %s --check-prefixes=CHECK,LE,AARCH64,64
Jordan Rupprechtcf676332018-08-17 18:51:11 +00005
6# RUN: llvm-objcopy -I binary -B arm %t.txt %t.arm.o
Jordan Rupprecht2b329022019-04-18 14:22:37 +00007# RUN: llvm-readobj --file-headers %t.arm.o | FileCheck %s --check-prefixes=CHECK,LE,ARM,32
Jordan Rupprechtcf676332018-08-17 18:51:11 +00008
9# RUN: llvm-objcopy -I binary -B i386 %t.txt %t.i386.o
Jordan Rupprecht2b329022019-04-18 14:22:37 +000010# RUN: llvm-readobj --file-headers %t.i386.o | FileCheck %s --check-prefixes=CHECK,LE,I386,32
Jordan Rupprechtcf676332018-08-17 18:51:11 +000011
Jordan Rupprechtbb179a12018-08-17 19:18:20 +000012# RUN: llvm-objcopy -I binary -B i386:x86-64 %t.txt %t.i386_x86-64.o
Jordan Rupprecht2b329022019-04-18 14:22:37 +000013# RUN: llvm-readobj --file-headers %t.i386_x86-64.o | FileCheck %s --check-prefixes=CHECK,LE,X86-64,64
14
15# RUN: llvm-objcopy -I binary -B mips %t.txt %t.mips.o
16# RUN: llvm-readobj --file-headers %t.mips.o | FileCheck %s --check-prefixes=CHECK,BE,MIPS,32
Jordan Rupprechtcf676332018-08-17 18:51:11 +000017
Jordan Rupprechtbb179a12018-08-17 19:18:20 +000018# RUN: llvm-objcopy -I binary -B powerpc:common64 %t.txt %t.powerpc_common64.o
Jordan Rupprecht2b329022019-04-18 14:22:37 +000019# RUN: llvm-readobj --file-headers %t.powerpc_common64.o | FileCheck %s --check-prefixes=CHECK,LE,PPC,64
Jordan Rupprechtcf676332018-08-17 18:51:11 +000020
Jordan Rupprecht96bbb1d2019-04-30 15:21:36 +000021# RUN: llvm-objcopy -I binary -B riscv:rv32 %t.txt %t.rv32.o
22# RUN: llvm-readobj --file-headers %t.rv32.o | FileCheck %s --check-prefixes=CHECK,LE,RISCV32,32
23
24# RUN: llvm-objcopy -I binary -B riscv:rv64 %t.txt %t.rv64.o
25# RUN: llvm-readobj --file-headers %t.rv64.o | FileCheck %s --check-prefixes=CHECK,LE,RISCV64,64
26
Jordan Rupprechtcf676332018-08-17 18:51:11 +000027# RUN: llvm-objcopy -I binary -B sparc %t.txt %t.sparc.o
Seiya Nutab1027a42019-06-13 23:24:12 +000028# RUN: llvm-readobj --file-headers %t.sparc.o | FileCheck %s --check-prefixes=CHECK,BE,SPARC,32
29
30# RUN: llvm-objcopy -I binary -B sparcel %t.txt %t.sparcel.o
31# RUN: llvm-readobj --file-headers %t.sparcel.o | FileCheck %s --check-prefixes=CHECK,LE,SPARCEL,32
Jordan Rupprechtcf676332018-08-17 18:51:11 +000032
33# RUN: llvm-objcopy -I binary -B x86-64 %t.txt %t.x86-64.o
Jordan Rupprecht2b329022019-04-18 14:22:37 +000034# RUN: llvm-readobj --file-headers %t.x86-64.o | FileCheck %s --check-prefixes=CHECK,LE,X86-64,64
Jordan Rupprechtcf676332018-08-17 18:51:11 +000035
36# CHECK: Format:
Jordan Rupprecht96bbb1d2019-04-30 15:21:36 +000037# 32-SAME: ELF32-
38# 64-SAME: ELF64-
39# AARCH64-SAME: aarch64-little
40# ARM-SAME: arm-little
41# I386-SAME: i386
42# MIPS-SAME: mips{{$}}
43# RISCV32-SAME: riscv{{$}}
44# RISCV64-SAME: riscv{{$}}
45# PPC-SAME: ppc64
46# SPARC-SAME: sparc
Seiya Nutab1027a42019-06-13 23:24:12 +000047# SPARCEL-SAME: sparc
Jordan Rupprecht96bbb1d2019-04-30 15:21:36 +000048# X86-64-SAME: x86-64
Jordan Rupprechtcf676332018-08-17 18:51:11 +000049
50# AARCH64-NEXT: Arch: aarch64
51# ARM-NEXT: Arch: arm
52# I386-NEXT: Arch: i386
Jordan Rupprecht2b329022019-04-18 14:22:37 +000053# MIPS-NEXT: Arch: mips{{$$}}
Jordan Rupprechtcf676332018-08-17 18:51:11 +000054# PPC-NEXT: Arch: powerpc64le
Jordan Rupprecht96bbb1d2019-04-30 15:21:36 +000055# RISCV32-NEXT: Arch: riscv32
56# RISCV64-NEXT: Arch: riscv64
Seiya Nutab1027a42019-06-13 23:24:12 +000057# SPARC-NEXT: Arch: sparc{{$}}
58# SPARCEL-NEXT: Arch: sparcel
Jordan Rupprechtcf676332018-08-17 18:51:11 +000059# X86-64-NEXT: Arch: x86_64
60
61# 32-NEXT: AddressSize: 32bit
62# 64-NEXT: AddressSize: 64bit
63
64# CHECK: ElfHeader {
65# CHECK-NEXT: Ident {
66# CHECK-NEXT: Magic: (7F 45 4C 46)
67# 32-NEXT: Class: 32-bit (0x1)
68# 64-NEXT: Class: 64-bit (0x2)
Jordan Rupprecht2b329022019-04-18 14:22:37 +000069# LE-NEXT: DataEncoding: LittleEndian (0x1)
70# BE-NEXT: DataEncoding: BigEndian (0x2)
Jordan Rupprechtcf676332018-08-17 18:51:11 +000071# CHECK-NEXT: FileVersion: 1
72# CHECK-NEXT: OS/ABI: SystemV (0x0)
73# CHECK-NEXT: ABIVersion: 0
74# CHECK-NEXT: Unused: (00 00 00 00 00 00 00)
75# CHECK-NEXT: }
76# CHECK-NEXT: Type: Relocatable (0x1)
77# AARCH64-NEXT: Machine: EM_AARCH64 (0xB7)
78# ARM-NEXT: Machine: EM_ARM (0x28)
79# I386-NEXT: Machine: EM_386 (0x3)
Jordan Rupprecht2b329022019-04-18 14:22:37 +000080# MIPS-NEXT: Machine: EM_MIPS (0x8)
Jordan Rupprechtcf676332018-08-17 18:51:11 +000081# PPC-NEXT: Machine: EM_PPC64 (0x15)
Jordan Rupprecht96bbb1d2019-04-30 15:21:36 +000082# RISCV32-NEXT: Machine: EM_RISCV (0xF3)
83# RISCV64-NEXT: Machine: EM_RISCV (0xF3)
Jordan Rupprechtcf676332018-08-17 18:51:11 +000084# SPARC-NEXT: Machine: EM_SPARC (0x2)
Seiya Nutab1027a42019-06-13 23:24:12 +000085# SPARCEL-NEXT: Machine: EM_SPARC (0x2)
Jordan Rupprechtcf676332018-08-17 18:51:11 +000086# X86-64-NEXT: Machine: EM_X86_64 (0x3E)
87# CHECK-NEXT: Version: 1
88# CHECK-NEXT: Entry: 0x0
89# CHECK-NEXT: ProgramHeaderOffset:
90# CHECK-NEXT: SectionHeaderOffset:
91# CHECK-NEXT: Flags [ (0x0)
92# CHECK-NEXT: ]
93# 32-NEXT: HeaderSize: 52
94# 64-NEXT: HeaderSize: 64
Julie Hockett468722e2018-09-12 17:56:31 +000095# 32-NEXT: ProgramHeaderEntrySize: 0
96# 64-NEXT: ProgramHeaderEntrySize: 0
Jordan Rupprechtcf676332018-08-17 18:51:11 +000097# CHECK-NEXT: ProgramHeaderCount: 0
98# 32-NEXT: SectionHeaderEntrySize: 40
99# 64-NEXT: SectionHeaderEntrySize: 64
100# CHECK-NEXT: SectionHeaderCount: 4
101# CHECK-NEXT: StringTableSectionIndex:
102# CHECK-NEXT: }