vendor/file: upgrade from 5.40 to 5.41
[dragonfly.git] / contrib / file / magic / Magdir / elf
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
18 0       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
31 0       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
40 0       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
46 0       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
54 0       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
341 0       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)