86 lines · plain
1# REQUIRES: arm2# RUN: llvm-mc -filetype=obj -triple=armv7-unknown-linux %s -o %tarm3# RUN: ld.lld -m armelf %tarm -o %t2arm4# RUN: llvm-readobj --file-headers %t2arm | FileCheck --check-prefix=ARM %s5# RUN: ld.lld -m armelf_linux_eabi %tarm -o %t3arm6# RUN: llvm-readobj --file-headers %t3arm | FileCheck --check-prefix=ARM %s7# RUN: ld.lld %tarm -o %t4arm8# RUN: llvm-readobj --file-headers %t4arm | FileCheck --check-prefix=ARM %s9# RUN: echo 'OUTPUT_FORMAT(elf32-littlearm)' > %t5arm.script10# RUN: ld.lld %t5arm.script %tarm -o %t5arm11# RUN: llvm-readobj --file-headers %t5arm | FileCheck --check-prefix=ARM %s12# ARM: ElfHeader {13# ARM-NEXT: Ident {14# ARM-NEXT: Magic: (7F 45 4C 46)15# ARM-NEXT: Class: 32-bit (0x1)16# ARM-NEXT: DataEncoding: LittleEndian (0x1)17# ARM-NEXT: FileVersion: 118# ARM-NEXT: OS/ABI: SystemV (0x0)19# ARM-NEXT: ABIVersion: 020# ARM-NEXT: Unused: (00 00 00 00 00 00 00)21# ARM-NEXT: }22# ARM-NEXT: Type: Executable (0x2)23# ARM-NEXT: Machine: EM_ARM (0x28)24# ARM-NEXT: Version: 125 26# RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7aeb-none-linux-gnueabi %s -o %t.o27# RUN: ld.lld -marmelfb_linux_eabi %t.o -o %t128# echo 'OUTPUT_FORMAT(elf32-bigarm)' > %t6arm.script29# ld.lld %tarm -o %t6arm30# RUN: llvm-readobj -h %t1 | FileCheck %s --check-prefix=ARMEB31# RUN: llvm-readobj -h %t1 | FileCheck %s --check-prefix=BE832 33# RUN: ld.lld --be8 -marmelfb_linux_eabi %t.o -o %t134# echo 'OUTPUT_FORMAT(elf32-bigarm)' > %t6arm.script35# ld.lld --be8 %tarm -o %t6arm36# RUN: llvm-readobj -h %t1 | FileCheck %s --check-prefix=ARMEB837 38# ARMEB: ElfHeader {39# ARMEB-NEXT: Ident {40# ARMEB-NEXT: Magic: (7F 45 4C 46)41# ARMEB-NEXT: Class: 32-bit (0x1)42# ARMEB-NEXT: DataEncoding: BigEndian (0x2)43# ARMEB-NEXT: FileVersion: 144# ARMEB-NEXT: OS/ABI: SystemV (0x0)45# ARMEB-NEXT: ABIVersion: 046# ARMEB-NEXT: Unused: (00 00 00 00 00 00 00)47# ARMEB-NEXT: }48# ARMEB-NEXT: Type: Executable (0x2)49# ARMEB-NEXT: Machine: EM_ARM (0x28)50# ARMEB-NEXT: Version: 151 52## Ensure that the EF_ARM_BE8 flag is not set for be3253## This will have to be modified on the be8 is implemented54# ARMEB: Flags [ (0x5000200)55# ARMEB-NEXT: 0x20056# ARMEB-NEXT: 0x100000057# ARMEB-NEXT: 0x400000058# ARMEB-NEXT: ]59 60# BE8-NOT: 0x80000061 62# ARMEB8: ElfHeader {63# ARMEB8-NEXT: Ident {64# ARMEB8-NEXT: Magic: (7F 45 4C 46)65# ARMEB8-NEXT: Class: 32-bit (0x1)66# ARMEB8-NEXT: DataEncoding: BigEndian (0x2)67# ARMEB8-NEXT: FileVersion: 168# ARMEB8-NEXT: OS/ABI: SystemV (0x0)69# ARMEB8-NEXT: ABIVersion: 070# ARMEB8-NEXT: Unused: (00 00 00 00 00 00 00)71# ARMEB8-NEXT: }72# ARMEB8-NEXT: Type: Executable (0x2)73# ARMEB8-NEXT: Machine: EM_ARM (0x28)74# ARMEB8-NEXT: Version: 175 76## Ensure that the EF_ARM_BE8 flag is set for be877# ARMEB8: Flags [ (0x5800200)78# ARMEB8-NEXT: 0x20079# ARMEB8-NEXT: 0x80000080# ARMEB8-NEXT: 0x100000081# ARMEB8-NEXT: 0x400000082# ARMEB8-NEXT: ]83 84.globl _start85_start:86