314 lines · yaml
1## Check yaml2obj is able to set an ABI version for an object.2 3## Check that by default yaml2obj emits ELFOSABI_NONE (0) for ABI version.4# RUN: yaml2obj %s --docnum=1 -o %t.default5# RUN: yaml2obj %s --docnum=2 -o %t.none6# RUN: llvm-readobj --file-headers %t.none | FileCheck %s --check-prefix=OSABI-NONE7# RUN: llvm-readobj --file-headers %t.default | FileCheck %s --check-prefix=OSABI-NONE8 9# OSABI-NONE: OS/ABI: SystemV (0x0)10 11--- !ELF12FileHeader:13 Class: ELFCLASS6414 Data: ELFDATA2LSB15 Type: ET_REL16 OSABI: ELFOSABI_NONE17 18--- !ELF19FileHeader:20 Class: ELFCLASS6421 Data: ELFDATA2LSB22 Type: ET_REL23 24# RUN: yaml2obj %s --docnum=3 -o %t.hpux25# RUN: llvm-readobj --file-headers %t.hpux | FileCheck %s --check-prefix=OSABI-HPUX26 27# OSABI-HPUX: OS/ABI: HPUX (0x1)28 29--- !ELF30FileHeader:31 Class: ELFCLASS6432 Data: ELFDATA2LSB33 Type: ET_REL34 OSABI: ELFOSABI_HPUX35 36# RUN: yaml2obj %s --docnum=4 -o %t.netbsd37# RUN: llvm-readobj --file-headers %t.netbsd | FileCheck %s --check-prefix=OSABI-NETBSD38 39# OSABI-NETBSD: OS/ABI: NetBSD (0x2)40 41--- !ELF42FileHeader:43 Class: ELFCLASS6444 Data: ELFDATA2LSB45 Type: ET_REL46 OSABI: ELFOSABI_NETBSD47 48## Test ELFOSABI_GNU and ELFOSABI_LINUX (historical alias for ELFOSABI_GNU).49# RUN: yaml2obj %s --docnum=5 -o %t.gnu50# RUN: llvm-readobj --file-headers %t.gnu | FileCheck %s --check-prefix=OSABI-GNU51# RUN: yaml2obj %s --docnum=6 -o %t.gnu.alias52# RUN: llvm-readobj --file-headers %t.gnu.alias | FileCheck %s --check-prefix=OSABI-GNU53# OSABI-GNU: OS/ABI: GNU/Linux (0x3)54 55--- !ELF56FileHeader:57 Class: ELFCLASS6458 Data: ELFDATA2LSB59 Type: ET_REL60 OSABI: ELFOSABI_GNU61 62--- !ELF63FileHeader:64 Class: ELFCLASS6465 Data: ELFDATA2LSB66 Type: ET_REL67 OSABI: ELFOSABI_LINUX68 69# RUN: yaml2obj %s --docnum=7 -o %t.hurd70# RUN: llvm-readobj --file-headers %t.hurd | FileCheck %s --check-prefix=OSABI-HURD71 72# OSABI-HURD: OS/ABI: GNU/Hurd (0x4)73 74--- !ELF75FileHeader:76 Class: ELFCLASS6477 Data: ELFDATA2LSB78 Type: ET_REL79 OSABI: ELFOSABI_HURD80 81# RUN: yaml2obj %s --docnum=8 -o %t.solaris82# RUN: llvm-readobj --file-headers %t.solaris | FileCheck %s --check-prefix=OSABI-SOLARIS83 84# OSABI-SOLARIS: OS/ABI: Solaris (0x6)85 86--- !ELF87FileHeader:88 Class: ELFCLASS6489 Data: ELFDATA2LSB90 Type: ET_REL91 OSABI: ELFOSABI_SOLARIS92 93# RUN: yaml2obj %s --docnum=9 -o %t.aix94# RUN: llvm-readobj --file-headers %t.aix | FileCheck %s --check-prefix=OSABI-AIX95 96# OSABI-AIX: OS/ABI: AIX (0x7)97 98--- !ELF99FileHeader:100 Class: ELFCLASS64101 Data: ELFDATA2LSB102 Type: ET_REL103 OSABI: ELFOSABI_AIX104 105# RUN: yaml2obj %s --docnum=10 -o %t.irix106# RUN: llvm-readobj --file-headers %t.irix | FileCheck %s --check-prefix=OSABI-IRIX107 108# OSABI-IRIX: OS/ABI: IRIX (0x8)109 110--- !ELF111FileHeader:112 Class: ELFCLASS64113 Data: ELFDATA2LSB114 Type: ET_REL115 OSABI: ELFOSABI_IRIX116 117# RUN: yaml2obj %s --docnum=11 -o %t.freebsd118# RUN: llvm-readobj --file-headers %t.freebsd | FileCheck %s --check-prefix=OSABI-FREEBSD119 120# OSABI-FREEBSD: OS/ABI: FreeBSD (0x9)121 122--- !ELF123FileHeader:124 Class: ELFCLASS64125 Data: ELFDATA2LSB126 Type: ET_REL127 OSABI: ELFOSABI_FREEBSD128 129# RUN: yaml2obj %s --docnum=12 -o %t.tru64130# RUN: llvm-readobj --file-headers %t.tru64 | FileCheck %s --check-prefix=OSABI-TRU64131 132# OSABI-TRU64: OS/ABI: TRU64 (0xA)133 134--- !ELF135FileHeader:136 Class: ELFCLASS64137 Data: ELFDATA2LSB138 Type: ET_REL139 OSABI: ELFOSABI_TRU64140 141# RUN: yaml2obj %s --docnum=13 -o %t.modesto142# RUN: llvm-readobj --file-headers %t.modesto | FileCheck %s --check-prefix=OSABI-MODESTO143 144# OSABI-MODESTO: OS/ABI: Modesto (0xB)145 146--- !ELF147FileHeader:148 Class: ELFCLASS64149 Data: ELFDATA2LSB150 Type: ET_REL151 OSABI: ELFOSABI_MODESTO152 153# RUN: yaml2obj %s --docnum=14 -o %t.openbsd154# RUN: llvm-readobj --file-headers %t.openbsd | FileCheck %s --check-prefix=OSABI-OPENBSD155 156# OSABI-OPENBSD: OS/ABI: OpenBSD (0xC)157 158--- !ELF159FileHeader:160 Class: ELFCLASS64161 Data: ELFDATA2LSB162 Type: ET_REL163 OSABI: ELFOSABI_OPENBSD164 165# RUN: yaml2obj %s --docnum=15 -o %t.openvms166# RUN: llvm-readobj --file-headers %t.openvms | FileCheck %s --check-prefix=OSABI-OPENVMS167 168# OSABI-OPENVMS: OS/ABI: OpenVMS (0xD)169 170--- !ELF171FileHeader:172 Class: ELFCLASS64173 Data: ELFDATA2LSB174 Type: ET_REL175 OSABI: ELFOSABI_OPENVMS176 177# RUN: yaml2obj %s --docnum=16 -o %t.nsk178# RUN: llvm-readobj --file-headers %t.nsk | FileCheck %s --check-prefix=OSABI-NSK179 180# OSABI-NSK: OS/ABI: NSK (0xE)181 182--- !ELF183FileHeader:184 Class: ELFCLASS64185 Data: ELFDATA2LSB186 Type: ET_REL187 OSABI: ELFOSABI_NSK188 189# RUN: yaml2obj %s --docnum=17 -o %t.aros190# RUN: llvm-readobj --file-headers %t.aros | FileCheck %s --check-prefix=OSABI-AROS191 192# OSABI-AROS: OS/ABI: AROS (0xF)193 194--- !ELF195FileHeader:196 Class: ELFCLASS64197 Data: ELFDATA2LSB198 Type: ET_REL199 OSABI: ELFOSABI_AROS200 201# RUN: yaml2obj %s --docnum=18 -o %t.fenixos202# RUN: llvm-readobj --file-headers %t.fenixos | FileCheck %s --check-prefix=OSABI-FENIXOS203 204# OSABI-FENIXOS: OS/ABI: FenixOS (0x10)205 206--- !ELF207FileHeader:208 Class: ELFCLASS64209 Data: ELFDATA2LSB210 Type: ET_REL211 OSABI: ELFOSABI_FENIXOS212 213# RUN: yaml2obj %s --docnum=19 -o %t.cloudabi214# RUN: llvm-readobj --file-headers %t.cloudabi | FileCheck %s --check-prefix=OSABI-CLOUDABI215 216# OSABI-CLOUDABI: OS/ABI: CloudABI (0x11)217 218--- !ELF219FileHeader:220 Class: ELFCLASS64221 Data: ELFDATA2LSB222 Type: ET_REL223 OSABI: ELFOSABI_CLOUDABI224 225# RUN: yaml2obj %s --docnum=20 -o %t.amdhsa226# RUN: llvm-readobj --file-headers %t.amdhsa | FileCheck %s --check-prefix=OSABI-ARCHSPEC40227# RUN: yaml2obj %s --docnum=21 -o %t.c6000228# RUN: llvm-readobj --file-headers %t.c6000 | FileCheck %s --check-prefix=OSABI-ARCHSPEC40229 230# OSABI-ARCHSPEC40: OS/ABI: 0x40231 232--- !ELF233FileHeader:234 Class: ELFCLASS64235 Data: ELFDATA2LSB236 Type: ET_REL237 OSABI: ELFOSABI_AMDGPU_HSA238 239--- !ELF240FileHeader:241 Class: ELFCLASS64242 Data: ELFDATA2LSB243 Type: ET_REL244 OSABI: ELFOSABI_C6000_ELFABI245 246# RUN: yaml2obj %s --docnum=22 -o %t.amdpal247# RUN: llvm-readobj --file-headers %t.amdpal | FileCheck %s --check-prefix=OSABI-ARCHSPEC41248# RUN: yaml2obj %s --docnum=23 -o %t.c6000linux249# RUN: llvm-readobj --file-headers %t.c6000linux | FileCheck %s --check-prefix=OSABI-ARCHSPEC41250 251# OSABI-ARCHSPEC41: OS/ABI: 0x41252 253--- !ELF254FileHeader:255 Class: ELFCLASS64256 Data: ELFDATA2LSB257 Type: ET_REL258 OSABI: ELFOSABI_AMDGPU_PAL259 260--- !ELF261FileHeader:262 Class: ELFCLASS64263 Data: ELFDATA2LSB264 Type: ET_REL265 OSABI: ELFOSABI_C6000_LINUX266 267# RUN: yaml2obj %s --docnum=24 -o %t.amdmesa268# RUN: llvm-readobj --file-headers %t.amdmesa | FileCheck %s --check-prefix=OSABI-AMD-MESA3D269 270# OSABI-AMD-MESA3D: OS/ABI: 0x42271 272--- !ELF273FileHeader:274 Class: ELFCLASS64275 Data: ELFDATA2LSB276 Type: ET_REL277 OSABI: ELFOSABI_AMDGPU_MESA3D278 279# RUN: yaml2obj %s --docnum=25 -o %t.arm280# RUN: llvm-readobj --file-headers %t.arm | FileCheck %s --check-prefix=OSABI-ARM281 282# OSABI-ARM: OS/ABI: 0x61283 284--- !ELF285FileHeader:286 Class: ELFCLASS64287 Data: ELFDATA2LSB288 Type: ET_REL289 OSABI: ELFOSABI_ARM290 291# RUN: yaml2obj %s --docnum=26 -o %t.standalone292# RUN: llvm-readobj --file-headers %t.standalone | FileCheck %s --check-prefix=OSABI-STANDALONE293 294# OSABI-STANDALONE: OS/ABI: Standalone (0xFF)295 296--- !ELF297FileHeader:298 Class: ELFCLASS64299 Data: ELFDATA2LSB300 Type: ET_REL301 OSABI: ELFOSABI_STANDALONE302 303## Test we can use an arbitrary number for OSABI.304# RUN: yaml2obj %s --docnum=27 -o %t.number305# RUN: llvm-readobj --file-headers %t.number | FileCheck %s --check-prefix=OSABI-NUMBER306# OSABI-NUMBER: OS/ABI: 0xFE307 308--- !ELF309FileHeader:310 Class: ELFCLASS64311 Data: ELFDATA2LSB312 Type: ET_REL313 OSABI: 0xFE314