| # 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: |