217 lines · plain
1## This is a test to test how the OS/ABI identification field (EI_OSABI) of an ELF file header is dumped.2 3## EI_OSABI is set to ELFOSABI_NONE.4# RUN: yaml2obj %s -DOSABI=ELFOSABI_NONE -o %t.osabi.none5# RUN: llvm-readobj --file-headers %t.osabi.none | FileCheck %s --match-full-lines --check-prefix=OSABI-NONE-LLVM6# RUN: llvm-readelf --file-headers %t.osabi.none | FileCheck %s --match-full-lines --check-prefix=OSABI-NONE-GNU7 8# OSABI-NONE-LLVM: OS/ABI: SystemV (0x0)9# OSABI-NONE-GNU: OS/ABI: UNIX - System V10 11--- !ELF12FileHeader:13 Class: ELFCLASS6414 Data: ELFDATA2LSB15 Type: ET_REL16 Machine: [[MACHINE=<none>]]17 OSABI: [[OSABI]]18 19## EI_OSABI is set to ELFOSABI_HPUX.20# RUN: yaml2obj %s -DOSABI=ELFOSABI_HPUX -o %t.osabi.hpux21# RUN: llvm-readobj --file-headers %t.osabi.hpux | FileCheck %s --match-full-lines --check-prefix=OSABI-HPUX-LLVM22# RUN: llvm-readelf --file-headers %t.osabi.hpux | FileCheck %s --match-full-lines --check-prefix=OSABI-HPUX-GNU23 24# OSABI-HPUX-LLVM: OS/ABI: HPUX (0x1)25# OSABI-HPUX-GNU: OS/ABI: UNIX - HP-UX26 27## EI_OSABI is set to ELFOSABI_NETBSD.28# RUN: yaml2obj %s -DOSABI=ELFOSABI_NETBSD -o %t.osabi.netbsd29# RUN: llvm-readobj --file-headers %t.osabi.netbsd | FileCheck %s --match-full-lines --check-prefix=OSABI-NETBSD-LLVM30# RUN: llvm-readelf --file-headers %t.osabi.netbsd | FileCheck %s --match-full-lines --check-prefix=OSABI-NETBSD-GNU31 32# OSABI-NETBSD-LLVM: OS/ABI: NetBSD (0x2)33# OSABI-NETBSD-GNU: OS/ABI: UNIX - NetBSD34 35## EI_OSABI is set to ELFOSABI_LINUX.36# RUN: yaml2obj %s -DOSABI=ELFOSABI_LINUX -o %t.osabi.linux37# RUN: llvm-readobj --file-headers %t.osabi.linux | FileCheck %s --match-full-lines --check-prefix=OSABI-LINUX-LLVM38# RUN: llvm-readelf --file-headers %t.osabi.linux | FileCheck %s --match-full-lines --check-prefix=OSABI-LINUX-GNU39 40# OSABI-LINUX-LLVM: OS/ABI: GNU/Linux (0x3)41# OSABI-LINUX-GNU: OS/ABI: UNIX - GNU42 43## EI_OSABI is set to ELFOSABI_HURD.44# RUN: yaml2obj %s -DOSABI=ELFOSABI_HURD -o %t.osabi.hurd45# RUN: llvm-readobj --file-headers %t.osabi.hurd | FileCheck %s --match-full-lines --check-prefix=OSABI-HURD-LLVM46# RUN: llvm-readelf --file-headers %t.osabi.hurd | FileCheck %s --match-full-lines --check-prefix=OSABI-HURD-GNU47 48# OSABI-HURD-LLVM: OS/ABI: GNU/Hurd (0x4)49# OSABI-HURD-GNU: OS/ABI: GNU/Hurd50 51## EI_OSABI is set to ELFOSABI_SOLARIS.52# RUN: yaml2obj %s -DOSABI=ELFOSABI_SOLARIS -o %t.osabi.solaris53# RUN: llvm-readobj --file-headers %t.osabi.solaris | FileCheck %s --match-full-lines --check-prefix=OSABI-SOLARIS-LLVM54# RUN: llvm-readelf --file-headers %t.osabi.solaris | FileCheck %s --match-full-lines --check-prefix=OSABI-SOLARIS-GNU55 56# OSABI-SOLARIS-LLVM: OS/ABI: Solaris (0x6)57# OSABI-SOLARIS-GNU: OS/ABI: UNIX - Solaris58 59## EI_OSABI is set to ELFOSABI_AIX.60# RUN: yaml2obj %s -DOSABI=ELFOSABI_AIX -o %t.osabi.aix61# RUN: llvm-readobj --file-headers %t.osabi.aix | FileCheck %s --match-full-lines --check-prefix=OSABI-AIX-LLVM62# RUN: llvm-readelf --file-headers %t.osabi.aix | FileCheck %s --match-full-lines --check-prefix=OSABI-AIX-GNU63 64# OSABI-AIX-LLVM: OS/ABI: AIX (0x7)65# OSABI-AIX-GNU: OS/ABI: UNIX - AIX66 67## EI_OSABI is set to ELFOSABI_IRIX.68# RUN: yaml2obj %s -DOSABI=ELFOSABI_IRIX -o %t.osabi.irix69# RUN: llvm-readobj --file-headers %t.osabi.irix | FileCheck %s --match-full-lines --check-prefix=OSABI-IRIX-LLVM70# RUN: llvm-readelf --file-headers %t.osabi.irix | FileCheck %s --match-full-lines --check-prefix=OSABI-IRIX-GNU71 72# OSABI-IRIX-LLVM: OS/ABI: IRIX (0x8)73# OSABI-IRIX-GNU: OS/ABI: UNIX - IRIX74 75## EI_OSABI is set to ELFOSABI_FREEBSD.76# RUN: yaml2obj %s -DOSABI=ELFOSABI_FREEBSD -o %t.osabi.freebsd77# RUN: llvm-readobj --file-headers %t.osabi.freebsd | FileCheck %s --match-full-lines --check-prefix=OSABI-FREEBSD-LLVM78# RUN: llvm-readelf --file-headers %t.osabi.freebsd | FileCheck %s --match-full-lines --check-prefix=OSABI-FREEBSD-GNU79 80# OSABI-FREEBSD-LLVM: OS/ABI: FreeBSD (0x9)81# OSABI-FREEBSD-GNU: OS/ABI: UNIX - FreeBSD82 83## EI_OSABI is set to ELFOSABI_TRU64.84# RUN: yaml2obj %s -DOSABI=ELFOSABI_TRU64 -o %t.osabi.tru6485# RUN: llvm-readobj --file-headers %t.osabi.tru64 | FileCheck %s --match-full-lines --check-prefix=OSABI-TRU64-LLVM86# RUN: llvm-readelf --file-headers %t.osabi.tru64 | FileCheck %s --match-full-lines --check-prefix=OSABI-TRU64-GNU87 88# OSABI-TRU64-LLVM: OS/ABI: TRU64 (0xA)89# OSABI-TRU64-GNU: OS/ABI: UNIX - TRU6490 91## EI_OSABI is set to ELFOSABI_MODESTO.92# RUN: yaml2obj %s -DOSABI=ELFOSABI_MODESTO -o %t.osabi.modesto93# RUN: llvm-readobj --file-headers %t.osabi.modesto | FileCheck %s --match-full-lines --check-prefix=OSABI-MODESTO-LLVM94# RUN: llvm-readelf --file-headers %t.osabi.modesto | FileCheck %s --match-full-lines --check-prefix=OSABI-MODESTO-GNU95 96# OSABI-MODESTO-LLVM: OS/ABI: Modesto (0xB)97# OSABI-MODESTO-GNU: OS/ABI: Novell - Modesto98 99## EI_OSABI is set to ELFOSABI_OPENBSD.100# RUN: yaml2obj %s -DOSABI=ELFOSABI_OPENBSD -o %t.osabi.openbsd101# RUN: llvm-readobj --file-headers %t.osabi.openbsd | FileCheck %s --match-full-lines --check-prefix=OSABI-OPENBSD-LLVM102# RUN: llvm-readelf --file-headers %t.osabi.openbsd | FileCheck %s --match-full-lines --check-prefix=OSABI-OPENBSD-GNU103 104# OSABI-OPENBSD-LLVM: OS/ABI: OpenBSD (0xC)105# OSABI-OPENBSD-GNU: OS/ABI: UNIX - OpenBSD106 107## EI_OSABI is set to ELFOSABI_OPENVMS.108# RUN: yaml2obj %s -DOSABI=ELFOSABI_OPENVMS -o %t.osabi.openvms109# RUN: llvm-readobj --file-headers %t.osabi.openvms | FileCheck %s --match-full-lines --check-prefix=OSABI-OPENVMS-LLVM110# RUN: llvm-readelf --file-headers %t.osabi.openvms | FileCheck %s --match-full-lines --check-prefix=OSABI-OPENVMS-GNU111 112# OSABI-OPENVMS-LLVM: OS/ABI: OpenVMS (0xD)113# OSABI-OPENVMS-GNU: OS/ABI: VMS - OpenVMS114 115## EI_OSABI is set to ELFOSABI_NSK.116# RUN: yaml2obj %s -DOSABI=ELFOSABI_NSK -o %t.osabi.nsk117# RUN: llvm-readobj --file-headers %t.osabi.nsk | FileCheck %s --match-full-lines --check-prefix=OSABI-NSK-LLVM118# RUN: llvm-readelf --file-headers %t.osabi.nsk | FileCheck %s --match-full-lines --check-prefix=OSABI-NSK-GNU119 120# OSABI-NSK-LLVM: OS/ABI: NSK (0xE)121# OSABI-NSK-GNU: OS/ABI: HP - Non-Stop Kernel122 123## EI_OSABI is set to ELFOSABI_AROS.124# RUN: yaml2obj %s -DOSABI=ELFOSABI_AROS -o %t.osabi.aros125# RUN: llvm-readobj --file-headers %t.osabi.aros | FileCheck %s --match-full-lines --check-prefix=OSABI-AROS-LLVM126# RUN: llvm-readelf --file-headers %t.osabi.aros | FileCheck %s --match-full-lines --check-prefix=OSABI-AROS-GNU127 128# OSABI-AROS-LLVM: OS/ABI: AROS (0xF)129# OSABI-AROS-GNU: OS/ABI: AROS130 131## EI_OSABI is set to ELFOSABI_FENIXOS.132# RUN: yaml2obj %s -DOSABI=ELFOSABI_FENIXOS -o %t.osabi.fenixos133# RUN: llvm-readobj --file-headers %t.osabi.fenixos | FileCheck %s --match-full-lines --check-prefix=OSABI-FENIXOS-LLVM134# RUN: llvm-readelf --file-headers %t.osabi.fenixos | FileCheck %s --match-full-lines --check-prefix=OSABI-FENIXOS-GNU135 136# OSABI-FENIXOS-LLVM: OS/ABI: FenixOS (0x10)137# OSABI-FENIXOS-GNU: OS/ABI: FenixOS138 139## EI_OSABI is set to ELFOSABI_CLOUDABI.140# RUN: yaml2obj %s -DOSABI=ELFOSABI_CLOUDABI -o %t.osabi.cloudabi141# RUN: llvm-readobj --file-headers %t.osabi.cloudabi | FileCheck %s --match-full-lines --check-prefix=OSABI-CLOUDABI-LLVM142# RUN: llvm-readelf --file-headers %t.osabi.cloudabi | FileCheck %s --match-full-lines --check-prefix=OSABI-CLOUDABI-GNU143 144# OSABI-CLOUDABI-LLVM: OS/ABI: CloudABI (0x11)145# OSABI-CLOUDABI-GNU: OS/ABI: CloudABI146 147## EI_OSABI is set to ELFOSABI_STANDALONE.148# RUN: yaml2obj %s -DOSABI=ELFOSABI_STANDALONE -o %t.osabi.standalone149# RUN: llvm-readobj --file-headers %t.osabi.standalone | FileCheck %s --match-full-lines --check-prefix=OSABI-STANDALONE-LLVM150# RUN: llvm-readelf --file-headers %t.osabi.standalone | FileCheck %s --match-full-lines --check-prefix=OSABI-STANDALONE-GNU151 152# OSABI-STANDALONE-LLVM: OS/ABI: Standalone (0xFF)153# OSABI-STANDALONE-GNU: OS/ABI: Standalone App154 155## EI_OSABI is set to an arbitrary value which is not supported by llvm-readobj/llvm-readelf.156# RUN: yaml2obj %s -DOSABI=0xFE -o %t.osabi.unknown157# RUN: llvm-readobj --file-headers %t.osabi.unknown | FileCheck %s --match-full-lines --check-prefix=OSABI-UNKNOWN-LLVM158# RUN: llvm-readelf --file-headers %t.osabi.unknown | FileCheck %s --match-full-lines --check-prefix=OSABI-UNKNOWN-GNU159 160# OSABI-UNKNOWN-LLVM: OS/ABI: 0xFE161# OSABI-UNKNOWN-GNU: OS/ABI: fe162 163## Check all EM_AMDGPU specific values.164 165# RUN: yaml2obj %s -DOSABI=ELFOSABI_AMDGPU_HSA -DMACHINE=EM_AMDGPU -o %t.osabi.amd.hsa166# RUN: llvm-readobj --file-headers %t.osabi.amd.hsa | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDHSA-LLVM167# RUN: llvm-readelf --file-headers %t.osabi.amd.hsa | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDHSA-GNU168 169# OSABI-AMDHSA-LLVM: OS/ABI: AMDGPU_HSA (0x40)170# OSABI-AMDHSA-GNU: OS/ABI: AMDGPU - HSA171 172# RUN: yaml2obj %s -DOSABI=ELFOSABI_AMDGPU_PAL -DMACHINE=EM_AMDGPU -o %t.osabi.amd.pal173# RUN: llvm-readobj --file-headers %t.osabi.amd.pal | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDPAL-LLVM174# RUN: llvm-readelf --file-headers %t.osabi.amd.pal | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDPAL-GNU175 176# OSABI-AMDPAL-LLVM: OS/ABI: AMDGPU_PAL (0x41)177# OSABI-AMDPAL-GNU: OS/ABI: AMDGPU - PAL178 179# RUN: yaml2obj %s -DOSABI=ELFOSABI_AMDGPU_MESA3D -DMACHINE=EM_AMDGPU -o %t.osabi.amd.mesa3d180# RUN: llvm-readobj --file-headers %t.osabi.amd.mesa3d | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDMESA3D-LLVM181# RUN: llvm-readelf --file-headers %t.osabi.amd.mesa3d | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDMESA3D-GNU182 183# OSABI-AMDMESA3D-LLVM: OS/ABI: AMDGPU_MESA3D (0x42)184# OSABI-AMDMESA3D-GNU: OS/ABI: AMDGPU - MESA3D185 186# Check all EM_ARM specific values.187 188# RUN: yaml2obj %s -DOSABI=ELFOSABI_ARM -DMACHINE=EM_ARM -o %t.osabi.arm189# RUN: llvm-readobj --file-headers %t.osabi.arm | FileCheck %s --match-full-lines --check-prefix=OSABI-ARM-LLVM190# RUN: llvm-readelf --file-headers %t.osabi.arm | FileCheck %s --match-full-lines --check-prefix=OSABI-ARM-GNU191 192# OSABI-ARM-LLVM: OS/ABI: ARM (0x61)193# OSABI-ARM-GNU: OS/ABI: ARM194 195# RUN: yaml2obj %s -DOSABI=ELFOSABI_ARM_FDPIC -DMACHINE=EM_ARM -o %t.osabi.arm_fdpic196# RUN: llvm-readobj --file-headers %t.osabi.arm_fdpic | FileCheck %s --match-full-lines --check-prefix=OSABI-ARMFDPIC-LLVM197# RUN: llvm-readelf --file-headers %t.osabi.arm_fdpic | FileCheck %s --match-full-lines --check-prefix=OSABI-ARMFDPIC-GNU198 199# OSABI-ARMFDPIC-LLVM: OS/ABI: ARM FDPIC (0x41)200# OSABI-ARMFDPIC-GNU: OS/ABI: ARM FDPIC201 202## Check all EM_TI_C6000 specific values.203 204# RUN: yaml2obj %s -DOSABI=ELFOSABI_C6000_ELFABI -DMACHINE=EM_TI_C6000 -o %t.osabi.c6000.elfabi205# RUN: llvm-readobj --file-headers %t.osabi.c6000.elfabi | FileCheck %s --match-full-lines --check-prefix=OSABI-C6000ELFABI-LLVM206# RUN: llvm-readelf --file-headers %t.osabi.c6000.elfabi | FileCheck %s --match-full-lines --check-prefix=OSABI-C6000ELFABI-GNU207 208# OSABI-C6000ELFABI-LLVM: OS/ABI: C6000_ELFABI (0x40)209# OSABI-C6000ELFABI-GNU: OS/ABI: 40210 211# RUN: yaml2obj %s -DOSABI=ELFOSABI_C6000_LINUX -DMACHINE=EM_TI_C6000 -o %t.osabi.c6000.linux212# RUN: llvm-readobj --file-headers %t.osabi.c6000.linux | FileCheck %s --match-full-lines --check-prefix=OSABI-C6000LINUX-LLVM213# RUN: llvm-readelf --file-headers %t.osabi.c6000.linux | FileCheck %s --match-full-lines --check-prefix=OSABI-C6000LINUX-GNU214 215# OSABI-C6000LINUX-LLVM: OS/ABI: C6000_LINUX (0x41)216# OSABI-C6000LINUX-GNU: OS/ABI: 41217