llvm.org GIT mirror llvm / 894e54f test / tools / llvm-objcopy / ELF / binary-input-arch.test
894e54f

Tree @894e54f (Download .tar.gz)

binary-input-arch.test @894e54f

cd514b6
 
 
3de573b
cd514b6
 
3de573b
cd514b6
 
3de573b
cd514b6
30a2cc0
3de573b
 
 
 
cd514b6
30a2cc0
3de573b
cd514b6
b1f70e7
 
 
 
 
 
cd514b6
bfbea49
 
 
 
cd514b6
 
3de573b
cd514b6
 
b1f70e7
 
 
 
 
 
 
 
 
 
bfbea49
b1f70e7
cd514b6
 
 
 
3de573b
cd514b6
b1f70e7
 
bfbea49
 
cd514b6
 
 
 
 
 
 
 
 
 
3de573b
 
cd514b6
 
 
 
 
 
 
 
 
3de573b
cd514b6
b1f70e7
 
cd514b6
bfbea49
cd514b6
 
 
 
 
 
 
 
 
e2b125c
 
cd514b6
 
 
 
 
 
# RUN: echo abcd > %t.txt

# RUN: llvm-objcopy -I binary -B aarch64 %t.txt %t.aarch64.o
# RUN: llvm-readobj --file-headers %t.aarch64.o | FileCheck %s --check-prefixes=CHECK,LE,AARCH64,64

# RUN: llvm-objcopy -I binary -B arm %t.txt %t.arm.o
# RUN: llvm-readobj --file-headers %t.arm.o | FileCheck %s --check-prefixes=CHECK,LE,ARM,32

# RUN: llvm-objcopy -I binary -B i386 %t.txt %t.i386.o
# RUN: llvm-readobj --file-headers %t.i386.o | FileCheck %s --check-prefixes=CHECK,LE,I386,32

# RUN: llvm-objcopy -I binary -B i386:x86-64 %t.txt %t.i386_x86-64.o
# RUN: llvm-readobj --file-headers %t.i386_x86-64.o | FileCheck %s --check-prefixes=CHECK,LE,X86-64,64

# RUN: llvm-objcopy -I binary -B mips %t.txt %t.mips.o
# RUN: llvm-readobj --file-headers %t.mips.o | FileCheck %s --check-prefixes=CHECK,BE,MIPS,32

# RUN: llvm-objcopy -I binary -B powerpc:common64 %t.txt %t.powerpc_common64.o
# RUN: llvm-readobj --file-headers %t.powerpc_common64.o | FileCheck %s --check-prefixes=CHECK,LE,PPC,64

# RUN: llvm-objcopy -I binary -B riscv:rv32 %t.txt %t.rv32.o
# RUN: llvm-readobj --file-headers %t.rv32.o | FileCheck %s --check-prefixes=CHECK,LE,RISCV32,32

# RUN: llvm-objcopy -I binary -B riscv:rv64 %t.txt %t.rv64.o
# RUN: llvm-readobj --file-headers %t.rv64.o | FileCheck %s --check-prefixes=CHECK,LE,RISCV64,64

# RUN: llvm-objcopy -I binary -B sparc %t.txt %t.sparc.o
# RUN: llvm-readobj --file-headers %t.sparc.o | FileCheck %s --check-prefixes=CHECK,BE,SPARC,32

# RUN: llvm-objcopy -I binary -B sparcel %t.txt %t.sparcel.o
# RUN: llvm-readobj --file-headers %t.sparcel.o | FileCheck %s --check-prefixes=CHECK,LE,SPARCEL,32

# RUN: llvm-objcopy -I binary -B x86-64 %t.txt %t.x86-64.o
# RUN: llvm-readobj --file-headers %t.x86-64.o | FileCheck %s --check-prefixes=CHECK,LE,X86-64,64

# CHECK: Format:
# 32-SAME:      ELF32-
# 64-SAME:      ELF64-
# AARCH64-SAME: aarch64-little
# ARM-SAME:     arm-little
# I386-SAME:    i386
# MIPS-SAME:    mips{{$}}
# RISCV32-SAME: riscv{{$}}
# RISCV64-SAME: riscv{{$}}
# PPC-SAME:     ppc64
# SPARC-SAME:   sparc
# SPARCEL-SAME: sparc
# X86-64-SAME:  x86-64

# AARCH64-NEXT: Arch: aarch64
# ARM-NEXT:     Arch: arm
# I386-NEXT:    Arch: i386
# MIPS-NEXT:    Arch: mips{{$$}}
# PPC-NEXT:     Arch: powerpc64le
# RISCV32-NEXT: Arch: riscv32
# RISCV64-NEXT: Arch: riscv64
# SPARC-NEXT:   Arch: sparc{{$}}
# SPARCEL-NEXT: Arch: sparcel
# X86-64-NEXT:  Arch: x86_64

# 32-NEXT:      AddressSize: 32bit
# 64-NEXT:      AddressSize: 64bit

# CHECK:        ElfHeader {
# CHECK-NEXT:     Ident {
# CHECK-NEXT:       Magic: (7F 45 4C 46)
# 32-NEXT:          Class: 32-bit (0x1)
# 64-NEXT:          Class: 64-bit (0x2)
# LE-NEXT:          DataEncoding: LittleEndian (0x1)
# BE-NEXT:          DataEncoding: BigEndian (0x2)
# CHECK-NEXT:       FileVersion: 1
# CHECK-NEXT:       OS/ABI: SystemV (0x0)
# CHECK-NEXT:       ABIVersion: 0
# CHECK-NEXT:       Unused: (00 00 00 00 00 00 00)
# CHECK-NEXT:     }
# CHECK-NEXT:     Type: Relocatable (0x1)
# AARCH64-NEXT:   Machine: EM_AARCH64 (0xB7)
# ARM-NEXT:       Machine: EM_ARM (0x28)
# I386-NEXT:      Machine: EM_386 (0x3)
# MIPS-NEXT:      Machine: EM_MIPS (0x8)
# PPC-NEXT:       Machine: EM_PPC64 (0x15)
# RISCV32-NEXT:   Machine: EM_RISCV (0xF3)
# RISCV64-NEXT:   Machine: EM_RISCV (0xF3)
# SPARC-NEXT:     Machine: EM_SPARC (0x2)
# SPARCEL-NEXT:   Machine: EM_SPARC (0x2)
# X86-64-NEXT:    Machine: EM_X86_64 (0x3E)
# CHECK-NEXT:     Version: 1
# CHECK-NEXT:     Entry: 0x0
# CHECK-NEXT:     ProgramHeaderOffset:
# CHECK-NEXT:     SectionHeaderOffset:
# CHECK-NEXT:     Flags [ (0x0)
# CHECK-NEXT:     ]
# 32-NEXT:        HeaderSize: 52
# 64-NEXT:        HeaderSize: 64
# 32-NEXT:        ProgramHeaderEntrySize: 0
# 64-NEXT:        ProgramHeaderEntrySize: 0
# CHECK-NEXT:     ProgramHeaderCount: 0
# 32-NEXT:        SectionHeaderEntrySize: 40
# 64-NEXT:        SectionHeaderEntrySize: 64
# CHECK-NEXT:     SectionHeaderCount: 4
# CHECK-NEXT:     StringTableSectionIndex:
# CHECK-NEXT:   }