# REQUIRES: arm # RUN: llvm-mc -filetype=obj -triple=armv7-unknown-linux %s -o %tarm # RUN: ld.lld -m armelf %tarm -o %t2arm # RUN: llvm-readobj --file-headers %t2arm | FileCheck --check-prefix=ARM %s # RUN: ld.lld -m armelf_linux_eabi %tarm -o %t3arm # RUN: llvm-readobj --file-headers %t3arm | FileCheck --check-prefix=ARM %s # RUN: ld.lld %tarm -o %t4arm # RUN: llvm-readobj --file-headers %t4arm | FileCheck --check-prefix=ARM %s # RUN: echo 'OUTPUT_FORMAT(elf32-littlearm)' > %t5arm.script # RUN: ld.lld %t5arm.script %tarm -o %t5arm # RUN: llvm-readobj --file-headers %t5arm | FileCheck --check-prefix=ARM %s # ARM: ElfHeader { # ARM-NEXT: Ident { # ARM-NEXT: Magic: (7F 45 4C 46) # ARM-NEXT: Class: 32-bit (0x1) # ARM-NEXT: DataEncoding: LittleEndian (0x1) # ARM-NEXT: FileVersion: 1 # ARM-NEXT: OS/ABI: SystemV (0x0) # ARM-NEXT: ABIVersion: 0 # ARM-NEXT: Unused: (00 00 00 00 00 00 00) # ARM-NEXT: } # ARM-NEXT: Type: Executable (0x2) # ARM-NEXT: Machine: EM_ARM (0x28) # ARM-NEXT: Version: 1 # RUN: llvm-mc -arm-add-build-attributes -filetype=obj -triple=armv7aeb-none-linux-gnueabi %s -o %t.o # RUN: ld.lld -marmelfb_linux_eabi %t.o -o %t1 # echo 'OUTPUT_FORMAT(elf32-bigarm)' > %t6arm.script # ld.lld %tarm -o %t6arm # RUN: llvm-readobj -h %t1 | FileCheck %s --check-prefix=ARMEB # RUN: llvm-readobj -h %t1 | FileCheck %s --check-prefix=BE8 # RUN: ld.lld --be8 -marmelfb_linux_eabi %t.o -o %t1 # echo 'OUTPUT_FORMAT(elf32-bigarm)' > %t6arm.script # ld.lld --be8 %tarm -o %t6arm # RUN: llvm-readobj -h %t1 | FileCheck %s --check-prefix=ARMEB8 # ARMEB: ElfHeader { # ARMEB-NEXT: Ident { # ARMEB-NEXT: Magic: (7F 45 4C 46) # ARMEB-NEXT: Class: 32-bit (0x1) # ARMEB-NEXT: DataEncoding: BigEndian (0x2) # ARMEB-NEXT: FileVersion: 1 # ARMEB-NEXT: OS/ABI: SystemV (0x0) # ARMEB-NEXT: ABIVersion: 0 # ARMEB-NEXT: Unused: (00 00 00 00 00 00 00) # ARMEB-NEXT: } # ARMEB-NEXT: Type: Executable (0x2) # ARMEB-NEXT: Machine: EM_ARM (0x28) # ARMEB-NEXT: Version: 1 ## Ensure that the EF_ARM_BE8 flag is not set for be32 ## This will have to be modified on the be8 is implemented # ARMEB: Flags [ (0x5000200) # ARMEB-NEXT: 0x200 # ARMEB-NEXT: 0x1000000 # ARMEB-NEXT: 0x4000000 # ARMEB-NEXT: ] # BE8-NOT: 0x800000 # ARMEB8: ElfHeader { # ARMEB8-NEXT: Ident { # ARMEB8-NEXT: Magic: (7F 45 4C 46) # ARMEB8-NEXT: Class: 32-bit (0x1) # ARMEB8-NEXT: DataEncoding: BigEndian (0x2) # ARMEB8-NEXT: FileVersion: 1 # ARMEB8-NEXT: OS/ABI: SystemV (0x0) # ARMEB8-NEXT: ABIVersion: 0 # ARMEB8-NEXT: Unused: (00 00 00 00 00 00 00) # ARMEB8-NEXT: } # ARMEB8-NEXT: Type: Executable (0x2) # ARMEB8-NEXT: Machine: EM_ARM (0x28) # ARMEB8-NEXT: Version: 1 ## Ensure that the EF_ARM_BE8 flag is set for be8 # ARMEB8: Flags [ (0x5800200) # ARMEB8-NEXT: 0x200 # ARMEB8-NEXT: 0x800000 # ARMEB8-NEXT: 0x1000000 # ARMEB8-NEXT: 0x4000000 # ARMEB8-NEXT: ] .globl _start _start: