blob: 0273b640bd127f39cd490c87bab230d897ca375a [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
4# RUN: llvm-readobj -file-headers %t.aarch64.o | FileCheck %s --check-prefixes=CHECK,AARCH64,64
5
6# RUN: llvm-objcopy -I binary -B arm %t.txt %t.arm.o
7# RUN: llvm-readobj -file-headers %t.arm.o | FileCheck %s --check-prefixes=CHECK,ARM,32
8
9# RUN: llvm-objcopy -I binary -B i386 %t.txt %t.i386.o
10# RUN: llvm-readobj -file-headers %t.i386.o | FileCheck %s --check-prefixes=CHECK,I386,32
11
12# RUN: llvm-objcopy -I binary -B i386:x86-64 %t.txt %t.i386:x86-64.o
13# RUN: llvm-readobj -file-headers %t.i386:x86-64.o | FileCheck %s --check-prefixes=CHECK,X86-64,64
14
15# RUN: llvm-objcopy -I binary -B powerpc:common64 %t.txt %t.powerpc:common64.o
16# RUN: llvm-readobj -file-headers %t.powerpc:common64.o | FileCheck %s --check-prefixes=CHECK,PPC,64
17
18# RUN: llvm-objcopy -I binary -B sparc %t.txt %t.sparc.o
19# RUN: llvm-readobj -file-headers %t.sparc.o | FileCheck %s --check-prefixes=CHECK,SPARC,32
20
21# RUN: llvm-objcopy -I binary -B x86-64 %t.txt %t.x86-64.o
22# RUN: llvm-readobj -file-headers %t.x86-64.o | FileCheck %s --check-prefixes=CHECK,X86-64,64
23
24# CHECK: Format:
25# AARCH64-SAME: ELF64-aarch64-little
26# ARM-SAME: ELF32-arm-little
27# I386-SAME: ELF32-i386
28# PPC-SAME: ELF64-ppc64
29# SPARC-SAME: ELF32-sparc
30# X86-64-SAME: ELF64-x86-64
31
32# AARCH64-NEXT: Arch: aarch64
33# ARM-NEXT: Arch: arm
34# I386-NEXT: Arch: i386
35# PPC-NEXT: Arch: powerpc64le
36# SPARC-NEXT: Arch: sparcel
37# X86-64-NEXT: Arch: x86_64
38
39# 32-NEXT: AddressSize: 32bit
40# 64-NEXT: AddressSize: 64bit
41
42# CHECK: ElfHeader {
43# CHECK-NEXT: Ident {
44# CHECK-NEXT: Magic: (7F 45 4C 46)
45# 32-NEXT: Class: 32-bit (0x1)
46# 64-NEXT: Class: 64-bit (0x2)
47# CHECK-NEXT: DataEncoding: LittleEndian (0x1)
48# CHECK-NEXT: FileVersion: 1
49# CHECK-NEXT: OS/ABI: SystemV (0x0)
50# CHECK-NEXT: ABIVersion: 0
51# CHECK-NEXT: Unused: (00 00 00 00 00 00 00)
52# CHECK-NEXT: }
53# CHECK-NEXT: Type: Relocatable (0x1)
54# AARCH64-NEXT: Machine: EM_AARCH64 (0xB7)
55# ARM-NEXT: Machine: EM_ARM (0x28)
56# I386-NEXT: Machine: EM_386 (0x3)
57# PPC-NEXT: Machine: EM_PPC64 (0x15)
58# SPARC-NEXT: Machine: EM_SPARC (0x2)
59# X86-64-NEXT: Machine: EM_X86_64 (0x3E)
60# CHECK-NEXT: Version: 1
61# CHECK-NEXT: Entry: 0x0
62# CHECK-NEXT: ProgramHeaderOffset:
63# CHECK-NEXT: SectionHeaderOffset:
64# CHECK-NEXT: Flags [ (0x0)
65# CHECK-NEXT: ]
66# 32-NEXT: HeaderSize: 52
67# 64-NEXT: HeaderSize: 64
68# 32-NEXT: ProgramHeaderEntrySize: 32
69# 64-NEXT: ProgramHeaderEntrySize: 56
70# CHECK-NEXT: ProgramHeaderCount: 0
71# 32-NEXT: SectionHeaderEntrySize: 40
72# 64-NEXT: SectionHeaderEntrySize: 64
73# CHECK-NEXT: SectionHeaderCount: 4
74# CHECK-NEXT: StringTableSectionIndex:
75# CHECK-NEXT: }