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.default 5# RUN: yaml2obj %s --docnum=2 -o %t.none 6# RUN: llvm-readobj --file-headers %t.none | FileCheck %s --check-prefix=OSABI-NONE 7# RUN: llvm-readobj --file-headers %t.default | FileCheck %s --check-prefix=OSABI-NONE 8 9# OSABI-NONE: OS/ABI: SystemV (0x0) 10 11--- !ELF 12FileHeader: 13 Class: ELFCLASS64 14 Data: ELFDATA2LSB 15 Type: ET_REL 16 OSABI: ELFOSABI_NONE 17 18--- !ELF 19FileHeader: 20 Class: ELFCLASS64 21 Data: ELFDATA2LSB 22 Type: ET_REL 23 24# RUN: yaml2obj %s --docnum=3 -o %t.hpux 25# RUN: llvm-readobj --file-headers %t.hpux | FileCheck %s --check-prefix=OSABI-HPUX 26 27# OSABI-HPUX: OS/ABI: HPUX (0x1) 28 29--- !ELF 30FileHeader: 31 Class: ELFCLASS64 32 Data: ELFDATA2LSB 33 Type: ET_REL 34 OSABI: ELFOSABI_HPUX 35 36# RUN: yaml2obj %s --docnum=4 -o %t.netbsd 37# RUN: llvm-readobj --file-headers %t.netbsd | FileCheck %s --check-prefix=OSABI-NETBSD 38 39# OSABI-NETBSD: OS/ABI: NetBSD (0x2) 40 41--- !ELF 42FileHeader: 43 Class: ELFCLASS64 44 Data: ELFDATA2LSB 45 Type: ET_REL 46 OSABI: ELFOSABI_NETBSD 47 48## Test ELFOSABI_GNU and ELFOSABI_LINUX (historical alias for ELFOSABI_GNU). 49# RUN: yaml2obj %s --docnum=5 -o %t.gnu 50# RUN: llvm-readobj --file-headers %t.gnu | FileCheck %s --check-prefix=OSABI-GNU 51# RUN: yaml2obj %s --docnum=6 -o %t.gnu.alias 52# RUN: llvm-readobj --file-headers %t.gnu.alias | FileCheck %s --check-prefix=OSABI-GNU 53# OSABI-GNU: OS/ABI: GNU/Linux (0x3) 54 55--- !ELF 56FileHeader: 57 Class: ELFCLASS64 58 Data: ELFDATA2LSB 59 Type: ET_REL 60 OSABI: ELFOSABI_GNU 61 62--- !ELF 63FileHeader: 64 Class: ELFCLASS64 65 Data: ELFDATA2LSB 66 Type: ET_REL 67 OSABI: ELFOSABI_LINUX 68 69# RUN: yaml2obj %s --docnum=7 -o %t.hurd 70# RUN: llvm-readobj --file-headers %t.hurd | FileCheck %s --check-prefix=OSABI-HURD 71 72# OSABI-HURD: OS/ABI: GNU/Hurd (0x4) 73 74--- !ELF 75FileHeader: 76 Class: ELFCLASS64 77 Data: ELFDATA2LSB 78 Type: ET_REL 79 OSABI: ELFOSABI_HURD 80 81# RUN: yaml2obj %s --docnum=8 -o %t.solaris 82# RUN: llvm-readobj --file-headers %t.solaris | FileCheck %s --check-prefix=OSABI-SOLARIS 83 84# OSABI-SOLARIS: OS/ABI: Solaris (0x6) 85 86--- !ELF 87FileHeader: 88 Class: ELFCLASS64 89 Data: ELFDATA2LSB 90 Type: ET_REL 91 OSABI: ELFOSABI_SOLARIS 92 93# RUN: yaml2obj %s --docnum=9 -o %t.aix 94# RUN: llvm-readobj --file-headers %t.aix | FileCheck %s --check-prefix=OSABI-AIX 95 96# OSABI-AIX: OS/ABI: AIX (0x7) 97 98--- !ELF 99FileHeader: 100 Class: ELFCLASS64 101 Data: ELFDATA2LSB 102 Type: ET_REL 103 OSABI: ELFOSABI_AIX 104 105# RUN: yaml2obj %s --docnum=10 -o %t.irix 106# RUN: llvm-readobj --file-headers %t.irix | FileCheck %s --check-prefix=OSABI-IRIX 107 108# OSABI-IRIX: OS/ABI: IRIX (0x8) 109 110--- !ELF 111FileHeader: 112 Class: ELFCLASS64 113 Data: ELFDATA2LSB 114 Type: ET_REL 115 OSABI: ELFOSABI_IRIX 116 117# RUN: yaml2obj %s --docnum=11 -o %t.freebsd 118# RUN: llvm-readobj --file-headers %t.freebsd | FileCheck %s --check-prefix=OSABI-FREEBSD 119 120# OSABI-FREEBSD: OS/ABI: FreeBSD (0x9) 121 122--- !ELF 123FileHeader: 124 Class: ELFCLASS64 125 Data: ELFDATA2LSB 126 Type: ET_REL 127 OSABI: ELFOSABI_FREEBSD 128 129# RUN: yaml2obj %s --docnum=12 -o %t.tru64 130# RUN: llvm-readobj --file-headers %t.tru64 | FileCheck %s --check-prefix=OSABI-TRU64 131 132# OSABI-TRU64: OS/ABI: TRU64 (0xA) 133 134--- !ELF 135FileHeader: 136 Class: ELFCLASS64 137 Data: ELFDATA2LSB 138 Type: ET_REL 139 OSABI: ELFOSABI_TRU64 140 141# RUN: yaml2obj %s --docnum=13 -o %t.modesto 142# RUN: llvm-readobj --file-headers %t.modesto | FileCheck %s --check-prefix=OSABI-MODESTO 143 144# OSABI-MODESTO: OS/ABI: Modesto (0xB) 145 146--- !ELF 147FileHeader: 148 Class: ELFCLASS64 149 Data: ELFDATA2LSB 150 Type: ET_REL 151 OSABI: ELFOSABI_MODESTO 152 153# RUN: yaml2obj %s --docnum=14 -o %t.openbsd 154# RUN: llvm-readobj --file-headers %t.openbsd | FileCheck %s --check-prefix=OSABI-OPENBSD 155 156# OSABI-OPENBSD: OS/ABI: OpenBSD (0xC) 157 158--- !ELF 159FileHeader: 160 Class: ELFCLASS64 161 Data: ELFDATA2LSB 162 Type: ET_REL 163 OSABI: ELFOSABI_OPENBSD 164 165# RUN: yaml2obj %s --docnum=15 -o %t.openvms 166# RUN: llvm-readobj --file-headers %t.openvms | FileCheck %s --check-prefix=OSABI-OPENVMS 167 168# OSABI-OPENVMS: OS/ABI: OpenVMS (0xD) 169 170--- !ELF 171FileHeader: 172 Class: ELFCLASS64 173 Data: ELFDATA2LSB 174 Type: ET_REL 175 OSABI: ELFOSABI_OPENVMS 176 177# RUN: yaml2obj %s --docnum=16 -o %t.nsk 178# RUN: llvm-readobj --file-headers %t.nsk | FileCheck %s --check-prefix=OSABI-NSK 179 180# OSABI-NSK: OS/ABI: NSK (0xE) 181 182--- !ELF 183FileHeader: 184 Class: ELFCLASS64 185 Data: ELFDATA2LSB 186 Type: ET_REL 187 OSABI: ELFOSABI_NSK 188 189# RUN: yaml2obj %s --docnum=17 -o %t.aros 190# RUN: llvm-readobj --file-headers %t.aros | FileCheck %s --check-prefix=OSABI-AROS 191 192# OSABI-AROS: OS/ABI: AROS (0xF) 193 194--- !ELF 195FileHeader: 196 Class: ELFCLASS64 197 Data: ELFDATA2LSB 198 Type: ET_REL 199 OSABI: ELFOSABI_AROS 200 201# RUN: yaml2obj %s --docnum=18 -o %t.fenixos 202# RUN: llvm-readobj --file-headers %t.fenixos | FileCheck %s --check-prefix=OSABI-FENIXOS 203 204# OSABI-FENIXOS: OS/ABI: FenixOS (0x10) 205 206--- !ELF 207FileHeader: 208 Class: ELFCLASS64 209 Data: ELFDATA2LSB 210 Type: ET_REL 211 OSABI: ELFOSABI_FENIXOS 212 213# RUN: yaml2obj %s --docnum=19 -o %t.cloudabi 214# RUN: llvm-readobj --file-headers %t.cloudabi | FileCheck %s --check-prefix=OSABI-CLOUDABI 215 216# OSABI-CLOUDABI: OS/ABI: CloudABI (0x11) 217 218--- !ELF 219FileHeader: 220 Class: ELFCLASS64 221 Data: ELFDATA2LSB 222 Type: ET_REL 223 OSABI: ELFOSABI_CLOUDABI 224 225# RUN: yaml2obj %s --docnum=20 -o %t.amdhsa 226# RUN: llvm-readobj --file-headers %t.amdhsa | FileCheck %s --check-prefix=OSABI-ARCHSPEC40 227# RUN: yaml2obj %s --docnum=21 -o %t.c6000 228# RUN: llvm-readobj --file-headers %t.c6000 | FileCheck %s --check-prefix=OSABI-ARCHSPEC40 229 230# OSABI-ARCHSPEC40: OS/ABI: 0x40 231 232--- !ELF 233FileHeader: 234 Class: ELFCLASS64 235 Data: ELFDATA2LSB 236 Type: ET_REL 237 OSABI: ELFOSABI_AMDGPU_HSA 238 239--- !ELF 240FileHeader: 241 Class: ELFCLASS64 242 Data: ELFDATA2LSB 243 Type: ET_REL 244 OSABI: ELFOSABI_C6000_ELFABI 245 246# RUN: yaml2obj %s --docnum=22 -o %t.amdpal 247# RUN: llvm-readobj --file-headers %t.amdpal | FileCheck %s --check-prefix=OSABI-ARCHSPEC41 248# RUN: yaml2obj %s --docnum=23 -o %t.c6000linux 249# RUN: llvm-readobj --file-headers %t.c6000linux | FileCheck %s --check-prefix=OSABI-ARCHSPEC41 250 251# OSABI-ARCHSPEC41: OS/ABI: 0x41 252 253--- !ELF 254FileHeader: 255 Class: ELFCLASS64 256 Data: ELFDATA2LSB 257 Type: ET_REL 258 OSABI: ELFOSABI_AMDGPU_PAL 259 260--- !ELF 261FileHeader: 262 Class: ELFCLASS64 263 Data: ELFDATA2LSB 264 Type: ET_REL 265 OSABI: ELFOSABI_C6000_LINUX 266 267# RUN: yaml2obj %s --docnum=24 -o %t.amdmesa 268# RUN: llvm-readobj --file-headers %t.amdmesa | FileCheck %s --check-prefix=OSABI-AMD-MESA3D 269 270# OSABI-AMD-MESA3D: OS/ABI: 0x42 271 272--- !ELF 273FileHeader: 274 Class: ELFCLASS64 275 Data: ELFDATA2LSB 276 Type: ET_REL 277 OSABI: ELFOSABI_AMDGPU_MESA3D 278 279# RUN: yaml2obj %s --docnum=25 -o %t.arm 280# RUN: llvm-readobj --file-headers %t.arm | FileCheck %s --check-prefix=OSABI-ARM 281 282# OSABI-ARM: OS/ABI: 0x61 283 284--- !ELF 285FileHeader: 286 Class: ELFCLASS64 287 Data: ELFDATA2LSB 288 Type: ET_REL 289 OSABI: ELFOSABI_ARM 290 291# RUN: yaml2obj %s --docnum=26 -o %t.standalone 292# RUN: llvm-readobj --file-headers %t.standalone | FileCheck %s --check-prefix=OSABI-STANDALONE 293 294# OSABI-STANDALONE: OS/ABI: Standalone (0xFF) 295 296--- !ELF 297FileHeader: 298 Class: ELFCLASS64 299 Data: ELFDATA2LSB 300 Type: ET_REL 301 OSABI: ELFOSABI_STANDALONE 302 303## Test we can use an arbitrary number for OSABI. 304# RUN: yaml2obj %s --docnum=27 -o %t.number 305# RUN: llvm-readobj --file-headers %t.number | FileCheck %s --check-prefix=OSABI-NUMBER 306# OSABI-NUMBER: OS/ABI: 0xFE 307 308--- !ELF 309FileHeader: 310 Class: ELFCLASS64 311 Data: ELFDATA2LSB 312 Type: ET_REL 313 OSABI: 0xFE 314