2 #------------------------------------------------------------------------------
3 # $File: elf,v 1.87 2021/05/25 15:19:51 christos Exp $
4 # elf: file(1) magic for ELF executables
6 # We have to check the byte order flag to see what byte order all the
7 # other stuff in the header is in.
9 # What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
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)
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
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,
44 >0 leshort &0x0008 (LP64)
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,
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},
63 !:mime application/x-${x?pie-executable:sharedlib}
64 >16 leshort 4 core file,
65 !:mime application/x-coredump
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),
74 >>18 leshort !8 processor-specific,
76 >>>16 leshort 0xFF80 PlayStation 2 IOP module,
77 !:mime application/x-sharedlib
78 >>>16 leshort !0xFF80 processor-specific,
80 >18 leshort 0 no machine,
81 >18 leshort 1 AT&T WE32100,
83 >18 leshort 3 Intel 80386,
84 >18 leshort 4 Motorola m68k,
86 >>>36 lelong &0x01000000 68000,
87 >>>36 lelong &0x00810000 CPU32,
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.
97 >>>36 lelong &0x20 N32
100 >>>36 lelong &0x20 N32
108 >18 leshort 9 Amdahl,
109 >18 leshort 10 MIPS (deprecated),
110 >18 leshort 11 RS6000,
111 >18 leshort 15 PA-RISC,
114 >>>36 use elf-pa-risc
117 >>>48 use elf-pa-risc
118 >18 leshort 16 nCUBE,
119 >18 leshort 17 Fujitsu VPP500,
120 >18 leshort 18 SPARC32PLUS,
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,
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,
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,
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,
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,
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),
337 >>18 leshort x *unknown arch %#x*
338 >20 lelong 0 invalid version
339 >20 lelong 1 version 1
343 >4 byte 0 invalid class
346 >5 byte 0 invalid byte order
354 >7 byte 3 (GNU/Linux)
362 >7 byte 11 (Novell Modesto)
365 >7 byte 14 (HP NonStop Kernel)
366 >7 byte 15 (AROS Research Operating System)
368 >7 byte 17 (Nuxi CloudABI)
370 >7 byte 202 (Cafe OS)
371 >7 byte 255 (embedded)