## This is a test to test how the OS/ABI identification field (EI_OSABI) of an ELF file header is dumped. ## EI_OSABI is set to ELFOSABI_NONE. # RUN: yaml2obj %s -DOSABI=ELFOSABI_NONE -o %t.osabi.none # RUN: llvm-readobj --file-headers %t.osabi.none | FileCheck %s --match-full-lines --check-prefix=OSABI-NONE-LLVM # RUN: llvm-readelf --file-headers %t.osabi.none | FileCheck %s --match-full-lines --check-prefix=OSABI-NONE-GNU # OSABI-NONE-LLVM: OS/ABI: SystemV (0x0) # OSABI-NONE-GNU: OS/ABI: UNIX - System V --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: [[MACHINE=]] OSABI: [[OSABI]] ## EI_OSABI is set to ELFOSABI_HPUX. # RUN: yaml2obj %s -DOSABI=ELFOSABI_HPUX -o %t.osabi.hpux # RUN: llvm-readobj --file-headers %t.osabi.hpux | FileCheck %s --match-full-lines --check-prefix=OSABI-HPUX-LLVM # RUN: llvm-readelf --file-headers %t.osabi.hpux | FileCheck %s --match-full-lines --check-prefix=OSABI-HPUX-GNU # OSABI-HPUX-LLVM: OS/ABI: HPUX (0x1) # OSABI-HPUX-GNU: OS/ABI: UNIX - HP-UX ## EI_OSABI is set to ELFOSABI_NETBSD. # RUN: yaml2obj %s -DOSABI=ELFOSABI_NETBSD -o %t.osabi.netbsd # RUN: llvm-readobj --file-headers %t.osabi.netbsd | FileCheck %s --match-full-lines --check-prefix=OSABI-NETBSD-LLVM # RUN: llvm-readelf --file-headers %t.osabi.netbsd | FileCheck %s --match-full-lines --check-prefix=OSABI-NETBSD-GNU # OSABI-NETBSD-LLVM: OS/ABI: NetBSD (0x2) # OSABI-NETBSD-GNU: OS/ABI: UNIX - NetBSD ## EI_OSABI is set to ELFOSABI_LINUX. # RUN: yaml2obj %s -DOSABI=ELFOSABI_LINUX -o %t.osabi.linux # RUN: llvm-readobj --file-headers %t.osabi.linux | FileCheck %s --match-full-lines --check-prefix=OSABI-LINUX-LLVM # RUN: llvm-readelf --file-headers %t.osabi.linux | FileCheck %s --match-full-lines --check-prefix=OSABI-LINUX-GNU # OSABI-LINUX-LLVM: OS/ABI: GNU/Linux (0x3) # OSABI-LINUX-GNU: OS/ABI: UNIX - GNU ## EI_OSABI is set to ELFOSABI_HURD. # RUN: yaml2obj %s -DOSABI=ELFOSABI_HURD -o %t.osabi.hurd # RUN: llvm-readobj --file-headers %t.osabi.hurd | FileCheck %s --match-full-lines --check-prefix=OSABI-HURD-LLVM # RUN: llvm-readelf --file-headers %t.osabi.hurd | FileCheck %s --match-full-lines --check-prefix=OSABI-HURD-GNU # OSABI-HURD-LLVM: OS/ABI: GNU/Hurd (0x4) # OSABI-HURD-GNU: OS/ABI: GNU/Hurd ## EI_OSABI is set to ELFOSABI_SOLARIS. # RUN: yaml2obj %s -DOSABI=ELFOSABI_SOLARIS -o %t.osabi.solaris # RUN: llvm-readobj --file-headers %t.osabi.solaris | FileCheck %s --match-full-lines --check-prefix=OSABI-SOLARIS-LLVM # RUN: llvm-readelf --file-headers %t.osabi.solaris | FileCheck %s --match-full-lines --check-prefix=OSABI-SOLARIS-GNU # OSABI-SOLARIS-LLVM: OS/ABI: Solaris (0x6) # OSABI-SOLARIS-GNU: OS/ABI: UNIX - Solaris ## EI_OSABI is set to ELFOSABI_AIX. # RUN: yaml2obj %s -DOSABI=ELFOSABI_AIX -o %t.osabi.aix # RUN: llvm-readobj --file-headers %t.osabi.aix | FileCheck %s --match-full-lines --check-prefix=OSABI-AIX-LLVM # RUN: llvm-readelf --file-headers %t.osabi.aix | FileCheck %s --match-full-lines --check-prefix=OSABI-AIX-GNU # OSABI-AIX-LLVM: OS/ABI: AIX (0x7) # OSABI-AIX-GNU: OS/ABI: UNIX - AIX ## EI_OSABI is set to ELFOSABI_IRIX. # RUN: yaml2obj %s -DOSABI=ELFOSABI_IRIX -o %t.osabi.irix # RUN: llvm-readobj --file-headers %t.osabi.irix | FileCheck %s --match-full-lines --check-prefix=OSABI-IRIX-LLVM # RUN: llvm-readelf --file-headers %t.osabi.irix | FileCheck %s --match-full-lines --check-prefix=OSABI-IRIX-GNU # OSABI-IRIX-LLVM: OS/ABI: IRIX (0x8) # OSABI-IRIX-GNU: OS/ABI: UNIX - IRIX ## EI_OSABI is set to ELFOSABI_FREEBSD. # RUN: yaml2obj %s -DOSABI=ELFOSABI_FREEBSD -o %t.osabi.freebsd # RUN: llvm-readobj --file-headers %t.osabi.freebsd | FileCheck %s --match-full-lines --check-prefix=OSABI-FREEBSD-LLVM # RUN: llvm-readelf --file-headers %t.osabi.freebsd | FileCheck %s --match-full-lines --check-prefix=OSABI-FREEBSD-GNU # OSABI-FREEBSD-LLVM: OS/ABI: FreeBSD (0x9) # OSABI-FREEBSD-GNU: OS/ABI: UNIX - FreeBSD ## EI_OSABI is set to ELFOSABI_TRU64. # RUN: yaml2obj %s -DOSABI=ELFOSABI_TRU64 -o %t.osabi.tru64 # RUN: llvm-readobj --file-headers %t.osabi.tru64 | FileCheck %s --match-full-lines --check-prefix=OSABI-TRU64-LLVM # RUN: llvm-readelf --file-headers %t.osabi.tru64 | FileCheck %s --match-full-lines --check-prefix=OSABI-TRU64-GNU # OSABI-TRU64-LLVM: OS/ABI: TRU64 (0xA) # OSABI-TRU64-GNU: OS/ABI: UNIX - TRU64 ## EI_OSABI is set to ELFOSABI_MODESTO. # RUN: yaml2obj %s -DOSABI=ELFOSABI_MODESTO -o %t.osabi.modesto # RUN: llvm-readobj --file-headers %t.osabi.modesto | FileCheck %s --match-full-lines --check-prefix=OSABI-MODESTO-LLVM # RUN: llvm-readelf --file-headers %t.osabi.modesto | FileCheck %s --match-full-lines --check-prefix=OSABI-MODESTO-GNU # OSABI-MODESTO-LLVM: OS/ABI: Modesto (0xB) # OSABI-MODESTO-GNU: OS/ABI: Novell - Modesto ## EI_OSABI is set to ELFOSABI_OPENBSD. # RUN: yaml2obj %s -DOSABI=ELFOSABI_OPENBSD -o %t.osabi.openbsd # RUN: llvm-readobj --file-headers %t.osabi.openbsd | FileCheck %s --match-full-lines --check-prefix=OSABI-OPENBSD-LLVM # RUN: llvm-readelf --file-headers %t.osabi.openbsd | FileCheck %s --match-full-lines --check-prefix=OSABI-OPENBSD-GNU # OSABI-OPENBSD-LLVM: OS/ABI: OpenBSD (0xC) # OSABI-OPENBSD-GNU: OS/ABI: UNIX - OpenBSD ## EI_OSABI is set to ELFOSABI_OPENVMS. # RUN: yaml2obj %s -DOSABI=ELFOSABI_OPENVMS -o %t.osabi.openvms # RUN: llvm-readobj --file-headers %t.osabi.openvms | FileCheck %s --match-full-lines --check-prefix=OSABI-OPENVMS-LLVM # RUN: llvm-readelf --file-headers %t.osabi.openvms | FileCheck %s --match-full-lines --check-prefix=OSABI-OPENVMS-GNU # OSABI-OPENVMS-LLVM: OS/ABI: OpenVMS (0xD) # OSABI-OPENVMS-GNU: OS/ABI: VMS - OpenVMS ## EI_OSABI is set to ELFOSABI_NSK. # RUN: yaml2obj %s -DOSABI=ELFOSABI_NSK -o %t.osabi.nsk # RUN: llvm-readobj --file-headers %t.osabi.nsk | FileCheck %s --match-full-lines --check-prefix=OSABI-NSK-LLVM # RUN: llvm-readelf --file-headers %t.osabi.nsk | FileCheck %s --match-full-lines --check-prefix=OSABI-NSK-GNU # OSABI-NSK-LLVM: OS/ABI: NSK (0xE) # OSABI-NSK-GNU: OS/ABI: HP - Non-Stop Kernel ## EI_OSABI is set to ELFOSABI_AROS. # RUN: yaml2obj %s -DOSABI=ELFOSABI_AROS -o %t.osabi.aros # RUN: llvm-readobj --file-headers %t.osabi.aros | FileCheck %s --match-full-lines --check-prefix=OSABI-AROS-LLVM # RUN: llvm-readelf --file-headers %t.osabi.aros | FileCheck %s --match-full-lines --check-prefix=OSABI-AROS-GNU # OSABI-AROS-LLVM: OS/ABI: AROS (0xF) # OSABI-AROS-GNU: OS/ABI: AROS ## EI_OSABI is set to ELFOSABI_FENIXOS. # RUN: yaml2obj %s -DOSABI=ELFOSABI_FENIXOS -o %t.osabi.fenixos # RUN: llvm-readobj --file-headers %t.osabi.fenixos | FileCheck %s --match-full-lines --check-prefix=OSABI-FENIXOS-LLVM # RUN: llvm-readelf --file-headers %t.osabi.fenixos | FileCheck %s --match-full-lines --check-prefix=OSABI-FENIXOS-GNU # OSABI-FENIXOS-LLVM: OS/ABI: FenixOS (0x10) # OSABI-FENIXOS-GNU: OS/ABI: FenixOS ## EI_OSABI is set to ELFOSABI_CLOUDABI. # RUN: yaml2obj %s -DOSABI=ELFOSABI_CLOUDABI -o %t.osabi.cloudabi # RUN: llvm-readobj --file-headers %t.osabi.cloudabi | FileCheck %s --match-full-lines --check-prefix=OSABI-CLOUDABI-LLVM # RUN: llvm-readelf --file-headers %t.osabi.cloudabi | FileCheck %s --match-full-lines --check-prefix=OSABI-CLOUDABI-GNU # OSABI-CLOUDABI-LLVM: OS/ABI: CloudABI (0x11) # OSABI-CLOUDABI-GNU: OS/ABI: CloudABI ## EI_OSABI is set to ELFOSABI_STANDALONE. # RUN: yaml2obj %s -DOSABI=ELFOSABI_STANDALONE -o %t.osabi.standalone # RUN: llvm-readobj --file-headers %t.osabi.standalone | FileCheck %s --match-full-lines --check-prefix=OSABI-STANDALONE-LLVM # RUN: llvm-readelf --file-headers %t.osabi.standalone | FileCheck %s --match-full-lines --check-prefix=OSABI-STANDALONE-GNU # OSABI-STANDALONE-LLVM: OS/ABI: Standalone (0xFF) # OSABI-STANDALONE-GNU: OS/ABI: Standalone App ## EI_OSABI is set to an arbitrary value which is not supported by llvm-readobj/llvm-readelf. # RUN: yaml2obj %s -DOSABI=0xFE -o %t.osabi.unknown # RUN: llvm-readobj --file-headers %t.osabi.unknown | FileCheck %s --match-full-lines --check-prefix=OSABI-UNKNOWN-LLVM # RUN: llvm-readelf --file-headers %t.osabi.unknown | FileCheck %s --match-full-lines --check-prefix=OSABI-UNKNOWN-GNU # OSABI-UNKNOWN-LLVM: OS/ABI: 0xFE # OSABI-UNKNOWN-GNU: OS/ABI: fe ## Check all EM_AMDGPU specific values. # RUN: yaml2obj %s -DOSABI=ELFOSABI_AMDGPU_HSA -DMACHINE=EM_AMDGPU -o %t.osabi.amd.hsa # RUN: llvm-readobj --file-headers %t.osabi.amd.hsa | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDHSA-LLVM # RUN: llvm-readelf --file-headers %t.osabi.amd.hsa | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDHSA-GNU # OSABI-AMDHSA-LLVM: OS/ABI: AMDGPU_HSA (0x40) # OSABI-AMDHSA-GNU: OS/ABI: 40 # RUN: yaml2obj %s -DOSABI=ELFOSABI_AMDGPU_PAL -DMACHINE=EM_AMDGPU -o %t.osabi.amd.pal # RUN: llvm-readobj --file-headers %t.osabi.amd.pal | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDPAL-LLVM # RUN: llvm-readelf --file-headers %t.osabi.amd.pal | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDPAL-GNU # OSABI-AMDPAL-LLVM: OS/ABI: AMDGPU_PAL (0x41) # OSABI-AMDPAL-GNU: OS/ABI: 41 # RUN: yaml2obj %s -DOSABI=ELFOSABI_AMDGPU_MESA3D -DMACHINE=EM_AMDGPU -o %t.osabi.amd.mesa3d # RUN: llvm-readobj --file-headers %t.osabi.amd.mesa3d | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDMESA3D-LLVM # RUN: llvm-readelf --file-headers %t.osabi.amd.mesa3d | FileCheck %s --match-full-lines --check-prefix=OSABI-AMDMESA3D-GNU # OSABI-AMDMESA3D-LLVM: OS/ABI: AMDGPU_MESA3D (0x42) # OSABI-AMDMESA3D-GNU: OS/ABI: 42 # Check all EM_ARM specific values. # RUN: yaml2obj %s -DOSABI=ELFOSABI_ARM -DMACHINE=EM_ARM -o %t.osabi.arm # RUN: llvm-readobj --file-headers %t.osabi.arm | FileCheck %s --match-full-lines --check-prefix=OSABI-ARM-LLVM # RUN: llvm-readelf --file-headers %t.osabi.arm | FileCheck %s --match-full-lines --check-prefix=OSABI-ARM-GNU # OSABI-ARM-LLVM: OS/ABI: ARM (0x61) # OSABI-ARM-GNU: OS/ABI: 61 ## Check all EM_TI_C6000 specific values. # RUN: yaml2obj %s -DOSABI=ELFOSABI_C6000_ELFABI -DMACHINE=EM_TI_C6000 -o %t.osabi.c6000.elfabi # RUN: llvm-readobj --file-headers %t.osabi.c6000.elfabi | FileCheck %s --match-full-lines --check-prefix=OSABI-C6000ELFABI-LLVM # RUN: llvm-readelf --file-headers %t.osabi.c6000.elfabi | FileCheck %s --match-full-lines --check-prefix=OSABI-C6000ELFABI-GNU # OSABI-C6000ELFABI-LLVM: OS/ABI: C6000_ELFABI (0x40) # OSABI-C6000ELFABI-GNU: OS/ABI: 40 # RUN: yaml2obj %s -DOSABI=ELFOSABI_C6000_LINUX -DMACHINE=EM_TI_C6000 -o %t.osabi.c6000.linux # RUN: llvm-readobj --file-headers %t.osabi.c6000.linux | FileCheck %s --match-full-lines --check-prefix=OSABI-C6000LINUX-LLVM # RUN: llvm-readelf --file-headers %t.osabi.c6000.linux | FileCheck %s --match-full-lines --check-prefix=OSABI-C6000LINUX-GNU # OSABI-C6000LINUX-LLVM: OS/ABI: C6000_LINUX (0x41) # OSABI-C6000LINUX-GNU: OS/ABI: 41