1 2#------------------------------------------------------------------------------ 3# $File: elf,v 1.87 2021/05/25 15:19:51 christos Exp $ 4# elf: file(1) magic for ELF executables 5# 6# We have to check the byte order flag to see what byte order all the 7# other stuff in the header is in. 8# 9# What're the correct byte orders for the nCUBE and the Fujitsu VPP500? 10# 11# Created by: unknown 12# Modified by (1): Daniel Quinlan <quinlan@yggdrasil.com> 13# Modified by (2): Peter Tobias <tobias@server.et-inf.fho-emden.de> (core support) 14# Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> (fix of core support) 15# Modified by (4): <gerardo.cacciari@gmail.com> (VMS Itanium) 16# Modified by (5): Matthias Urlichs <smurf@debian.org> (Listing of many architectures) 17 180 name elf-mips 19>0 lelong&0xf0000000 0x00000000 MIPS-I 20>0 lelong&0xf0000000 0x10000000 MIPS-II 21>0 lelong&0xf0000000 0x20000000 MIPS-III 22>0 lelong&0xf0000000 0x30000000 MIPS-IV 23>0 lelong&0xf0000000 0x40000000 MIPS-V 24>0 lelong&0xf0000000 0x50000000 MIPS32 25>0 lelong&0xf0000000 0x60000000 MIPS64 26>0 lelong&0xf0000000 0x70000000 MIPS32 rel2 27>0 lelong&0xf0000000 0x80000000 MIPS64 rel2 28>0 lelong&0xf0000000 0x90000000 MIPS32 rel6 29>0 lelong&0xf0000000 0xa0000000 MIPS64 rel6 30 310 name elf-sparc 32>0 lelong&0x00ffff00 0x00000100 V8+ Required, 33>0 lelong&0x00ffff00 0x00000200 Sun UltraSPARC1 Extensions Required, 34>0 lelong&0x00ffff00 0x00000400 HaL R1 Extensions Required, 35>0 lelong&0x00ffff00 0x00000800 Sun UltraSPARC3 Extensions Required, 36>0 lelong&0x3 0 total store ordering, 37>0 lelong&0x3 1 partial store ordering, 38>0 lelong&0x3 2 relaxed memory ordering, 39 400 name elf-pa-risc 41>2 leshort 0x020b 1.0 42>2 leshort 0x0210 1.1 43>2 leshort 0x0214 2.0 44>0 leshort &0x0008 (LP64) 45 460 name elf-riscv 47>0 lelong&0x00000001 0x00000001 RVC, 48>0 lelong&0x00000008 0x00000008 RVE, 49>0 lelong&0x00000006 0x00000000 soft-float ABI, 50>0 lelong&0x00000006 0x00000002 single-float ABI, 51>0 lelong&0x00000006 0x00000004 double-float ABI, 52>0 lelong&0x00000006 0x00000006 quad-float ABI, 53 540 name elf-le 55>16 leshort 0 no file type, 56!:mime application/octet-stream 57>16 leshort 1 relocatable, 58!:mime application/x-object 59>16 leshort 2 executable, 60!:mime application/x-executable 61>16 leshort 3 ${x?pie executable:shared object}, 62 63!:mime application/x-${x?pie-executable:sharedlib} 64>16 leshort 4 core file, 65!:mime application/x-coredump 66# OS-specific 67>7 byte 202 68>>16 leshort 0xFE01 executable, 69!:mime application/x-executable 70# Core file detection is not reliable. 71#>>>(0x38+0xcc) string >\0 of '%s' 72#>>>(0x38+0x10) lelong >0 (signal %d), 73>16 leshort &0xff00 74>>18 leshort !8 processor-specific, 75>>18 leshort 8 76>>>16 leshort 0xFF80 PlayStation 2 IOP module, 77!:mime application/x-sharedlib 78>>>16 leshort !0xFF80 processor-specific, 79>18 clear x 80>18 leshort 0 no machine, 81>18 leshort 1 AT&T WE32100, 82>18 leshort 2 SPARC, 83>18 leshort 3 Intel 80386, 84>18 leshort 4 Motorola m68k, 85>>4 byte 1 86>>>36 lelong &0x01000000 68000, 87>>>36 lelong &0x00810000 CPU32, 88>>>36 lelong 0 68020, 89>18 leshort 5 Motorola m88k, 90>18 leshort 6 Intel 80486, 91>18 leshort 7 Intel 80860, 92# The official e_machine number for MIPS is now #8, regardless of endianness. 93# The second number (#10) will be deprecated later. For now, we still 94# say something if #10 is encountered, but only gory details for #8. 95>18 leshort 8 MIPS, 96>>4 byte 1 97>>>36 lelong &0x20 N32 98>18 leshort 10 MIPS, 99>>4 byte 1 100>>>36 lelong &0x20 N32 101>18 leshort 8 102# only for 32-bit 103>>4 byte 1 104>>>36 use elf-mips 105# only for 64-bit 106>>4 byte 2 107>>>48 use elf-mips 108>18 leshort 9 Amdahl, 109>18 leshort 10 MIPS (deprecated), 110>18 leshort 11 RS6000, 111>18 leshort 15 PA-RISC, 112# only for 32-bit 113>>4 byte 1 114>>>36 use elf-pa-risc 115# only for 64-bit 116>>4 byte 2 117>>>48 use elf-pa-risc 118>18 leshort 16 nCUBE, 119>18 leshort 17 Fujitsu VPP500, 120>18 leshort 18 SPARC32PLUS, 121# only for 32-bit 122>>4 byte 1 123>>>36 use elf-sparc 124>18 leshort 19 Intel 80960, 125>18 leshort 20 PowerPC or cisco 4500, 126>18 leshort 21 64-bit PowerPC or cisco 7500, 127>>48 lelong 0 Unspecified or Power ELF V1 ABI, 128>>48 lelong 1 Power ELF V1 ABI, 129>>48 lelong 2 OpenPOWER ELF V2 ABI, 130>18 leshort 22 IBM S/390, 131>18 leshort 23 Cell SPU, 132>18 leshort 24 cisco SVIP, 133>18 leshort 25 cisco 7200, 134>18 leshort 36 NEC V800 or cisco 12000, 135>18 leshort 37 Fujitsu FR20, 136>18 leshort 38 TRW RH-32, 137>18 leshort 39 Motorola RCE, 138>18 leshort 40 ARM, 139>>4 byte 1 140>>>36 lelong&0xff000000 0x04000000 EABI4 141>>>36 lelong&0xff000000 0x05000000 EABI5 142>>>36 lelong &0x00800000 BE8 143>>>36 lelong &0x00400000 LE8 144>18 leshort 41 Alpha, 145>18 leshort 42 Renesas SH, 146>18 leshort 43 SPARC V9, 147>>4 byte 2 148>>>48 use elf-sparc 149>18 leshort 44 Siemens Tricore Embedded Processor, 150>18 leshort 45 Argonaut RISC Core, Argonaut Technologies Inc., 151>18 leshort 46 Renesas H8/300, 152>18 leshort 47 Renesas H8/300H, 153>18 leshort 48 Renesas H8S, 154>18 leshort 49 Renesas H8/500, 155>18 leshort 50 IA-64, 156>18 leshort 51 Stanford MIPS-X, 157>18 leshort 52 Motorola Coldfire, 158>18 leshort 53 Motorola M68HC12, 159>18 leshort 54 Fujitsu MMA, 160>18 leshort 55 Siemens PCP, 161>18 leshort 56 Sony nCPU, 162>18 leshort 57 Denso NDR1, 163>18 leshort 58 Start*Core, 164>18 leshort 59 Toyota ME16, 165>18 leshort 60 ST100, 166>18 leshort 61 Tinyj emb., 167>18 leshort 62 x86-64, 168>18 leshort 63 Sony DSP, 169>18 leshort 64 DEC PDP-10, 170>18 leshort 65 DEC PDP-11, 171>18 leshort 66 FX66, 172>18 leshort 67 ST9+ 8/16 bit, 173>18 leshort 68 ST7 8 bit, 174>18 leshort 69 MC68HC16, 175>18 leshort 70 MC68HC11, 176>18 leshort 71 MC68HC08, 177>18 leshort 72 MC68HC05, 178>18 leshort 73 SGI SVx or Cray NV1, 179>18 leshort 74 ST19 8 bit, 180>18 leshort 75 Digital VAX, 181>18 leshort 76 Axis cris, 182>18 leshort 77 Infineon 32-bit embedded, 183>18 leshort 78 Element 14 64-bit DSP, 184>18 leshort 79 LSI Logic 16-bit DSP, 185>18 leshort 80 MMIX, 186>18 leshort 81 Harvard machine-independent, 187>18 leshort 82 SiTera Prism, 188>18 leshort 83 Atmel AVR 8-bit, 189>18 leshort 84 Fujitsu FR30, 190>18 leshort 85 Mitsubishi D10V, 191>18 leshort 86 Mitsubishi D30V, 192>18 leshort 87 NEC v850, 193>18 leshort 88 Renesas M32R, 194>18 leshort 89 Matsushita MN10300, 195>18 leshort 90 Matsushita MN10200, 196>18 leshort 91 picoJava, 197>18 leshort 92 OpenRISC, 198>18 leshort 93 Synopsys ARCompact ARC700 cores, 199>18 leshort 94 Tensilica Xtensa, 200>18 leshort 95 Alphamosaic VideoCore, 201>18 leshort 96 Thompson Multimedia, 202>18 leshort 97 NatSemi 32k, 203>18 leshort 98 Tenor Network TPC, 204>18 leshort 99 Trebia SNP 1000, 205>18 leshort 100 STMicroelectronics ST200, 206>18 leshort 101 Ubicom IP2022, 207>18 leshort 102 MAX Processor, 208>18 leshort 103 NatSemi CompactRISC, 209>18 leshort 104 Fujitsu F2MC16, 210>18 leshort 105 TI msp430, 211>18 leshort 106 Analog Devices Blackfin, 212>18 leshort 107 S1C33 Family of Seiko Epson, 213>18 leshort 108 Sharp embedded, 214>18 leshort 109 Arca RISC, 215>18 leshort 110 PKU-Unity Ltd., 216>18 leshort 111 eXcess: 16/32/64-bit, 217>18 leshort 112 Icera Deep Execution Processor, 218>18 leshort 113 Altera Nios II, 219>18 leshort 114 NatSemi CRX, 220>18 leshort 115 Motorola XGATE, 221>18 leshort 116 Infineon C16x/XC16x, 222>18 leshort 117 Renesas M16C series, 223>18 leshort 118 Microchip dsPIC30F, 224>18 leshort 119 Freescale RISC core, 225>18 leshort 120 Renesas M32C series, 226>18 leshort 131 Altium TSK3000 core, 227>18 leshort 132 Freescale RS08, 228>18 leshort 134 Cyan Technology eCOG2, 229>18 leshort 135 Sunplus S+core7 RISC, 230>18 leshort 136 New Japan Radio (NJR) 24-bit DSP, 231>18 leshort 137 Broadcom VideoCore III, 232>18 leshort 138 LatticeMico32, 233>18 leshort 139 Seiko Epson C17 family, 234>18 leshort 140 TI TMS320C6000 DSP family, 235>18 leshort 141 TI TMS320C2000 DSP family, 236>18 leshort 142 TI TMS320C55x DSP family, 237>18 leshort 144 TI Programmable Realtime Unit 238>18 leshort 160 STMicroelectronics 64bit VLIW DSP, 239>18 leshort 161 Cypress M8C, 240>18 leshort 162 Renesas R32C series, 241>18 leshort 163 NXP TriMedia family, 242>18 leshort 164 QUALCOMM DSP6, 243>18 leshort 165 Intel 8051 and variants, 244>18 leshort 166 STMicroelectronics STxP7x family, 245>18 leshort 167 Andes embedded RISC, 246>18 leshort 168 Cyan eCOG1X family, 247>18 leshort 169 Dallas MAXQ30, 248>18 leshort 170 New Japan Radio (NJR) 16-bit DSP, 249>18 leshort 171 M2000 Reconfigurable RISC, 250>18 leshort 172 Cray NV2 vector architecture, 251>18 leshort 173 Renesas RX family, 252>18 leshort 174 META, 253>18 leshort 175 MCST Elbrus, 254>18 leshort 176 Cyan Technology eCOG16 family, 255>18 leshort 177 NatSemi CompactRISC, 256>18 leshort 178 Freescale Extended Time Processing Unit, 257>18 leshort 179 Infineon SLE9X, 258>18 leshort 180 Intel L1OM, 259>18 leshort 181 Intel K1OM, 260>18 leshort 183 ARM aarch64, 261>18 leshort 185 Atmel 32-bit family, 262>18 leshort 186 STMicroeletronics STM8 8-bit, 263>18 leshort 187 Tilera TILE64, 264>18 leshort 188 Tilera TILEPro, 265>18 leshort 189 Xilinx MicroBlaze 32-bit RISC, 266>18 leshort 190 NVIDIA CUDA architecture, 267>18 leshort 191 Tilera TILE-Gx, 268>18 leshort 195 Synopsys ARCv2/HS3x/HS4x cores, 269>18 leshort 197 Renesas RL78 family, 270>18 leshort 199 Renesas 78K0R, 271>18 leshort 200 Freescale 56800EX, 272>18 leshort 201 Beyond BA1, 273>18 leshort 202 Beyond BA2, 274>18 leshort 203 XMOS xCORE, 275>18 leshort 204 Microchip 8-bit PIC(r), 276>18 leshort 210 KM211 KM32, 277>18 leshort 211 KM211 KMX32, 278>18 leshort 212 KM211 KMX16, 279>18 leshort 213 KM211 KMX8, 280>18 leshort 214 KM211 KVARC, 281>18 leshort 215 Paneve CDP, 282>18 leshort 216 Cognitive Smart Memory, 283>18 leshort 217 iCelero CoolEngine, 284>18 leshort 218 Nanoradio Optimized RISC, 285>18 leshort 243 UCB RISC-V, 286# only for 32-bit 287>>4 byte 1 288>>>36 use elf-riscv 289# only for 64-bit 290>>4 byte 2 291>>>48 use elf-riscv 292>18 leshort 244 Lanai 32-bit processor, 293>18 leshort 245 CEVA Processor Architecture Family, 294>18 leshort 246 CEVA X2 Processor Family, 295>18 leshort 247 eBPF, 296>18 leshort 248 Graphcore Intelligent Processing Unit, 297>18 leshort 249 Imagination Technologies, 298>18 leshort 250 Netronome Flow Processor, 299>18 leshort 251 NEC Vector Engine, 300>18 leshort 252 C-SKY processor family, 301>18 leshort 253 Synopsys ARCv3 64-bit ISA/HS6x cores, 302>18 leshort 254 MOS Technology MCS 6502 processor, 303>18 leshort 255 Synopsys ARCv3 32-bit, 304>18 leshort 256 Kalray VLIW core of the MPPA family, 305>18 leshort 257 WDC 65816/65C816, 306>18 leshort 258 LoongArch, 307>18 leshort 259 ChipON KungFu32, 308>18 leshort 0x1057 AVR (unofficial), 309>18 leshort 0x1059 MSP430 (unofficial), 310>18 leshort 0x1223 Adapteva Epiphany (unofficial), 311>18 leshort 0x2530 Morpho MT (unofficial), 312>18 leshort 0x3330 FR30 (unofficial), 313>18 leshort 0x3426 OpenRISC (obsolete), 314>18 leshort 0x4688 Infineon C166 (unofficial), 315>18 leshort 0x5441 Cygnus FRV (unofficial), 316>18 leshort 0x5aa5 DLX (unofficial), 317>18 leshort 0x7650 Cygnus D10V (unofficial), 318>18 leshort 0x7676 Cygnus D30V (unofficial), 319>18 leshort 0x8217 Ubicom IP2xxx (unofficial), 320>18 leshort 0x8472 OpenRISC (obsolete), 321>18 leshort 0x9025 Cygnus PowerPC (unofficial), 322>18 leshort 0x9026 Alpha (unofficial), 323>18 leshort 0x9041 Cygnus M32R (unofficial), 324>18 leshort 0x9080 Cygnus V850 (unofficial), 325>18 leshort 0xa390 IBM S/390 (obsolete), 326>18 leshort 0xabc7 Old Xtensa (unofficial), 327>18 leshort 0xad45 xstormy16 (unofficial), 328>18 leshort 0xbaab Old MicroBlaze (unofficial),, 329>18 leshort 0xbeef Cygnus MN10300 (unofficial), 330>18 leshort 0xdead Cygnus MN10200 (unofficial), 331>18 leshort 0xf00d Toshiba MeP (unofficial), 332>18 leshort 0xfeb0 Renesas M32C (unofficial), 333>18 leshort 0xfeba Vitesse IQ2000 (unofficial), 334>18 leshort 0xfebb NIOS (unofficial), 335>18 leshort 0xfeed Moxie (unofficial), 336>18 default x 337>>18 leshort x *unknown arch %#x* 338>20 lelong 0 invalid version 339>20 lelong 1 version 1 340 3410 string \177ELF ELF 342!:strength *2 343>4 byte 0 invalid class 344>4 byte 1 32-bit 345>4 byte 2 64-bit 346>5 byte 0 invalid byte order 347>5 byte 1 LSB 348>>0 use elf-le 349>5 byte 2 MSB 350>>0 use \^elf-le 351>7 byte 0 (SYSV) 352>7 byte 1 (HP-UX) 353>7 byte 2 (NetBSD) 354>7 byte 3 (GNU/Linux) 355>7 byte 4 (GNU/Hurd) 356>7 byte 5 (86Open) 357>7 byte 6 (Solaris) 358>7 byte 7 (Monterey) 359>7 byte 8 (IRIX) 360>7 byte 9 (FreeBSD) 361>7 byte 10 (Tru64) 362>7 byte 11 (Novell Modesto) 363>7 byte 12 (OpenBSD) 364>7 byte 13 (OpenVMS) 365>7 byte 14 (HP NonStop Kernel) 366>7 byte 15 (AROS Research Operating System) 367>7 byte 16 (FenixOS) 368>7 byte 17 (Nuxi CloudABI) 369>7 byte 97 (ARM) 370>7 byte 202 (Cafe OS) 371>7 byte 255 (embedded) 372